我可以在终端中查看系统统计信息吗?


34

小部件iStat Pro允许监视不同的系统统计信息,例如

  • CPU使用率
  • 网络带宽输入/输出
  • 内存使用情况
  • ...

如何在终端中查看此类系统统计信息?

在此处输入图片说明

Answers:


56

根据您要查看的内容,在终端级别上有几个选项:

  • top:显示正在运行的进程,内存使用情况和类似的统计信息
  • iostat:显示每个终端,设备和SPU夏季统计信息的I / O
  • vm_stat:显示Mach虚拟内存统计信息
  • dfdiskutil list:报告已使用和可用的驱动器空间
  • fs_usage:显示磁盘和网络的文件活动
  • nettop:显示有关网络的更新信息(有点像网络I / O的顶部)
  • w:显示谁登录,他们在做什么和系统负载
  • ifconfigipconfig:网络接口和IP协议详细信息

这些命令中的大多数都有大量的选项,可能最好参考手册页以获取详细信息。

我通常依靠top -u -s 10识别占用大量CPU的进程和fs_usage -f filesys/ fs_usage -f network来识别产生大量磁盘/网络负载的进程。


@ JMY1000大声笑,我实际上很喜欢一个拥抱 CPU 的进程的想法:-)感谢您的编辑。
nohillside

@patrix啊,好死的拥抱。
JMY1000


4

您可以使用top。它会显示CPU和RAM的使用情况以及所有进程。它还将向您显示网络数据包的输入/输出以及光盘数据的读/写。


2
并与man top您一起看到如何自定义输出。
Rene Larsen'2

3

上面是很棒的命令。另外,我喜欢用

$ du -ks *

为了显示当前目录下所有文件夹使用了多少磁盘空间。

此命令按大小顺序列出前10个目录:

$ du -sh * | sort -nr | head -10

对于整体系统统计工具,我更喜欢python概览,而不是top:

https://nicolargo.github.io/glances/

这是在Debian / Ubuntu上安装它的方法:

$ sudo apt-get install glances

这是您如何在CentOS / Red Hat上安装它的方法:

# yum  install glances

1

如果您遇到网络问题,尤其是在服务器暴露于Internet的情况下,lsof(1)可能会非常有用。它列出了所有打开的文件。

例如,lsof | fgrep '/Library/WebServer/将显示您在Web服务器上打开的所有文件。我经常使用这种方法来查找和禁止“水after”和“机器人”,它们通过自动逐个文件吸吮来减少带宽。


1

使用单个立即返回的命令查看CPU使用率的首选方式是

ps -axro pcpu | awk '{sum+=$1} END {print sum}'

-ax:所有进程,包括非终端进程和您不拥有的进程。

-r:按CPU使用情况排序

-o pcpu:仅输出%cpu字段。%cpu是该过程的1分钟平均值,但仅在该过程的生命周期小于1分钟时才能求平均值。

awk:对每一行的第一列求和,并在末尾打印总和。

这是每核CPU指标,因此在12核CPU上,您最多可以达到1200;您没有上限为100。


0

这是两个用于确定本地和公共IP的命令:

本地IP

ipconfig getifaddr en1

这是在使用Wi-Fi时。用于以太网en0

公共IP

curl whatismyip.org

1
在当前的MacBook Air(没有以太网端口)上,Wi-Fi设备代码为en0。您可以了解它的用途networksetup -listallhardwareports | grep -E '(Wi-Fi|AirPort)' -A 1 | grep -o "en."
Lri 2012年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.