Linux系统负载查询
查询Linux系统负载情况,一般需要了解三个方面的信息:
1、Linux系统配置。如Linux版本号、CPU、内存、网络、磁盘等;
2、收集系统负载信息的手段。常用的工具包有sysstat和procps等。
3、查询结果分析。通过工具包获取系统负载信息,要具体分析系统是否负载、某项指标参数是否超标、系统的瓶颈集中哪几项等。
一、查询Linux系统配置
查询CPU配置:
- lscpu命令
获取CPU架构、是否支持超线程、主频、缓存信息等。当然更详细的信息存储在/proc/cpuinfo文件。
查询内存配置
- free命令
free命令在man文档中的介绍为"Display amount of free and used memory in the system.",free -g 表示用GB显示内存信息,free -m表示用MB显示内存信息。
回显结果中"Mem: "行表示从OS层面看内存使用情况。"-/+ buffers/cache: "表示从应用程序角度看内存使用情况。
其中(- buffers/cache) used内存数=[Mem:] used - buffers - cached,反映的是被程序实实在在吃掉消耗的内存;
(+ buffers/cache) free内存数=[Mem:] free + buffers + cached,反映的是系统中还可以被挪用的内存;
buffer: A buffer is something that has yet to be "written" to disk.
cache: A cache is something that has been "read" from the disk and stored for later use.
二、查询系统负载
系统平均负载即在特定时间间隔内运行队列中的平均进程数。如果一个进程满足如下条件就会加入到运行队列中,
1 它没有在等待I/O操作的结果;
2 它没有主动进入等待状态;
3 没有被停止,包含等待终止。
常用查询命令:
command | descriptions |
uptime | tell how long the system has been running. |
top | display Linux tasks. |
iostat | report central processing unit(cpu) statistics and input/output statistics for device, partitions and network filesystems(NFS). |
vmstat | report virtual memory statistics. |
sysstat软件包:包含监测系统性能及效率的一组工具。
1、cifsiostat用于输出cifs文件系统的读写操作信息。
2、iostat用于输出CPU、I/O系统和磁盘分区的统计信息,可以用来分析磁盘I/O、带宽等信息。
3、mpstat用于输出CPU的各种统计信息,可以用于分析程序运行在内核态和用户态的工作情况。
4、pidstat用于监控被Linux内核管理的单个任务。
5、sadf用于格式化输出sar的输出数据。
6、sar用于定时收集系统的各种状态信息,然后可以对系统各个时间点的状态进行监控。
procps软件包:包含一组提供系统信息的实用程序。
1、ps用于查看某一时刻的进程。
2、sysctl用于在运行时配置内核参数。
3、free用于查询内存和swap信息。
4、pgrep,pkill用于通过名称和其他属性查找或者发送信号给进程。
5、pmap用于显示一个或者多个进程所使用的内存数量。
6、pwdx用于显示一个进程的工作目录。
7、skill、snice被废弃的命令,由killall、pkill、pgrep替代。
8、slabtop用于实时显示系统的内核缓存信息。
9、tload使用图形显示系统的平均负载。
10、top用于动态显示进程信息。
11、uptime用于显示系统运行时间和最近1min、5min和10min内的平均负载。
12、vmstat用于显示processes、memory、paging、block IO、tps、and cpu使用信息,
13、w显示登录的账户和他们活动情况。
14、watch定时执行程序,并全屏显示。
当然还有更多的第三方工具包用于监控Linux系统运行和性能情况,比如atop、htop、iotop等。
查询当前进程中所有的线程:
top命令
top -Hp <pid>
/proc/<pid>文件
cat /proc/<pid>/status
ls /proc/<pid>/task/ | wc -l
ps命令
ps hHp <pid> | wc -l
ps -T -p <pid>
三、结果分析
对于通过Linux命令和工具收集到的数据需要理解每个字段的含义 ,用于分析当前系统的负载情况,比如,内存占用过高、CPU繁忙、IO等待时间过长等。
最新文章
- 如何设置游戏分辨率(C++)
- JavaScript编程总结
- FMS直播流发布时 Microphone Speex 编码设置注意事项
- mongoDB(3) mapReduce
- android_audio
- hdu 4405Aeroplane chess(概率DP)
- 【方言】Access to DialectResolutionInfo cannot be null when &#39;hibernate.dialect&#39; not set
- python中的“引用”和C++的引用
- CSS中的repeat
- 写一方法来实现两个变量的交换。在主调函数中定义两个整型变量,并初始化,调用交换方法,实现这两个变量的交换。(使用ref参数)
- C++界面库
- [转] Freemarker的常用技巧总结
- .Net Core中的通用主机(一)——系统配置
- 2018idea如何布置tomcat修改URL后连接不到
- 十分钟学会Charles抓包(iOS的http/https请求)
- 解决vi删除键和方向键奇怪的问题
- 【Python】创建xml文档
- 找到IIS 站点对应的站点日志
- 第五章 mybatis批量更新update
- Window 7 + Ubuntu 双系统安装
热门文章
- ASP.NET Core 运行原理剖析 (转载)
- Oracle 备份恢复实例
- oracle本地安装注意事项
- 【Graphql实践】使用 Apollo(iOS) 访问 Github 的 Graphql API
- js检测是否可以访问公网服务器
- Tomcat问题之 启动 Cannot find /usr/local/tomcat/bin/setclasspath.sh
- JQuery制作网页——第八章 使用jQuery操作DOM
- Vue清除所有JS定时器
- 随机返回经典语句接口API
- 『Python基础-14』匿名函数 `lambda`