查询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等待时间过长等。

最新文章

  1. 如何设置游戏分辨率(C++)
  2. JavaScript编程总结
  3. FMS直播流发布时 Microphone Speex 编码设置注意事项
  4. mongoDB(3) mapReduce
  5. android_audio
  6. hdu 4405Aeroplane chess(概率DP)
  7. 【方言】Access to DialectResolutionInfo cannot be null when &#39;hibernate.dialect&#39; not set
  8. python中的“引用”和C++的引用
  9. CSS中的repeat
  10. 写一方法来实现两个变量的交换。在主调函数中定义两个整型变量,并初始化,调用交换方法,实现这两个变量的交换。(使用ref参数)
  11. C++界面库
  12. [转] Freemarker的常用技巧总结
  13. .Net Core中的通用主机(一)——系统配置
  14. 2018idea如何布置tomcat修改URL后连接不到
  15. 十分钟学会Charles抓包(iOS的http/https请求)
  16. 解决vi删除键和方向键奇怪的问题
  17. 【Python】创建xml文档
  18. 找到IIS 站点对应的站点日志
  19. 第五章 mybatis批量更新update
  20. Window 7 + Ubuntu 双系统安装

热门文章

  1. ASP.NET Core 运行原理剖析 (转载)
  2. Oracle 备份恢复实例
  3. oracle本地安装注意事项
  4. 【Graphql实践】使用 Apollo(iOS) 访问 Github 的 Graphql API
  5. js检测是否可以访问公网服务器
  6. Tomcat问题之 启动 Cannot find /usr/local/tomcat/bin/setclasspath.sh
  7. JQuery制作网页——第八章 使用jQuery操作DOM
  8. Vue清除所有JS定时器
  9. 随机返回经典语句接口API
  10. 『Python基础-14』匿名函数 `lambda`