나누고 싶은 개발 이야기

Data Engineer로서 기록하고 공유하고 싶은 기술들. 책과 함께 이야기합니다.

Linux 2

I/O의 동작방식 이해

운영하고 있는 시스템에서 사용한 zero copy 개념을 습득하기에 앞서 I/O에 대한 동작 방식을 이해하기 위해 정리한 글이다. How Java I/O Works Internally at Lower Level?의 내용을 요약한 수준이며 추가로 이해가 필요한 개념들을 다른 문서에서 발췌해서 정리했다. I/O의 기본적인 동작방식 input/output는 버퍼로부터 데이터를 넣고 빼는 것을 의미한다. Process 내부 메모리로 디스크에 저장된 데이터를 가져오는 첫 단계로 read() 시스템 콜을 한다. 그럼 커널은 디스트로부터 데이터를 커널 영역의 버퍼에 넣고 캐싱을 한다. 커널 영역에 있는 데이터를 다시 process가 요청했을 때는 버퍼에 있는 데이터를 전달한다. Virtual Memory Virtua..

Linux 2020.02.13

Keepalive 정리

TCP Keep alive 3-way handshake를 통해 연결된 세션을 없애지 않고 계속 사용하는 방식. [그림 1] TCP Keepalive 환경에서의 패킷 흐름. [그림 1]과 같이 TCP Keepalive는 일정 시간이 지나면 연결된 세션이 살아있는지 확인하기 위해 아주 작은 양의 패킷을 하나 보낸다. 패킷은 연결을 유지하기 원하는 쪽에서 보낸다. 패킷을 주고 받은 다음에 타이머는 원점으로 돌아가고 카운트를 진행한다. ss 명령으로 간단히 Keepalive를 확인할 수 있다. -o 옵션을 주면 timer의 정보도 볼 수 있다. ss -otn -o : Show timer information. -t : Display only TCP sockets. -n : Do now try to resolve..

Linux 2019.02.13
반응형