服务器问答

网页 TTFB 间歇超高延迟, nginx 如何优化
0
2021-05-19 17:45:35
idczone
静态页面,带宽、cpu、内存占用都在 20%以下,服务器 ping 值 30ms 以下。但网页加载时快时慢,Chrome 排查发现当加载缓慢时,waiting(TTFB)最高时达 15s。以下为 nginx 配置,请问该如何优化?

worker_processes 2;
worker_cpu_affinity 0101 1010;
#pid logs/nginx.pid;
worker_rlimit_nofile 200134;

events {
worker_connections 200134;
multi_accept on;
use epoll;
}

http {
include mime.types;
default_type application/octet-stream;
access_log off;
error_log /dev/null;
fastcgi on;
sendfile on;
tcp_nopush on;
tcp_nodelay on;
keepalive_timeout 20;
client_header_timeout 10;
client_body_timeout 10;
reset_timedout_connection on;
send_timeout 10;
open_file_cache max=200134 inactive=20s;
open_file_cache_valid 30s;
open_file_cache_min_uses 1;
open_file_cache_e抗投诉服务器rrors on;
server_tokens off;
gzip on;
打 log 定为耗时原因

定位

静态页面不至于这么慢吧,在客户端和服务器分别压测一下,看下是不是客户端网络问题;

先排除是不是带宽太低,网页内容太大

ttfb 十有八九是线路问题。先放个静态 html 测下

歪个楼请教一下,worker_connections worker_rlimit_nofile 这两个参数的值不是最大 65535 吗?谢谢!

还有一个问题,你们的 CPU 是几核的?我看你的配置,worker_cpu_affinity 这里的配置好像对不上 worker_processes。

都是乱几把配的,worker_rlimit_nofile 最大 1048576

worker_rlimit_nofile 貌似受 /etc/security/limits.conf 的句柄数限制,如果 worker_rlimit_nofile 能够设置超过 65535,是不是 /etc/security/limits.conf 的句柄数也能设置超过 65535 ?谢谢!

我记得 limits.conf 句柄数能超 65535,只是需要调整下 kernel 参数

worker_rlimit_nofile 和 /etc/security/limits.conf 最大都是系统限制的最大值 1048576,这 2 个值没有关系,worker_rlimit_nofile 配了只约束 nginx worker 进程,最大 1048576,大于 1048576 等于没配。系统这个 1048576 可以改,一般没啥意义,不详表。

带宽太低,网页内容太大,会咋样和表现呢?

nginx purge 了 重新装一个用默认配置也比你这瞎改瞎搭配的号

数据地带为您的网站提供全球顶级IDC资源
在线咨询
专属客服