我运行一个公共代理,大约有 400 个客户端,但是当我检查日志文件时:
/var/etc/privoxy/logfile
我得到很多:
无法进行任何额外的连接。
我/etc/privoxy/config
已设置max-client connections
为 100000000000000 但仍然收到错误。到底是怎么回事?我的服务器功能强大,并且我的互联网连接没有出现任何延迟或问题。
在配置文件中它说连接仅限于服务器的资源,但我想这里的情况并非如此?
答案1
dmesg
您的日志中有任何消息吗?另外,底层操作系统发行版是什么?我怀疑您的内核可能是使用库存设置配置的,您可能需要增加文件描述符或盒子上的一些有限资源。
例如
此命令显示内核能够打开的最大文件数:
$ cat /proc/sys/fs/file-max
309210
此命令显示有多少可用资源正在使用:
$ cat /proc/sys/fs/file-nr
5568 0 309210
Where:
5568 The number of allocated file handles.
0 The number of unused-but-allocated file handles.
309210 The system-wide maximum number of file handles.
因此,在上述情况下,我有大量可用的文件句柄。
如果您想增加描述符的最大数量,可以使用以下命令在实时系统上执行此操作:
sudo sysctl -w fs.file-max=400000
要使其成为从重新启动到重新启动的默认值:
vim /etc/sysctl.conf
并添加以下行:
fs.文件最大值 = 400000
附加 sysctl 参数
以上是一种可能出现的问题。内核中配置了许多参数,这些参数限制了给定系统上的资源。您可以使用以下命令查看完整的参数列表:
sysctl -a
不要随意改变这里的值!研究它们以查看它们是否设置为超出限制privoxy
,然后进行测试以查看提高此参数是否可以解决您的问题。
还要尝试了解您耗尽此资源是否有意义。如果文件描述符用完了,不要随意将其提高到更高的值。尝试确定是否privoxy
没有正确释放打开的文件是解决问题的更好方法,而不是盲目地提高限制。