本文概述
了解单个进程或系统范围内消耗多少CPU或内存。
作为系统管理员, 你经常必须处理由于CPU /内存/网络利用率高而导致应用程序运行缓慢或无响应的事件。如果服务器仅托管一个进程, 那么很容易找出进程何时消耗了所有资源。但是, 请想象一台共享服务器正在运行多个服务, 并且你需要找到哪个服务器正在消耗所有资源。
开箱即用的监控软件很多。但是, 如果你没有这种产品, 或者正在寻找基于命令的解决方案, 那么就可以开始。它们都是免费的!
top
你可能希望先查看top或htop结果以查看流程概述。
正如你在下面看到的那样, 它为所有流程都利用了一个绝妙的主意。如果看第一个, 则是nodejs占用3.9%的内存和0.3%的CPU。
top安装在几乎所有Linux发行版上。
一旦确定了嫌疑人, 你可能希望专注于该过程, 而不是上面看到的所有事情。你仍然可以使用top命令, 但是需要一些参数。
假设你知道进程ID(PID);你可以使用以下命令。
top -p $PID
你也可以将grep与top一起使用。下面是检查rabbitmq利用率的示例。
htop
与top相似, 但具有更多信息。如你所愿, 它具有命令列, 可方便地识别过程路径。并且, 它也是五颜六色的。
默认情况下, 可能不会安装htop, 但是如果使用Ubuntu, 则始终可以通过apt-get install htop进行安装。
glances
顾名思义, 你可以在一个屏幕上看到系统利用率视图。正在运行的进程按其CPU利用率排序。
atop
与上面列出的类似, 但具有出色的功能, 可以将输出记录在文件中, 以便以后查看。想象一下, 有一种在特定时间段出现问题的模式。你可以计划通过crontab或其他文件将输出写入文件中, 然后再播放。
要将输出记录在文件中:
atop -w filename
并播放:
atop -r filename
它支持多个参数, 如间隔, 样本等, 我强烈建议你看一下手册页。
如果你只对实时故障排除感兴趣, 则只需从头开始执行, 你将看到下面的内容。
ps
现在检查ps命令。
你可以将ps命令与PID一起使用以打印其CPU和内存使用率。
ps -p $PID -o %cpu, %mem
输出应如下所示。
[email protected]:~# ps -p 1048 -o %cpu, %mem
%CPU %MEM
0.2 3.0
[email protected]:~#
nmon
用于CPU, 内存, 磁盘, 网络, NFS和虚拟内存利用率的交互式命令行监视工具。要查看最高处理(按利用率), 你可以执行nmon并按t按钮。
Monit
Monit是基于Web的命令行开源解决方案, 用于监视服务器资源, 守护程序, 文件, 目录, 文件系统等。
Monit也有一个很棒的小部件。
Monitorix
一个轻量级的开源实用程序, 用于监视Linux服务器。 Monitorix具有内置的HTTP, 因此你可以检查网络上的利用率和其他内容。其他一些使用情况报告包括:
- 内核/温度
- 文件系统和I / O
- 网络流量
- Apache /邮件/ FTP / Nginx / MySQL / Varnish / Memcached /
Monitorix还提供警报配置, 因此在出现问题时可以通知你。当你管理基于云的服务器并寻找主动监控解决方案时, 这将是一个不错的选择。
Netdata
Netdata是对系统资源, 应用程序, Web服务器, 数据库, DNS, 邮件, 硬件传感器等的实时性能监视。它是开源的, 入门很容易。收集, 存储和传输所有数据, 以便你进行交互式可视化。每秒收集一次数据, 因此你不会错过任何东西。
受到许多行业领导者的喜爱。
因此, 你在等待什么, 尝试控制Linux服务器。
总结
希望以上工具能帮助你实时可视化服务器利用率, 以便你采取必要的措施。如果你只是以系统管理员身份开始并希望获得动手培训, 请查看此Udemy课程。
评论前必须登录!
注册