一、top命令显示
在macOS的控制台中,top命令提供了系统当前运行的进程的详细信息以及整体系统资源的利用情况。下面是对输出中各个字段的解释:
Processes:
483 total: 系统上总共有483个进程。
2 running: 当前有2个进程正在运行。
481 sleeping: 当前有481个进程处于休眠状态。
2459 threads: 系统上总共有2459个线程。
Load Avg:
3.56, 3.97, 3.69: 分别表示过去1分钟、5分钟和15分钟的平均负载。平均负载是指系统处于运行状态和不可中断睡眠状态的平均进程数。数值越高,表示系统越繁忙。
CPU usage:
2.63% user: 用户空间占用的CPU百分比。
4.19% sys: 内核空间占用的CPU百分比。
94.17% idle: CPU空闲的百分比。
SharedLibs:
407M resident: 共享库占用的常驻内存大小。
70M data: 共享库中的数据段大小。
29M linkedit: 链接编辑段的大小。
MemRegions:
403134 total: 内存区域的总数。
1635M resident: 常驻内存区域的大小。
64M private: 私有内存区域的大小。
757M shared: 共享内存区域的大小。
PhysMem:
8173M used: 已使用的物理内存。
2381M wired: 被固定不可移动的物理内存。
2242M compressor: 被压缩机制管理的物理内存。
18M unused: 未使用的物理内存。
VM:
39T vsize: 虚拟内存大小。
3570M framework vsize: 框架虚拟内存大小。
70908434(0) swapins: 交换进的次数。
73439259(0) swapouts: 交换出的次数。
Networks:
packets: 14679368/14G in: 接收的数据包数量和总数据量。
8844419/1539M out: 发送的数据包数量和总数据量。
Disks:
15216306/470G read: 读取的磁盘块数量和总数据量。
8178170/365G written: 写入的磁盘块数量和总数据量。
PID, COMMAND, %CPU, TIME, #TH, #WQ, #PORT, MEM, PURG, CMPRS, PGRP, PPID, STATE, BOOSTS, %CPU_ME, %CPU_OTHRS, UID, FAULTS, COW, MSGSENT, MSGRECV:
PID: 进程ID。
COMMAND: 进程名称或命令行。
%CPU: 进程占用的CPU百分比。
TIME: 进程自启动以来的总CPU时间。
#TH: 进程中的线程数。
#WQ: 等待队列中的线程数。
#PORT: 进程使用的端口数。
MEM: 进程使用的物理内存大小。
PURG: 进程被清除的内存大小。
CMPRS: 进程被压缩的内存大小。
PGRP: 进程组ID。
PPID: 父进程ID。
STATE: 进程状态(如运行、休眠等)。
BOOSTS: 进程的优先级提升计数。
%CPU_ME: 进程在用户模式下的CPU占用百分比。
%CPU_OTHRS: 进程在其他模式下的CPU占用百分比。
UID: 进程所属用户的用户ID。
FAULTS: 进程引起的页错误数。
COW: 写时复制页数。
MSGSENT: 进程发送的消息数。
MSGRECV: 进程接收的消息数。
这些字段提供了对系统当前状态的深入理解,有助于诊断性能问题和资源使用情况。
二、iostat 1 5
- 参数 1 5 表示每隔 1s 查询一次,总共查询 5 次
- 用于监控设备的 IO 负载情况
三、df -h
- 列出文件系统的整体磁盘空间使用情况
四、uptime
- 用于显示系统总共运行了多长时间和系统的平均负载
五、sysctl 命令:
- sysctl machdep.cpu.brand_string:显示 CPU 的品牌信息,例如 "Intel® Core™ i7-8750H CPU @ 2.20GHz"。
- sysctl -n machdep.cpu.core_count:显示 CPU 的核心数(物理核心数)。
- sysctl -n machdep.cpu.thread_count:显示 CPU 的逻辑处理器数(包括超线程技术下的线程数)。
- 其他参数如hw.activecpu、hw.cpufrequency等也可以提供关于CPU的详细信息
六、system_profiler:
- system_profiler SPHardwareDataType:显示硬件的详细信息,其中包括 CPU 的型号、速度、核心数等
七、ifconfig
- 用于获取网卡配置和网络信息
八、netstat 在MacOS命令
-r:显示路由表信息。路由表是一个关键的网络配置工具,用于确定网络数据包应该如何转发。
-n:以数值形式显示地址,而不是尝试解析主机名。这可以提高命令执行速度,并确保信息的准确性。
-a:显示所有选项,包括默认不显示的LISTEN相关的连接。
-t:仅显示TCP相关的选项。
-u:仅显示UDP相关的选项。
-p:显示建立相关连接的程序名(注意:在macOS上,使用此选项时需要指定协议,如TCP或UDP)。
-v:显示详细的信息(在某些版本的macOS中可能不支持)。
-f:指定地址族,如inet(IPv4)或inet6(IPv6)。
-i:显示网络接口信息。
-s:按各个协议进行统计。
九、ps 相关的命令
-
显示所有进程信息:
ps -A
or
ps -e -
显示指定用户的进程信息:
ps -u 用户名
-
显示所有进程的完整信息:
ps -ef
-
以长格式显示当前终端的进程信息:
ps -l
-
显示所有用户的所有进程信息:
ps aux
-
与 awk 配合命令,进行过滤使用,例如过滤下面第二行数据:
501 49083 48665 0 4:28下午 ttys000 0:00.00 grep tomcatps -ef |grep tomcat |awk '{print $2}'
49083
-
在控制台上将 PID 赋值给变量;
PID=$(ps -ef | grep tomcat | grep -v grep | awk '{print $2}')
注意,这里添加了 grep -v grep 来排除掉包含 grep 命令本身的那一行,因为 grep tomcat 也会匹配到包含 grep tomcat 的命令行。
-
检查变量是否成功赋值:
echo $PID
如果 Tomcat 正在运行,这将输出 Tomcat 进程的 PID。如果没有输出,说明没有找到匹配的进程。
-
使用变量:
现在您可以使用 $PID 变量来执行其他操kill -9 $PID
注意,使用 kill -9 会强制终止进程,这可能会导致数据丢失或其他问题。通常,您应该首先尝试使用 kill $PID 或 kill -15 $PID 来优雅地终止进程。