内核参数调优:让 1 核 1G 也能扛住小流量站
一台 1C1G 的小鸡,优化前 QPS 只有 400 左右,优化后能到 1800。
优化前
$ wrk -t4 -c200 -d30s http://127.0.0.1/
Requests/sec: 412.36
系统层
/etc/sysctl.d/99-tuning.conf:
net.core.somaxconn = 65535
net.ipv4.tcp_max_syn_backlog = 65535
net.ipv4.tcp_tw_reuse = 1
net.ipv4.tcp_fin_timeout = 15
net.ipv4.tcp_slow_start_after_idle = 0
net.core.rmem_max = 16777216
net.core.wmem_max = 16777216
fs.file-max = 1000000
Nginx 层
worker_processes auto;
worker_rlimit_nofile 65535;
events { worker_connections 8192; use epoll; multi_accept on; }
http {
sendfile on;
tcp_nopush on;
tcp_nodelay on;
keepalive_timeout 30;
gzip on;
gzip_comp_level 5;
}
优化后
$ wrk -t4 -c200 -d30s http://127.0.0.1/
Requests/sec: 1842.71
提升约 4.5 倍。
提醒
参数不要盲目抄,先压测出瓶颈再调。如果瓶颈在 PHP-FPM,调内核参数一点用都没有。
硬件看起来还行,就是不知道超售严重不严重。
补充一下我的经验:这家我用了大概 8 个月,整体还算稳,但有过两次短时间的网络抖动,都是半夜,持续时间不长。如果你要放生产环境,建议还是加个监控,出问题第一时间知道。
这个方案我用了半年,稳定。
数据很有参考价值,已经转给朋友看了。
这家的客服响应挺快的,之前工单半小时就回了。
晚高峰确实会掉速,我这边测下来大概掉 30%。
实测确实如此,我用了一个月也是这样。
看完就下单了,希望能稳定。
实测确实如此,我用了一个月也是这样。