我有足够的内存和 CPU,但是 nginx 在高流量时显示 503 错误。
以下是内存使用情况
total used free shared buffers cached
Mem: 3383 3370 12 0 37 3071
-/+ buffers/cache: 260 3122
Swap: 4094 0 4094
CPU 使用率也从未超过 20%
top - 13:31:10 up 43 days, 6:47, 3 users, load average: 0.16, 0.19, 0.22
Tasks: 95 total, 1 running, 92 sleeping, 2 stopped, 0 zombie
Cpu(s): 0.0%us, 0.0%sy, 0.0%ni, 96.7%id, 3.2%wa, 0.0%hi, 0.0%si, 0.2%st
Mem: 3464192k total, 3450844k used, 13348k free, 53248k buffers
Swap: 4192944k total, 100k used, 4192844k free, 3135820k cached
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
1 root 15 0 10364 648 552 S 0.0 0.0 0:04.33 init
2 root RT -5 0 0 0 S 0.0 0.0 0:14.15 migration/0
3 root 34 19 0 0 0 S 0.0 0.0 0:00.05 ksoftirqd/0
4 root RT -5 0 0 0 S 0.0 0.0 0:00.00 watchdog/0
5 root 10 -5 0 0 0 S 0.0 0.0 0:01.10 events/0
我使用此代码来查看活动连接:netstat -an |grep :80 |wc -l
当显示的数字低于 1500 时,一切正常,但当显示的数字超过 1500 时,用户会出现 503 错误。
我已经设定: worker_processes 2;
并且worker_connections 2024;
但仍然出现此错误。
请帮助我并建议如何修复此问题。并告诉我导致此错误的原因。我使用的是 nginx 0.8.55
谢谢。
答案1
尝试增加 worker_rlimit_nofile 和 worker_connection,无论如何,看看 error_log 中发生了什么事情还是有好处的。例如:
worker_rlimit_nofile 65535;
events {
worker_connections 65535;
}