我有一个运行在nginx上的stream量很低的站点,有4个工作站,每个站点有1024个连接。
每隔几个小时,我开始在错误日志“1024 worker_connections是不够的”,我的网站变慢/成为flakey。 一个nginx重新启动解决了这个问题完全在接下来的几个小时。
显然有些奇怪的事情发生,我没有办法服务我的应用程序的4k并发用户。
除了查看访问日志(这看起来很正常),有没有一种方法可以更详细地观察nginx正在做什么?
是否有一些臭名昭着的configuration组合,可能会导致旧的连接保持开放,而不是closures?
谢谢。
编辑这看起来不正确
# lsof |grep nginx |grep CLOSE_WAIT |wc -l 1271
没有代理通过/反向代理
max_clients = worker_processes * worker_connections
用反向代理
max_clients = (worker_processes * worker_connections ) / (X * 2)
2是因为你打开了一个你正在代理的连接
X是这些客户端给你做的许多并发连接
要查看哪些连接挂在你身上,可以运行lsof -i :PORT 。 它将显示所有连接对nginx的打开状态。