sysctl 매개변수가 가상 머신에서 작동하지 않는 것 같습니다.

sysctl 매개변수가 가상 머신에서 작동하지 않는 것 같습니다.

서버 성능을 조정하려고 합니다. 이를 위해 net.core.somaxconn, net.ipv4.tcp_max_syn_backlog및 와 같은 일부 sysctl 매개변수를 테스트하고 싶습니다 net.core.netdev_max_backlog.

내 설정은 다음과 같습니다.

  • nginx docker 컨테이너를 실행하는 서버는 4vCPU정적 페이지를 제공하는 테스트 웹 서버 역할을 합니다.

  • One 16vCPU, one 8vCPU, one 4vCPU로드 생성기로 nginx 서버에서 프레임워크를 사용하고 있습니다.locust

네트워크 서버 가상 머신의 기본 sysctl 매개변수를 사용하면 15kRPS를 얻을 수 있습니다. 합계를 더 높은 값이나 더 낮은 값으로 변경한 후에도 net.core.somaxconn결과는 변경되지 않았습니다. RPS로 설정하기도 했습니다. 그런 다음 대기열이 가득 차서 일부 패킷이 삭제되었는지 확인하기 위해 실행했으며 출력에서 ​​비슷한 내용을 예상했습니다. 하지만 아무 것도 출력되지 않습니다.net.ipv4.tcp_max_syn_backlognet.core.netdev_max_backlog115knetstat -s | grep LISTENsynaccept123456 SYNs to LISTEN sockets dropped

다른 sysctl 매개변수를 테스트했습니다. 예를 들어 net.ipv4.tcp_keepalive_time, net.ipv4.tcp_keepalive_probes및 모두 0으로 설정했습니다 net.ipv4.tcp_keepalive_intvl. 하지만 실행한 후에도 netstat -a | grep -i wait여전히 많은 연결이 TIME_WAIT활성화되어 있는 것을 볼 수 있습니다. 뭐가 문제 야? 도와주세요?

관련 정보