Programming/Go
Go/Golang HTTP 성능 튜닝
Go는 아주 쉽고 빠르게 HTTP 기능들을 구현할 수 있지만 성능 요구사항이 높아지다 보면 TIME_WAIT 등 자주 접하는 문제들이 있으며 자연스럽게 Go HTTP 튜닝 방법을 찾게 됩니다. 이번 포스팅에선 일반적인 Go HTTP 옵션들을 정리해봤습니다. 1. HTTP 통신을 위한 프로세스당 FD 개수 한도 설정 일반적으로 다음과 같이 리눅스가 설치되고 시스템 자원의 한도 값 중 프로세스당 FD의 개수에 대한 한도 값을 보면 다음과 같이 1024로 설정되어 있습니다. $> ulimit -n 1024 HTTP는 프로토콜의 특성상 TCP의 연결이 자주, 많이 발생하므로 1024는 부족해서, 조금만 트래픽 부하를 주어도 'Too many open files'와 같은 오류를 발생시킬 수 있습니다. 따라서 이 ..