리눅스 5

Kafka의 Zero copy

Zero copy Zero-copy란 컴퓨터에서 CPU의 개입을 받지 않고 한 메모리의 영역에서 다른 메모리의 영역으로 데이터를 카피하는 작업을 말한다. 불필요한 데이터 복사을 줄이고 CPU 자원을 아껴 성능을 개선할 수 있다. Kafka는 이 방식을 사용하여 클라이언트에서 요청하는 메시지를 빠르게 송신할 수 있다. 카프카는 파일(또는 리눅스의 경우 파일시스템 캐시)의 메시지를 중간 버퍼 메모리에 쓰지 않고 곧바로 네트워크 채널로 전송한다. 데이터를 클라이언트에게 전송하기 위해 로컬 캐시 메모리에 저장하는 대부분의 데이터베이스와 달리 Kafka가 갖는 하나의 특징이며 데이터 전송을 빠르게 하여 성능을 향상시킨다. 아래에서 데이터를 전송하는 일반적인 방식과 Kafka가 채택한 Zero copy 방식을 비교..

컴퓨터 시스템의 기본

컴퓨터의 동작 방식 컴퓨터가 동작하는 방식은 아래의 세 단계를 반복하는 것과 같다. 입력 장치 혹은 네트워크 어댑터를 통해 컴퓨터에 처리 요청이 들어온다. 메모리에 있는 명령을 읽어 CPU에서 실행하고 그 결과를 다시 메모리의 다른 영역에 기록한다. 메모리의 데이터를 하드디스크(HDD)나 SSD 등의 저장 장치에 기록하거나 네트워크를 통해 다른 컴퓨터에 전송하거나, 혹은 디스플레이 등의 출력 장치를 통해 결과를 보여준다. 이러한 순서를 반복해서 하나의 처리(기능)으로 정리한 것을 프로그램이라고 하는데, 프로그램은 크게 애플리케이션, 미들웨어, OS(운영체제)로 구분할 수 있다. 프로그램의 종류 애플리케이션: 사용자가 직접 사용하는 프로그램. 오피스, 계산기, 브라우저 등 미들웨어: 여러 애플리케이션이 공..

메모리관리

리눅스는 커널의 메모리 관리 시스템으로 시스템에 탑재된 메모리를 관리한다. 각 프로세스는 물론이고 커널 자체도 메모리를 사용한다. 메모리 통계정보 메모리 통계정보는 free 명령어로 확인할 수 있다. (base) [user@server ~]$ free total used free shared buff/cache available Mem: 65387028 16650384 7639664 233184 41096980 48005532 Swap: 32767996 6065624 26702372 (base) [user@server ~]$ (base) [user@server ~]$ free -h total used free shared buff/cache available Mem: 62G 15G 7.3G 227M 39..