linux服务器性能查看

一、系统性能分析工具

1.常用系统命令

Vmstat、sar、iostat、netstat、free、ps、top等

(1)top

当前内核服务的任务,还显示许多主机状态的统计数据,默认情况下,它每隔5秒自动更新一次。
如:当前正常运行时间,系统负载,进程数量和内存使用率,

此外,这个命令也显示了那些使用最多CPU时间的进程(包括每个进程的各种信息,如运行用户,执行的命令等)。

(2)vmstat

Vmstat命令提供当前CPU、IO、进程和内存使用率的快照,它和top命令类似,自动更新数据,如:

$ vmstat 10

(3)iostat

Iostat提供三个报告:CPU利用率、设备利用率和网络文件系统利用率,使用-c,-d和-h参数可以分别独立显示这三个报告。

(4)free

显示主内存和交换空间内存统计数据,指定-t参数显示总内存,指定-b参数按字节为单位,使用-m则以兆为单位,默认情况下千字节为单位。

Free命令也可以使用-s参数加一个延迟时间(单位:秒)连续运行,如:

$ free -s 5

(5)sar

收集,查看和记录性能数据,这个命令比前面几个命令历史更悠久,它可以收集和显示较长周期的数据。

 

2.常用组合方式

  1. vmstat、sar、iostat检测是否是CPU瓶颈

  2. free、vmstat检测是否是内存瓶颈

  3. iostat检测是否是磁盘I/O瓶颈

  4. netstat检测是否是网络带宽瓶颈

 

 二、Linux性能评估与优化

系统整体性能评估(uptime命令)

注意:

  • load average三值大小一般不能大于系统CPU的个数。

    系统有8个CPU,如load average三值长期大于8,说明CPU很繁忙,负载很高,可能会影响系统性能。

  • 但偶尔大于8,一般不会影响系统性能。

  • 如load average输出值小于CPU个数,则表示CPU有空闲时间片,比如本例中的输出,CPU是非常空闲的

 

三、CPU性能评估

1.利用vmstat命令监控系统CPU

显示系统各种资源之间相关性能简要信息,主要看CPU负载情况。

r--运行和等待cpu时间片的进程数,这个值如果长期大于系统CPU的个数,说明CPU不足,需要增加CPU

b--在等待资源的进程数,比如正在等待I/O、或者内存交换等。

CPU

us

用户进程消耗的CPU 时间百分比。
us的值比较高时,说明用户进程消耗的cpu时间多,但是如果长期大于50%,就需要考虑优化程序或算法。

sy

内核进程消耗的CPU时间百分比。Sy的值较高时,说明内核消耗的CPU资源很多。

根据经验,us+sy的参考值为80%,如果us+sy大于 80%说明可能存在CPU资源不足。

 2.利用sar命令监控系统CPU

sar对系统每方面进行单独统计,但会增加系统开销,不过开销可以评估,对系统的统计结果不会有很大影响。

输出解释如下:

  1. %user列显示了用户进程消耗的CPU 时间百分比。

  2. %nice列显示了运行正常进程所消耗的CPU 时间百分比。

  3. %system列显示了系统进程消耗的CPU时间百分比。

  4. %iowait列显示了IO等待所占用的CPU时间百分比

  5. %steal列显示了在内存相对紧张的环境下pagein强制对不同的页面进行的steal操作 。

  6. %idle列显示了CPU处在空闲状态的时间百分比。

你是否遇到过系统CPU整体利用率不高,而应用缓慢的现象?

在一个多CPU的系统中,如果程序使用了单线程,会出现这么一个现象,CPU的整体使用率不高,但是系统应用却响应缓慢,这可能是由于程序使用单线程的原因,单线程只使用一个CPU,导致这个CPU占用率为100%,无法处理其它请求,而其它的CPU却闲置,这就导致了整体CPU使用率不高,而应用缓慢现象的发生。

 

四、内存性能评估

1.利用free指令监控内存

free是监控Linux内存使用状况最常用的指令

经验公式:

  1. 应用程序可用内存/系统物理内存>70%,表示系统内存资源非常充足,不影响系统性能;

  2. 应用程序可用内存/系统物理内存<20%,表示系统内存资源紧缺,需要增加系统内存;

  3. 20%<应用程序可用内存/系统物理内存<70%,表示系统内存资源基本能满足应用需求,暂时不影响系统性能

 

2.利用vmstat命令监控内存

memory

  1. swpd--切换到内存交换区的内存数量(k为单位)。如swpd值偶尔非0,不影响系统性能

  2. free--当前空闲的物理内存数量(k为单位)

  3. buff--buffers cache的内存数量,一般对块设备的读写才需要缓冲

  4. cache--page cached的内存数量

一般作为文件系统cached,频繁访问的文件都会被cached,如cache值较大,说明cached的文件数较多,如果此时IO中bi比较小,说明文件系统效率比较好。

swap

  1. si--由磁盘调入内存,也就是内存进入内存交换区的数量。

  2. so--由内存调入磁盘,也就是内存交换区进入内存的数量。

si、so的值长期不为0,表示系统内存不足。需增加系统内存。

五、磁盘I/O性能评估

1.磁盘存储基础

频繁访问的文件或数据尽可能用内存读写代替直接磁盘I/O,效率高千倍。

将经常进行读写的文件与长期不变的文件独立出来,分别放置到不同的磁盘设备上。

对于写操作频繁的数据,可以考虑使用裸设备代替文件系统。

裸设备优点:

  1. 数据可直接读写,不需经过操作系统级缓存,节省内存资源,避免内存资源争用;

  2. 避免文件系统级维护开销,如文件系统需维护超级块、I-node等;

  3. 避免了操作系统cache预读功能,减少了I/O请求

使用裸设备的缺点是:

数据管理、空间管理不灵活,需要很专业的人来操作。

 

2.利用iostat评估磁盘性能

解释如下:

  1. Blk_read/s--每秒读取数据块数

  2. Blk_wrtn/s--每秒写入数据块数

  3. Blk_read--读取的所有块数

  4. Blk_wrtn--写入的所有块数

可通过Blk_read/s和Blk_wrtn/s值对磁盘的读写性能有一个基本的了解.
如Blk_wrtn/s值很大,表示磁盘写操作频繁,考虑优化磁盘或程序,
如Blk_read/s值很大,表示磁盘直接读操作很多,可将读取的数据放入内存

规则遵循:

长期的、超大的数据读写,肯定是不正常的,这种情况一定会影响系统性能。

 

3.利用sar评估磁盘性能

通过“sar –d”组合,可以对系统的磁盘IO做一个基本的统计

参数含义:

  1. await--平均每次设备I/O操作等待时间(毫秒)

  2. svctm--平均每次设备I/O操作的服务时间(毫秒)

  3. %util--一秒中有百分之几的时间用于I/O操作​​​​​​​

对磁盘IO性能评判标准:

正常svctm应小于await值,而svctm和磁盘性能有关,CPU、内存负荷也会对svctm值造成影响,过多的请求也会间接的导致svctm值的增加。

  1. await值取决svctm和I/O队列长度以及I/O请求模式,

  2. 如果svctm的值与await很接近,表示几乎没有I/O等待,磁盘性能很好,

  3. 如果await的值远高于svctm的值,则表示I/O队列等待太长,系统上运行的应用程序将变慢,

  4. 此时可以通过更换更快的硬盘来解决问题。​​​​​​​

%util--衡量磁盘I/O重要指标,

如%util接近100%,表示磁盘产生的I/O请求太多,I/O系统已经满负荷工作,该磁盘可能存在瓶颈。

可优化程序或者 通过更换 更高、更快的磁盘。

 

六、 网络性能评估

  1. 通过ping命令检测网络的连通性

  2. 通过 netstat –i 组合检测网络接口状况

  3. 通过 netstat –r 组合检测系统的路由表信息

  4. 通过 sar –n 组合显示系统的网络运行状态​​​​​​​

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
通过网上收集和对LINUX服务器性能的分析和体验,整理了几个比较实用,功能比较强大的性能测试工具供亲们下载,虽然网络上都对每个工具做了详细的功能介绍和文档说明,但分得很散,所以, 在此本人将各个比较实用的服务器性能测试工具集中起来,方便开发人员有针对性的测试和对比,在服务器性能方面起到很好的效果。 1、LTP--linux稳定性测试: LTP套件是由 Linux Test Project 所开发的一套系统测试套件。它基于系统资源的利用率统计开发了一个测试的组合,为系统提供足够的压力。通过压力测试来判断系统的稳定性和可靠性。 2、Linux性能测试工具Lmbench:Linux性能测试工具Lmbench是一套简易可移植的,符合ANSI/C标准为UNIX/POSIX而制定的微型测评工具。一般来说,它衡量两个关键特征:反应时间和带宽。Lmbench旨在使系统开发者深入了解关键操作的基础成本。其官方网站是:http://www.bitmover.com/lmbench/。 3、Linux下很全面的监控工具dstat:dstat是一个用来替换 vmstat,iostat netstat,nfsstat和ifstat这些命令的工具, 是一个全能系统信息统计工具. 与sysstat相比, dstat拥有一个彩色的界面, 在手动观察性能状况时, 数据比较显眼容易观察; 而且dstat支持即时刷新, 譬如输入dstat 3, 即每三秒收集一次, 但最新的数据都会每秒刷新显示. 和sysstat相同的是, dstat也可以收集指定的性能资源, 譬如 dstat -c 即显示CPU的使用情况. 下载安装文件dstat-0.6.7-1.el*.rf.noarch.rpm: http://dag.wieers.com/rpm/packages/dstat/ 3、网络流量监测图形分析工具 Cacti:Cacti是一套基于PHP,MySQL,SNMP及RRDTool开发的网络流量监测图形分析工具 4、Linux系统维护常用工具sysstat:sysstat这个工具,可以说是linux &Unix; 以及Freebsd最常用的工具。它的主要用途就是观察服务负载,比如CPU和内存的占用率、网络的使用率以及磁盘写入和读取速度等。 5、Apache ab 压力测试:ab的全称是ApacheBench,ab是Apache 附带的超文本传输协议(HTTP)的性能测试工具。 其设计意图是描绘当前所安装的Apache的执行性能,主要是显示你安装的Apache每秒可以处理多少个请求;
要在Python中查看Linux服务器性能,您可以使用一些库和工具来收集和分析服务器性能数据。以下是一些示例代码和库,可以帮助您开始监视服务器性能: 1. psutil库:可以使用psutil库来获取有关系统资源的信息,如CPU利用率、内存使用情况、磁盘使用情况等。 ```python import psutil # 获取CPU利用率 cpu_percent = psutil.cpu_percent(interval=1) # 获取内存使用情况 memory_usage = psutil.virtual_memory() memory_percent = memory_usage.percent # 获取磁盘使用情况 disk_usage = psutil.disk_usage('/') disk_percent = disk_usage.percent ``` 2. uptime命令:如果您希望获取服务器的运行时间和负载信息,可以使用`subprocess`模块来执行`uptime`命令。 ```python import subprocess # 执行uptime命令并获取输出 result = subprocess.run(['uptime'], capture_output=True, text=True) output = result.stdout.strip() # 输出结果 print(output) ``` 3. sar命令:sar是一个系统活动报告工具,可以用于收集和分析服务器性能数据。您可以使用`subprocess`模块来执行sar命令并获取输出。 ```python import subprocess # 执行sar命令并获取输出 result = subprocess.run(['sar'], capture_output=True, text=True) output = result.stdout.strip() # 输出结果 print(output) ``` 这些是一些示例代码和工具,可以帮助您开始在Python中监视Linux服务器性能。您还可以探索其他库和工具,以根据您的需求获取更多详细的性能数据。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值