我的 Ubuntu 10.04 服务器从今天早上开始就宕机了。当我重新启动它时,我可以使用几分钟,然后 RAM 和 Swap 就满了,SSH 无法响应。似乎 ClamAV 是问题的一部分。我该如何停止它?clamd stop 不起作用。
更全面地说,我该如何停止所有电子邮件服务?
更新:我认为不再需要日志文件。
更新2:
wpc2617:~# free -m
total used free shared buffers cached
Mem: 875 868 7 0 0 12
-/+ buffers/cache: 855 20
Swap: 976 867 108
wpc2617:~# vmstat
procs -----------memory---------- ---swap-- -----io---- -system-- ----cpu----
r b swpd free buff cache si so bi bo in cs us sy id wa
1 31 971132 8076 696 18988 311 1300 2915 1309 244 200 9 2 11 77
答案1
(将我对问题的评论转换成答案,因为它似乎有效 - 希望可以。)
尝试killall clamscan
,然后停止启动这些进程的程序。S 列下的“D”表示进程处于“不可中断的睡眠”状态,这可能是由于各种原因造成的,但可能是由于内存和交换空间已完全填满(来自和top
“free -m
缓冲区/缓存”行)而导致的对/从交换页面的调换。
终止进程可能是一个挑战(见关于不间断进程的答案),因此您可能需要重新配置系统以不使用clamscan,然后重新启动服务器。
答案2
您可以检查以下一些评论和事项:
- 我没有在您发布的日志中看到任何明显错误。是什么让您认为日志中的最后一行有问题?
- 接近 100% 的 RAM 利用率通常是一件好事。但是,您不希望发生的是开始使用交换空间,这将很快降低服务器的性能,这可能是问题所在。使用命令
top
并确保交换内存接近于零。free -m
也可用于查看内存的使用情况vmstat
。 - 另外,使用 检查 CPU 使用率
top
。如果使用率或负载很高,则可能是其他原因。 - 如果您遭受 DoS 攻击,您的网络连接也可能已完全使用(尤其是在 10 Mbps 线路上)。使用
ifconfig
或提供商的控制面板检查您的网络使用情况。 - 如果您似乎无法实时发现问题,请尝试安装一个基本的监控包,以便
sar
捕获您稍后可以提供的统计数据。
答案3
尝试启动服务器,然后立即登录并运行,top
然后按 M(实际上是大写的 M,按内存使用情况排序)并观察您的资源。您应该看到交换使用 0 字节,并且内存可用,要么完全使用,因为 Linux 有时可以使用,要么使用很少,但主要观察消耗内存的进程的顶部。如果应用程序有内存泄漏,您应该看到内存开始增加的模式。如果您看到它是什么,请停止进程/服务,并查看 30 分钟后的情况(如果持续)。
祝你好运
编辑:问题在于您的邮件日志将显示 amavis 找不到任何主扫描仪,并且很可能退回到辅助扫描,在您的情况下是 clamscan。clamscan 非常慢,并且会为它扫描的每个邮件或文件启动一个进程。您需要的是 clamd 并配置 amavisd 以将其用作主扫描仪。如果您没有使用 amavisd(尽管您应该使用),那么您正在使用 procmail 进行过滤,因为它似乎以用户帐户的身份运行。您需要修改您的设置,并可能配置 postfix 以连接到 amavisd 服务以最好地处理扫描。
答案4
# To free pagecache:
# echo 1 > /proc/sys/vm/drop_caches
# To free dentries and inodes:
# echo 2 > /proc/sys/vm/drop_caches
# To free pagecache, dentries and inodes:
# echo 3 > /proc/sys/vm/drop_caches
sudo sync && sudo sysctl -w vm.drop_caches=3