Nginx 고 효율 전송 모드 설정
9149 단어 Nginx 의 학습nginxlinux서버
vi /usr/local/nginx/conf/nginx.conf
http {
......
sendfile on;
tcp_nopush on;
keepalive_timeout 65;
tcp_nodelay on;
client_header_timeout 15;
client_body_timeout 15;
send_timeout 15;
......
}
# nginx
nginx -t
nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok
nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful
# nginx
nginx -s reload
매개 변수 이름
매개 변수 설명
sendfile on
sendfile on 은 파일 의 효율 적 인 전송 모드 를 열 고 tcpnopush on 과 tcpnodelay on 두 명령 을 on 으로 설정 하면 네트워크 와 디스크 I / O 차단 을 방지 하고 Nginx 작업 효율 을 향상 시 킬 수 있 습 니 다.메모: 그림 이 정상적으로 표시 되 지 않 으 면 이것 을 off 로 바 꿉 니 다.
tcp_nopush on
sendfile 에서 모드 를 켜 야 유효 합 니 다. 패 킷 을 설정 하면 누적 되 고 함께 전송 하면 전송 효율 을 향상 시 키 고 네트워크 메시지 세그먼트 의 수량 을 적극적으로 줄 일 수 있 습 니 다.
keepalive_timeout 65
하나의 요청 이 완 료 된 후에 얼마나 더 연결 해 야 합 니까? 요청 시간 이 얼마 가 아니 라 긴 연결 을 유지 하고 연결 과정 이 시스템 에 가 져 오 는 성능 손실 을 줄 이 는 것 이 목적 입 니 다. 스 레 드 탱크, 데이터 베이스 연결 탱크 와 유사 합 니 다.
tcp_nodelay on
가장 핵심 적 인 기능 은 작은 가방 을 큰 가방 으로 구성 하여 대역 폭 이 용 률 을 높이 는 것 이다.
client_header_timeout 15
클 라 이언 트 와 서버 가 연결 되 어 있 는 후 request body 를 보 내 는 시간 초과 시간 을 지정 합 니 다.클 라 이언 트 가 지정 한 시간 내 에 내용 을 보 내지 않 으 면 Nginx 는 HTTP 408 (Request Timed Out) 로 돌아 갑 니 다. 기본 값 은 60 초 입 니 다.
client_body_timeout 15
클 라 이언 트 가 서버 에 완전한 request header 의 시간 초과 시간 을 보 냅 니 다.클 라 이언 트 가 지정 한 시간 내 에 완전한 request header 를 보 내지 않 으 면 Nginx 는 HTTP 408 (Request Timed Out) 을 되 돌려 줍 니 다. 기본 값 은 60 초 입 니 다.
send_timeout 15
클 라 이언 트 가 두 번 데 이 터 를 읽 을 때 클 라 이언 트 에 데 이 터 를 보 내 는 시간 이 초과 되 는 것 을 말 합 니 다. 기본 60s 입 니 다. 연속 적 인 60s 내 클 라 이언 트 가 1 개의 바이트 를 받 지 못 하면 연결 이 닫 힙 니 다.
2. 다른 호스트 에서 압력 테스트
Nginx 가 10 만 개의 요청 을 연결 할 수 있다 고 하 니 한번 해 보 겠 습 니 다.
먼저 Nginx 호스트 에서 원래 의 방문 로 그 를 삭제 하고 Nginx 를 다시 시작 한 다음 방문 로그 로 통 계 를 낼 수 있 습 니 다.
#
rm /usr/local/nginx/logs/access.log
# Nginx
nginx -s reload
전기 작업 준비 가 다 되 었 으 니, 그럼 우 리 는 테스트 를 시작 합 시다!
다른 호스트 에서 테스트 하기
ab -n 100000 -c 1020 http://172.25.0.20/
This is ApacheBench, Version 2.3 <$Revision: 1430300 $>
Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/
Licensed to The Apache Software Foundation, http://www.apache.org/
Benchmarking 172.25.0.20 (be patient)
Completed 10000 requests
Completed 20000 requests
Completed 30000 requests
Completed 40000 requests
Completed 50000 requests
Completed 60000 requests
Completed 70000 requests
Completed 80000 requests
Completed 90000 requests
Completed 100000 requests
Finished 100000 requests
Server Software: nginx/1.18.0
Server Hostname: 172.25.0.20
Server Port: 80
Document Path: /
Document Length: 4247 bytes
Concurrency Level: 1020
Time taken for tests: 16.232 seconds
Complete requests: 100000
Failed requests: 0
Write errors: 0
Total transferred: 448200000 bytes
HTML transferred: 424700000 bytes
Requests per second: 6160.79 [#/sec] (mean)
Time per request: 165.563 [ms] (mean)
Time per request: 0.162 [ms] (mean, across all concurrent requests)
Transfer rate: 26965.48 [Kbytes/sec] received
Connection Times (ms)
min mean[+/-sd] median max
Connect: 0 56 248.9 2 7018
Processing: 1 94 170.8 61 3296
Waiting: 1 92 170.5 59 3295
Total: 2 150 307.5 68 7093
Percentage of the requests served within a certain time (ms)
50% 68
66% 81
75% 93
80% 105
90% 232
95% 1056
98% 1095
99% 1242
100% 7093 (longest request)
Nginx 호스트 에서 접근 수 집계
#
cat /usr/local/nginx/logs/access.log | wc -l
200000
#
tail /usr/local/nginx/logs/access.log
172.25.0.100 - - [29/Jun/2020:23:50:31 +0800] "GET / HTTP/1.0" 200 4247 "-" "ApacheBench/2.3"
172.25.0.100 - - [29/Jun/2020:23:50:31 +0800] "GET / HTTP/1.0" 200 4247 "-" "ApacheBench/2.3"
172.25.0.100 - - [29/Jun/2020:23:50:31 +0800] "GET / HTTP/1.0" 200 4247 "-" "ApacheBench/2.3"
172.25.0.100 - - [29/Jun/2020:23:50:31 +0800] "GET / HTTP/1.0" 200 4247 "-" "ApacheBench/2.3"
172.25.0.20 - - [29/Jun/2020:23:50:32 +0800] "GET /first.html HTTP/1.0" 200 4247 "-" "ApacheBench/2.3"
172.25.0.20 - - [29/Jun/2020:23:50:32 +0800] "GET /first.html HTTP/1.0" 200 4247 "-" "ApacheBench/2.3"
172.25.0.20 - - [29/Jun/2020:23:50:32 +0800] "GET /first.html HTTP/1.0" 200 4247 "-" "ApacheBench/2.3"
172.25.0.100 - - [29/Jun/2020:23:50:32 +0800] "GET / HTTP/1.0" 200 4247 "-" "ApacheBench/2.3"
172.25.0.100 - - [29/Jun/2020:23:50:32 +0800] "GET / HTTP/1.0" 200 4247 "-" "ApacheBench/2.3"
172.25.0.100 - - [29/Jun/2020:23:50:32 +0800] "GET / HTTP/1.0" 200 4247 "-" "ApacheBench/2.3"
제 가 대 리 를 했 기 때문에 두 배로 나 올 거 예요.
Nginx 성능 좋 은 데...
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Nginx 이벤트 처리 모듈 설정select, poll, epoll, / dev / poll, eventport 는 모두 nginx 의 IO 다 중 재 활용 메커니즘 입 니 다. 지원 모듈 은 더 효과 적 인 방법 이 없 는 플랫폼 에서 자동 으로...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.