안녕하십니까. 좋은아빠되기입니다.
아침에 글을 적었다가 삭제를 했는데...
아무래도 제가 이상한게.. 아닌거 같아서 다시 질문 드려 봅니다.
현재 보통때와 비슷한 사이트 이용 패턴을 보이고 있는 상황인데요..
이제껏 Apache 2.4를 쓸때는
watch 'netstat -anp |grep :80 | grep ESTAB | wc -l'
이렇게 동접자를 확인하면...
80~100 정도 나오던게...
Nginx로 바꾸고 나서는
200~220까지 나오네요..
아침에 글 적고 제 느낌적인 느낌이 잘못된것이 아닐까 생각도 했지만
얼핏 생각해도 2배 이상 나오는것 같아서...
Nginx는 80번 포트로 Apache보다 뭔가 많이 연결해서 작업하는게 있는건가요?
watch 'netstat -anp |grep :80 | grep ESTAB | wc -l'
이렇게 확인할 경우
동접자 200일 경우
로드에버리지상으로 1.0 정도를 유지하는게 맞는데...
로드에버리지도 0.4 수준이구요..
이건 뭐 저희 서버 셋팅을 잘해주셔서.... Nginx 와 저희 사이트 프로그램이 궁합이 잘맞아서라고
치부할수 있겠으나..
사이트 로그나.... 저희 사이트에 와서 문제풀고 남긴 기록 데이터 상으로...
절대 절대 동접자 200 수치가 나올 상황이 아니거든요... 물론 Apache 2.4 경험상으로요..
Nginx는 정말 다른건가요?
아니면 제 느낌적인 느낌에 이상이 있는걸까요?
아파치는 서버 자원을 많이 잡아먹기 때문에 커넥션을 오래 유지하지 않도록 튜닝해야 합니다. 작업이 끝나면 몇 초 안에 끊어버리지요. 그래서 마지막으로 뭔가를 클릭한 지 몇 초만 지나면 netstat에서 동접수로 잡히지 않습니다.
nginx는 그런 문제가 없기 때문에, 아무 것도 하지 않고 그냥 탭만 열어놔도 Keep-Alive를 통해 커넥션을 1분 이상 유지할 수 있습니다. (아파치에서 권장하는 Keep-Alive 기간은 5초 정도인데, nginx는 기본값이 무려 65초입니다.) 커넥션 수가 많이 잡힐 수밖에 없지요. 그러고도 서버 부하는 오히려 더 낮습니다 ㅎㅎ