在ubuntu上搭建代理服务器,请问需要根据OS系统调整哪些参数?
我正在将运行在 redhat linux 上的 squid 迁移到 ubuntu。在 rhel 上运行时设置了参数,但在 ubuntu 上运行时
squid[1966]: 警告!您的缓存已用完文件描述符#012 监听端口:8080
我收到了警告,squid 的性能没有出来。我在 rhel 上运行时没有发生这种情况。
显然,squid 的最大文件描述符数为 1024,似乎无法进行更多处理。在 ubuntu 上作为服务器运行时,作为与这些 OS 系统相关的需要调整的参数请告诉我有什么样的事情。
答案1
假设您正在运行现代版本的 Ubuntu,则需要对可以随时打开的文件数量进行一些更改。请务必确认您的服务器安装了足够的 RAM 来处理所有文件,并确保在内存耗尽的情况下有大量可用的交换空间。内存管理不善可能会导致服务器锁定。
免责声明:
您将更改可同时打开处理的文件数量。这将对预留给缓冲区的 RAM 数量以及您可能需要的交换空间产生直接影响。您——和仅有的您 — — 是唯一能够提前确定系统需要多少内存用于 RAM 和交换以确保您的 Squid 安装不会导致服务器崩溃的人。
完成上述操作后,您需要编辑三个文件并重新启动才能解决缓存问题。操作方法如下:
连接到服务器(如果尚未连接)
编辑
limits.conf
文件:sudo {editor of choice} /etc/security/limits.conf
笔记:请务必
{editor of choice}
用您选择的编辑器进行替换。在配置文件底部添加以下行:
* - nofile 65535
这会将每个用户的打开文件数更改为 65,535。不要超过这个数字除非你确切地知道你在做什么以及为什么这么做。如果这个数字高于你的系统可以处理的范围,就会发生糟糕的事情。
保存文件并退出编辑器
编辑
squid
系统配置文件:sudo {editor of choice} /etc/sysconfig/squid
笔记:请务必
{editor of choice}
用您选择的编辑器进行替换。在配置文件底部添加以下行:
ulimit -n 65535
这会将 Squid 可以打开的文件数更改为 65,535。不要超过这个数字除非你确切地知道你在做什么以及为什么这么做。如果这个数字高于你的系统可以处理的范围,就会发生糟糕的事情。
保存文件并退出编辑器。
编辑
squid.conf
配置文件:sudo {editor of choice} /etc/squid/squid.conf
笔记:请务必
{editor of choice}
用您选择的编辑器进行替换。在配置文件底部添加以下行:
max_filedescriptors 65535
笔记:此数字不应超过您使用的值
ulimit
。保存文件并退出编辑器
重启
根据您使用 Squid 的目的、服务器上安装了多少内存、正在运行多少其他服务以及系统整体繁忙程度,您应该不再看到缓存警告。