linux查看系统各项指标命令
在 linux 系统中,查看系统各项指标(如 cpu 使用率、内存使用、磁盘使用、网络状态等)可以通过以下常用命令来实现:
1. 查看 cpu 使用率
top:
- 实时显示系统的总体运行状况,包括 cpu、内存使用情况和各个进程的信息。
- 按
1键可以显示每个 cpu 核心的使用情况。
htop:
top的增强版本,提供更友好的界面和更多的功能(需要安装)。
mpstat:
- 显示各个 cpu 的使用情况,通常与
sysstat工具包一起使用。 - 示例:
mpstat -p all 1显示每个 cpu 核心每秒的使用情况。
2. 查看内存使用情况
free -h:
- 显示系统的内存使用情况,包括总量、已用、空闲和交换分区使用情况。
-h选项表示以人类可读的格式显示数据(例如:mb、gb)。
vmstat:
- 显示系统的内存、交换分区和 cpu 资源的综合统计信息。
- 示例:
vmstat 1 5每秒输出一次系统状态,持续 5 秒。
3. 查看磁盘使用情况
df -h:
- 显示文件系统的磁盘空间使用情况,包括每个分区的总容量、已用、可用空间。
-h选项表示以人类可读的格式显示数据。
du -sh *:
- 显示指定目录下每个文件或子目录的磁盘使用情况,总结输出。
-s表示总结,-h表示以人类可读格式显示。
iostat:
- 显示磁盘设备的 i/o 统计信息,通常与
sysstat工具包一起使用。 - 示例:
iostat -x 1每秒显示一次详细的 i/o 统计信息。
4. 查看网络状态
ifconfig 或 ip addr:
- 显示网络接口的配置信息
- 包括 ip 地址、子网掩码等
netstat -tuln:
- 显示系统当前打开的端口和监听状态
- 包括 tcp 和 udp 端口
ss -tuln:
netstat的更快替代品- 显示打开的端口和监听状态
ping:
- 检查网络连通性。
- 示例:
ping google.com测试到 google 的连通性。
traceroute:
- 跟踪数据包从本地机器到目标地址的路径。
- 示例:
traceroute google.com。
5. 查看系统负载
uptime:
- 显示系统的运行时间和平均负载(load average)。
top 或 htop:
- 实时显示系统负载信息。
sar:
- 系统活动报告,可以记录和回放负载数据,通常与
sysstat工具包一起使用。
6. 查看进程信息
ps aux:
- 显示系统上当前运行的所有进程及其详细信息。
top 或 htop:
- 实时显示系统的进程及其 cpu、内存占用情况。
pstree:
- 以树状结构显示进程及其父子关系。
心得
这些命令提供了关于系统各项指标的全面视图,是日常运维和问题排查的基本工具。在需要持续监控时,还可以结合 watch 命令来定时刷新命令输出,例如:watch -n 1 df -h。
这里有一个顺口溜,帮你快速记住用于查看 linux 系统各项指标的命令:
top查整体cpu忙,htop界面更友好;mpstat核用量,- 各项数据看得清。
free查内存,vmstat更全面;- 磁盘空间
df亮,du查看文件行; iostat查i/o忙,ifconfig配网络,netstat端口全。uptime查负载,sar可回放,ps aux查进程,pstree父子现。
这些命令一个个,顺口溜里记得牢,运维管理少烦恼!
在 linux 系统中,要查看 java 程序的运行状态,可以使用以下几种常用命令,帮助你判断 java 程序是否挂起或正在正常运行:
1. 使用 ps 命令
查看 java 进程:
使用 ps 命令可以列出当前正在运行的 java 进程。
示例:ps aux | grep java
输出示例:
user 1234 0.0 2.1 561234 45123 ? sl 08:30 0:01 java -jar your-application.jar
这个命令会显示包含 java 字样的所有进程。检查进程的 cpu 和内存使用情况(特别是 %cpu 和 %mem 列),如果它们为零且进程长时间没有任何输出,程序可能已经挂起。
2. 使用 top 或 htop 命令
实时监控 java 进程:
- 运行
top或htop命令,然后按下m键可以按内存使用排序,或按p键按 cpu 使用排序。 - 在列表中查找
java进程,观察其 cpu 和内存使用情况。 - 如果发现 java 进程的 cpu 使用率为 0%,并且内存使用稳定,可能表明程序处于挂起状态。
3. 使用 jps 命令
列出所有 java 进程:
jps 是 java 自带的工具,用于列出当前正在运行的 java 进程及其主类名。
示例:jps -l
输出示例:
1234 your.package.mainclass
通过 jps 可以快速确认 java 应用是否在运行,但它不能直接判断进程是否挂起。
4. 使用 jstack 命令
查看 java 线程堆栈:
jstack可以生成 java 进程的线程堆栈信息,适用于检查是否有死锁或挂起的线程。- 示例:
jstack <pid>,其中<pid>是 java 进程的进程 id(可以通过ps或jps获取)。 - 检查输出,寻找可能的死锁或线程长时间等待的迹象。
5. 使用 jstat 命令
监控 jvm 性能:
jstat可以监控 jvm 的内存使用、垃圾回收活动等信息,帮助判断 java 应用的健康状况。- 示例:
jstat -gc <pid>显示 gc(垃圾回收)统计信息,帮助分析程序是否由于内存问题而挂起。
6. 使用 netstat 命令
检查 java 程序的网络连接:
- 如果 java 程序涉及网络通信,可以使用
netstat查看其网络连接状态。 - 示例:
netstat -anp | grep java查看与 java 进程相关的所有网络连接,确认它们是否正常(如是否存在大量close_wait状态的连接)。
7. 检查日志
查看 java 应用的日志:
检查应用程序的日志文件(如 application.log 或 error.log),查看是否有错误或异常堆栈信息,这往往可以直接指示程序挂起的原因。
心得
要判断一个 java 程序是否挂起,可以结合使用 ps, top/htop, jps, jstack, jstat 等工具,观察进程的状态、cpu 和内存使用情况、线程堆栈,以及日志文件中的错误信息。这些方法可以帮助你快速确认 java 程序是否挂起以及可能的原因。
这里有一个顺口溜,帮你快速记住用于查看 linux 上 java 程序运行状态的命令:
ps查进程grep找,top看负载不停跑;jps列出java名,jstack堆栈查异常;jstat监控gc忙,netstat连通状态全;- 查日志看程序故障,
- 综合分析就不慌!
这个顺口溜包含了所有提到的命令,并且顺序对应,方便记忆。
总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持代码网。
发表评论