전체 글167 NAPI(Network API)는 왜 리눅스 네트워크 성능을 높였을까 고성능 서버 구조를 공부하다 보면 어느 순간부터는 CPU 계산 속도보다 “패킷을 얼마나 효율적으로 처리하느냐”가 훨씬 더 중요한 문제처럼 느껴질 때가 많다. 나도 예전에는 인터넷 데이터가 그냥 네트워크 카드에서 CPU로 들어오는 단순한 흐름이라고 생각했었다. 그런데 DMA, Epoll, Zero-Copy 같은 구조를 하나씩 보다 보니까 실제 서버는 엄청난 양의 네트워크 패킷을 동시에 처리해야 하고, 그 과정에서 CPU가 단순 패킷 처리만 하다가 과부하에 걸릴 수도 있다는 걸 알게 됐다. 그리고 이런 문제를 해결하기 위해 리눅스에서 등장한 대표적인 네트워크 최적화 구조 중 하나가 바로 NAPI(Network API)다. 처음 이름만 들었을 때는 그냥 리눅스 내부 API 정도로 느껴졌는데, 구조를 이해하고 .. 2026. 5. 25. DMA(Direct Memory Access)는 왜 필요할까 컴퓨터 구조를 처음 공부할 때는 CPU가 거의 모든 일을 직접 처리하는 존재처럼 느껴진다. 나도 예전에는 SSD에서 파일을 읽거나 인터넷 데이터를 받아오는 과정도 결국 CPU가 하나하나 직접 옮기는 줄 알았다. 실제로 컴퓨터를 사용할 때는 그런 내부 과정을 거의 볼 일이 없기 때문에 그냥 “CPU가 빠르면 컴퓨터도 빠르다” 정도로만 생각했던 것이다. 그런데 서버 구조와 운영체제 내부를 조금씩 공부하다 보니까 현대 컴퓨터는 오히려 CPU를 최대한 덜 바쁘게 만들기 위해 계속 발전하고 있다는 게 보이기 시작했다. 특히 네트워크 처리나 SSD I/O처럼 엄청난 양의 데이터가 이동하는 환경에서는 CPU가 단순 복사 작업에 시간을 쓰는 것 자체가 굉장히 큰 낭비가 될 수 있었다. 그리고 이런 문제를 해결하기 위해.. 2026. 5. 25. io_uring은 왜 차세대 Linux I/O 구조라고 불릴까 리눅스 서버 구조를 조금씩 공부하다 보면 결국 공통된 흐름 하나가 계속 보이기 시작한다. 바로 “CPU가 불필요한 일을 하지 않게 만드는 것”이다. 나도 처음에는 서버 성능이라고 하면 CPU 성능이나 RAM 용량만 중요하다고 생각했었다. 그런데 Epoll, Zero-Copy, C10K Problem 같은 구조들을 이해하고 나니까 현대 서버는 오히려 “작업을 얼마나 줄일 수 있는가”가 훨씬 중요한 시대라는 걸 느끼게 됐다. 그리고 그 흐름 속에서 최근 리눅스 서버 분야에서 굉장히 많이 언급되는 기술이 바로 io_uring이다.처음 이름을 봤을 때는 솔직히 너무 리눅스 커널 내부 용어 같아서 어렵게 느껴졌다. 그런데 구조를 조금씩 이해하다 보니까 왜 이 기술이 “차세대 Linux I/O 구조”라고 불리는지 .. 2026. 5. 24. C10K Problem은 왜 서버 역사에서 중요할까 요즘은 수많은 사람이 동시에 접속하는 웹서비스를 너무 당연하게 사용한다. 유튜브 라이브 방송, 대형 게임 서버, 실시간 채팅 서비스까지 동시에 수십만 명이 연결되는 것도 이제는 특별한 일이 아니다. 그런데 예전 인터넷 초기 시절에는 서버가 동시에 1만 개 연결(Connection)조차 처리하기 어려웠던 시기가 있었다고 한다. 그리고 이 문제를 바로 C10K Problem이라고 부른다.처음 이름을 봤을 때는 무슨 에러 코드 같은 느낌이었다. 그런데 의미를 알고 나니까 꽤 흥미로웠다. 여기서 C는 Connection, 10K는 10,000을 의미한다. 즉, “서버가 동시에 1만 개 연결을 효율적으로 처리할 수 있는가?”라는 문제였던 것이다.나도 처음에는 “요즘 컴퓨터면 그냥 되지 않나?” 싶었는데, 당시 서.. 2026. 5. 24. Zero-Copy는 왜 서버 성능을 높여줄까 고성능 서버 구조를 공부하다 보면 어느 순간부터는 CPU 계산 속도보다 “데이터를 어떻게 옮기느냐”가 훨씬 중요한 문제처럼 느껴지기 시작한다. 나도 예전에는 서버 성능이라고 하면 CPU나 RAM만 생각했었다. 그런데 Epoll이나 Context Switching 구조를 조금씩 이해하고 나니까, 실제 서버는 생각보다 계산보다도 데이터 이동 때문에 훨씬 많은 비용을 쓰고 있다는 걸 알게 됐다. 그리고 그 흐름 끝에서 등장하는 대표적인 최적화 기술 중 하나가 바로 Zero-Copy다.처음 이름만 들었을 때는 “복사를 안 한다고?”라는 생각부터 들었다. 컴퓨터는 데이터를 복사하면서 움직이는 게 당연한 줄 알았기 때문이다. 그런데 실제로는 서버가 파일 하나를 네트워크로 전송할 때조차 메모리 복사가 여러 번 발생하.. 2026. 5. 23. Epoll은 왜 대규모 서버에 중요할까 멀티스레드와 Context Switching 구조까지 공부하다 보면 자연스럽게 이런 의문이 생긴다. “그럼 서버는 수만 명이 동시에 접속하면 어떻게 버티는 걸까?” 나도 예전에는 웹서버가 단순히 CPU 성능이 좋아서 많은 사용자를 처리하는 줄 알았다. 그런데 실제 서버 구조를 조금씩 찾아보다 보니까, 현대 서버는 단순히 스레드를 많이 만드는 방식으로 움직이지 않는다는 걸 알게 됐다. 특히 동시에 연결(Connection)이 엄청 많아지는 순간부터는 오히려 스레드가 많을수록 성능이 급격히 나빠질 수도 있었다.그리고 이 문제를 해결하기 위해 등장한 핵심 기술 중 하나가 바로 Epoll이다. 처음에는 이름만 봐도 너무 리눅스 커널 내부 용어 같아서 어렵게 느껴졌는데, 구조를 이해하고 나니까 “왜 현대 웹서버가.. 2026. 5. 23. 이전 1 2 3 4 5 6 ··· 28 다음