通常,当我发现自己在 unix/linux(或任何其他 *nix 变体)控制台前并且必须快速诊断服务器的状况时,我就是不记得应该检查的所有内容。
我将尝试 vmstat、一些 ps/top 操作、读取 procinfo 和一些日志文件(启动和系统),但我真正想要的是一种快速查看 Cpu、硬盘和物理内存状况的方法。
我似乎知道很多它已经存在于 vmstat 中,但不知何故,我怀念 server 2008 的易用性,您可以在其中找到一个不错的资源监视器,而任务管理器本身也可以快速查看系统状况(甚至没有谈论服务器 2008 的监控图形工具)。
任何建议,或者我只是因为 vmstat 真的是圣杯而变得跛脚?
编辑:谢谢大家的反馈。我应该补充一点,我并不是真的在谈论持续监控(nagios 是一个非常好的提议),而是偶尔步行到服务器 - 不一定是我的 - 进行快速系统条件查找(有时我只是碰巧某处和砰,嘿,你能过来检查一下吗?)
带有一些实用程序脚本的棒确实不错,已经有一个带有用于 Windows 机器的 sysinternals 应用程序。Htop 也很酷,尽管我认为无法将它安装在我碰巧在的任何地方。
如果您想在 linux 下使用一些花里胡哨 - 试试htop。
它在类固醇上处于领先地位,您可以将其配置为显示在 userland/system/iowait/irqs 中的“bars”cpu 时间花费上。这可能会让您很好地了解负载的原因。
仍然 - 您从 vmstat 获得的一些信息不会显示在 htop 中。
您也可以从sysstat中查看 sar 。[ Kyle Brandt 提到的 iostat 是同一软件包的一部分]。
根据您拥有的服务器数量,您可能需要为此设置nagios或类似的监控系统。基本上,您设置指标限制(CPU 使用率、内存使用率等),如果超出限制,您会收到警报,可能是页面或电子邮件或其他任何内容。但是,如果这是您的家用 PC,我发现自己正在使用nmon。它非常适合全面了解您的系统。它将显示有关内存、磁盘、CPU 和网络使用情况以及内核信息的信息。
top是一个很好的工具(如果已安装),但另一个我喜欢快速查看是否有问题的工具是dmesg。这应该让您知道服务器是否遇到了非常严重的问题(断开的网卡、磁盘故障、内存故障等)。
不要忘记 iostat,它是 sysstat 包的一部分。如果您想要一些易于移植的东西,为什么不编写一个可以随着时间推移而开发的 shell 或 Perl 脚本呢?这将是了解系统之间差异并更好地编写脚本的好方法。您通常可以从 proc 中解析出大部分信息,或者只是包装所有这些工具。
当我登录到已报告问题的主机时,我通常会运行 top 作为第一个呼叫点。它为您提供了对 cpu、内存、运行队列长度的一个很好的概述,然后我可以从中了解下一步要调查的内容。如果 iowait 启动,我会查看 iostat 如果内存不足,我会 ps 并查看哪些进程正在使用内存(或仅按内存排序)等...
unix 的美妙之处在于您不必接受所提供的工具。编写一个脚本,向您显示您想要的信息。
iostat vmstat top ps(请记住,您可以自定义 ps 的输出字段 - gnu ps 相当丢失) df dmesg /var/log/messages sar 您可以使用 syslogNG 将所有关键日志消息过滤到单独的日志文件中。
在 linux 上值得检查的一件不寻常的(ish)事情是 /proc/mounts。有时文件系统是只读的,但这不是 mount 显示的,而是显示在 /proc/mounts 中。我在虚拟机和 FC 存储上都看到过这种情况(例如,路径以一种奇怪的方式消失了)。
另一个“顶级类固醇”计划:atop。太啰嗦了,吓死人了。