欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  科技

Linux系统负载查询

程序员文章站 2023-01-29 14:52:03
查询Linux系统负载情况,一般需要了解三个方面的信息: 1、Linux系统配置。如Linux版本号、CPU、内存、网络、磁盘等; 2、收集系统负载信息的手段。常用的工具包有sysstat和procps等。 3、查询结果分析。通过工具包获取系统负载信息,要具体分析系统是否负载、某项指标参数是否超标、 ......

 

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

 

 

    

    

 

 

 

 

---恢复内容结束---