linux – 如何监视和记录进程的内存/ CPU使用情况?

我正在寻找一种方法来诊断问题,例如交换死亡,其中气球存储过程填满交换并杀死整个机器(例如apache).

我已经在使用仙人掌,我可以设置nagios(虽然不愿意)或munin但据我所知他们不能记录个人程序使用 – 只是整体状态.

我知道我可以滚动一个>>的脚本到每30秒一些文件,但我想看看现有的成熟解决方案是否已经存在.

理想情况下,它会:

>每N秒记录进程的内存使用情况
>每N秒记录进程的CPU使用率
>支持图表和历史
>支持平均值 – 就像mysqld在最后一天使用43%的CPU并平均400MB内存
>自由开源

流程名称不是也不应该事先知道 – 这个想法是让它监控,然后看看顶级违规者.

我的系统是Linux(OpenSUSE).

解决方法

你只想要顶级罪犯,考虑在批处理模式下以相对较长的间隔(60秒加)运行顶级.您可能需要多个顶级运行来捕获多个资源上的顶级违规者.我已经将系统配置为在资源被过度使用时运行顶部几个周期.

考虑以批处理模式运行sar以捕获资源利用率.我意识到这是基于服务器的,但它有助于确定问题发生的时间.

运行munin并启用通知.这可能会让您有机会进入并观察服务器停机.您可以在问题发生故障之前纠正问题.

对于内存泄漏,交换使用量的稳定增加表明存在问题.我曾经看过服务器慢慢死了一段时间.问题服务是监视其他内存泄漏过程的程序.系统管理员一直坚持增加交换使用不是问题,直到服务器停止响应.

您可能会发现cfengine的异常检测可用于触发脚本在出现问题时捕获系统状态.除了使用最多资源的进程之外,您可能还需要大量信息.对于突然涌入的使用情况,您可能需要一个网络连接列表(按地址而不是名称).内存使用也很有用.

相关文章

文章浏览阅读1.8k次,点赞63次,收藏54次。Linux下的目录权限...
文章浏览阅读1.6k次,点赞44次,收藏38次。关于Qt的安装、Wi...
本文介绍了使用shell脚本编写一个 Hello
文章浏览阅读1.5k次,点赞37次,收藏43次。【Linux】初识Lin...
文章浏览阅读3k次,点赞34次,收藏156次。Linux超详细笔记,...
文章浏览阅读6.8k次,点赞109次,收藏114次。【Linux】 Open...