Art*_*kii 41 linux monitoring performance memory-usage
我正在寻找一种诊断问题的方法,例如交换死亡,其中膨胀内存进程填满交换并杀死整个机器(例如 apache)。
我已经在使用 cacti,我可以设置 nagios(虽然宁愿不这样做)或 munin,但据我所知,他们无法记录单个程序的使用情况 - 只是整体状态。
我知道我可以每 30 秒将一个 >> 脚本滚动到某个文件,但我想看看是否已经存在现有的成熟解决方案。
同样,理想情况下它会:
进程名称不是也不应该提前知道 - 想法是让它监控然后查看顶级违规者。
我的系统是 Linux (OpenSUSE)。
Bil*_*hor 21
如果您只想要最高的违规者,请考虑top在批处理模式下以相对较长的间隔(60 秒以上)运行。您可能需要不止一个top运行来捕获多个资源上的头号违规者。我已将系统配置top为在资源被过度使用时运行几个周期。
考虑sar以批处理模式运行以捕获资源利用率。我意识到这是基于服务器的,但它有助于确定发生问题的时间。
运行munin并启用通知。这可能会让您有机会进入并观察服务器出现故障。您可能能够在问题出现之前纠正问题。
对于内存泄漏,交换使用量的稳定增加表明存在问题。我曾经看到一个服务器在几天内慢慢死亡。问题服务是一个程序监视其他进程的内存泄漏。系统管理员一直坚持认为增加交换使用不是问题,直到服务器停止响应。
您可能会发现它cfengine的异常检测可用于触发脚本以在出现问题时捕获系统状态。除了使用最多资源的进程之外,您可能还需要很多信息。对于突然涌入的使用,您可能需要网络连接列表(按地址而不是名称)。内存使用也很有用。
我以前用过:
http://freshmeat.net/projects/atop/
“Atop 是一个 ASCII 全屏性能监视器,能够报告所有进程的活动(即使进程在间隔期间完成),每天记录系统和进程活动以进行长期分析,通过使用突出显示过载的系统资源颜色等。它定期显示与 CPU、内存、交换、磁盘和网络层相关的系统级活动,对于每个活动进程,它显示 CPU 利用率、内存增长、优先级、用户名、状态、和退出代码。”