전체 글 16

LILO (bootloader)

LILO(Linux Loader) 는 대부분의 리눅스의 부트로더 이다.loadlin(16비트 리얼 모드 DOS에서 실행되는 Linux 부트 로더)과 달리 DOS가 없어도 부팅 가능하다.2009년 대부분의 리눅스에서 GRUB을 default 부트로더로 교체 되었다.LILO의 추가 개발은 2015년 12월에 중단되었고 Joachim Wiedorn에게 개발 요청. 최초 릴리스 - 1992년 6월 29일최종 릴리스 - 2015년 11월 22일 출처https://en.wikipedia.org/wiki/LILO_(bootloader)https://en.wikipedia.org/wiki/Loadlin

OS 2024.11.10

Process와 Thread의 차이

프로그램 설계 시 멀티 프로세스와 멀티 쓰레드에 대한 고민을 하는 사람들이 많다. 멀티 쓰레드는 Light weight process로 불리며 공유 자원들은 두고 별도의 자원만 사용가능 하기 때문에,멀티 프로세스에 대해 가볍다는 것은 모두 알고 있는 사실일 것이다.컨텍스트 스위칭 같은 경우에도 1 core(CPU)에서의 문제지,N개의 core를 사용하는 서버에서의 문제는 크게 영향을 받지 않는다(사실 속도는 코드에서 영향이 더 크다). 멀티 프로세스와 멀티 쓰레드는 의외의 차이점을 가지고 있다 1. scale out멀티 프로세스로 프로그램 작성 시 scale out이 가능해 진다.Thread를 많이 돌려도 그건 한 서버 내에서 문제이지, 타 서버와 통신 시 문제가 생긴다.서버를 1대만 사용할 것이라고 보..

OS 2024.11.10

Elasticsearch indexing(Data insert)

Elasticsearch index pom.xml co.elastic.clients elasticsearch-java 8.7.0 com.fasterxml.jackson.core jackson-databind 2.12.3 Elasticsearch Data를 indexing(Data insert) 하기 위해서는 HashMap으로 데이터를 만들고, index 명령을 통해 데이터를 넣는다. Source code 샘플 HashMap resource HashMap resource = new HashMap(); resource.put("timestamp", timestamp); resource.put("hostname", hostname); resource.put("cpu_used", cpu_used); resour..

Spring Boot 2023.04.28

Spring Boot를 이용한 서버 자원 모니터링 프로그램

Spring Boot 학습을 위한 프로그램이다. 실제 모니터링 시스템시 Metricbeat, Elasticsearch, Grafana(Kibana)를 사용하여 하면 간단하게 구축할 수 있다. 소스코드 프로그램 설계 1. SSH를 이용한 자원 모니터링 모니터링 할 서버에 별도의 프로그램을 설치하는 것은 어려움(설치 시 에이전트 프로그램에 대한 별도의 검증 필요)이 있다. 그래서 SSH 명령을 이용하면 별도의 에이전트 프로그램 설치 없이 자원을 모니터링 할 수 있다. 2. 자원 모니터링 쓰레드 각 서버에 SSH 명령 시 서버의 별도의 문제 발생이 있더라도 타 서버의 모니터링이 정상적으로 동작하도록 설계 3. 멀티 프로세스가 아닌 쓰레드 활용 이유 모니터링 시스템 자체 부하가 심하지 않아 Scale out을 ..

Spring Boot 2023.03.27

/proc/PID

/proc/PID 구조 PID 디렉터리 디렉터리 설명 attr 이 디렉토리의 파일은 SELinux를 지원하기 위해 추가 보안 모듈용 API를 제공. fd 이것은 파일 디스크립터에 의해 이름이 지정되고 실제 파일에 대한 심볼릭 링크인 프로세스가 연 각 파일에 대한 하나의 항목을 포함하는 하위 디렉토리. 0 - 표준 입력, 1 - 표준 출력, 2 - 표준 오류 fdinfo 파일 디스크립터에 의해 이름이 지정된 프로세스가 연 각 파일에 대한 하나의 항목을 포함하는 하위 디렉토리 각 파일의 내용을 읽어 해당 파일 디스크립터에 대한 정보를 얻을 수 있음 내용은 해당 파일 설명자가 참조하는 파일 유형에 따라 다름 map_files 이 하위 디렉토리에는 메모리 매핑된 파일에 해당하는 항목을 포함. 항목은 메모리 영역..

OS 2023.03.24

Kafka 구조

Producer & Consumer 구조 Kafka는 Producer와 Consumer 라이브러리를 기반으로 구성됩니다. Producer에서는 Kafka로 데이터를 송신 하며 Consumer는 Kafka에 전송된 데이터를 사용 하는 구조입니다. Kafka를 사용하는 이유 Kafka의 기본 기능을 활용하여 데이터 병렬 처리, 분산 조정, 내결함성 및 운영 단순성을 제공함으로써 애플리케이션 개발을 단순화합니다. Apache Kafka의 사용 사례 서로 다른 구성 요소 간의 안정적인 데이터 교환 애플리케이션 요구 사항 변경에 따라 메시징 워크로드를 분할하는 기능 데이터 처리를 위한 실시간 스트리밍 데이터/메시지 재생에 대한 기본 지원 Apache Kafka의 개념 토픽: 토픽은 게시/구독 메시징에서 상당히 보..

Kafka 2023.03.15