linux集群性能测试



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



[root@hadoop5 ~]# uptime
  10:02:02 up 105 days, 22:02,  1 user,  load average: 1.49, 1.37, 1.52


  a. 观察 load average 的输出值, 这个值有三个带两位小数的数字: 1.49, 1.37, 1.52, 分别代表着过去1分钟, 5分钟, 15分钟的平均负载量, 负载量越低意味着你的性能越好.
  b. 例如, 本输出中系统有6个CPU, 如果load average的三个值长期大于6时, 说明CPU很繁忙, 可能会影响系统性能, 但是偶尔大于6时, 一般不会影响性能, 相反,如果load average的输出值小于CPU的个数,则表示CPU还有空闲的时间片,比如本例中的输出,CPU是非常空闲的。                                                                           
  c. 查看本机物理CPU个数: cat /proc/cpuinfo| grep "physical id"| sort| uniq| wc -l


2. CPU性能评估

2.1 利用vmstat命令监控系统CPU.
该命令可以显示关于各系统各种资源之间相关性能的简要信息. 这里我们要用它来看CPU一个负载情况.


[root@hadoop6 ~]# vmstat 2 1000
procs -----------memory---------- ---swap-- -----io---- --system-- -----cpu-----
r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa st
3  0   3984 167175776 664116 86981280    0    0    24   164    0    0  2  1 97  0  0
1  0   3984 167183152 664116 86978216    0    0     0 24014 15333 16686  4  1 95  0  0
1  0   3984 167167904 664116 86989392    0    0     0 22706 16445 16892  4  1 94  0  0


参数说明:
Procs:
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.2 利用 sar 命令监控系统CPU
sar功能很强大,可以对系统的每个方面进行单独的统计,但是使用sar命令会增加系统开销,不过这些开销是可以评估的,对系统的统计结果不会有很大影响。
下面是sar命令对某个系统的CPU统计输出:


[root@hadoop6 ~]# sar -u 3 5 #显示系统所有cpu在采样时间内的负载状态
Linux 3.13.6 (hadoop6.adauto.com)       05/21/2015      _x86_64_        (48 CPU)


10:19:04 AM     CPU     %user     %nice   %system   %iowait    %steal     %idle
10:19:07 AM     all      3.62      0.00      0.84      0.01      0.00     95.53
10:19:10 AM     all      3.78      0.00      0.84      0.01      0.00     95.37
10:19:13 AM     all      3.94      0.00      0.89      0.01      0.00     95.16
10:19:16 AM     all      3.35      0.00      0.87      0.01      0.00     95.76
10:19:19 AM     all      3.69      0.00      0.87      0.00      0.00     95.44
Average:        all      3.68      0.00      0.86      0.01      0.00     95.45


参数说明:
a. %user列: 显示用户进程消耗的CPU时间百分比
b. %nice列: 显示运行正常进程所消耗的CPU时间百分比
c. %system列: 显示了系统进程消耗的CPU时间百分比
d. %iowait列: 显示了IO等待所占用的CPU时间百分比
e. %steal列:  显示了内存相对紧张的环境下pagein强制对不同的页面进行的steal操作
f. %idle列:  显示了CPU处在空闲状态的时间百分比


3. 内存性能评估

3.1 利用free指令监控内存
free是监控linux内存使用状况最常用的指令, 看下面一个输出:
[root@hadoop6 ~]# free  -m   #查看以M为单位的内存使用情况
             total       used       free     shared    buffers     cached
Mem:        258443      94429     164013          0        648      84211
-/+ buffers/cache:       9569     248873
Swap:        16383          3      16380


一般有这样一个经验公式:
应用程序可用内存/系统物理内存 >70%时, 表示系统内存资源非常充足, 不影响系统性能
应用程序可用内存/系统物理内存 <20%时, 表示系统内存资源紧缺, 需要增加系统内存
20% < 应用程序可用内存/系统物理内存 < 70% 时, 表示系统内存资源基本能满足应用需求, 暂时不影响系统性能.


3.2 利用vmstat命令监控内存 


[root@hadoop6 ~]# vmstat 2 1000
procs -----------memory---------- ---swap-- -----io---- --system-- -----cpu-----
r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa st
3  0   3984 167175776 664116 86981280    0    0    24   164    0    0  2  1 97  0  0
1  0   3984 167183152 664116 86978216    0    0     0 24014 15333 16686  4  1 95  0  0
1  0   3984 167167904 664116 86989392    0    0     0 22706 16445 16892  4  1 94  0  0


参数表示:
memory:
a. swpd列: 表示切换到内存交换区的内存数量(以K为单位), 如果swpd的值不为0, 或者比较大, 只要si,so的值长期为0,这种情况下一般不用担心, 不会影响系统性能.
b. free列: 表示当前空闲的物理内存数量(以k为单位)
c. buff列: 表示buffers cache的内存数量, 一般对块设备的读写才需要缓冲.
d. cache列: 表示page cached的内存数量, 一般作为文件系统cached, 频繁访问的文件都会被cached, 如果cache值比较大, 说明chached的文件数较多, 如果此时IO中bi比较小, 说明文件系统效率比较好.


swap:
a. si列: 表示有磁盘调入内存, 也就是内存进入内存交换区的数量
b. so列: 表示由内存调入磁盘, 也就是内存交换区进入内存的数量


一般情况下, si, so 的值都为0, 如果si, so 的值长期不为0 , 则表示系统内存不足, 需要增加系统内存.


4. 磁盘I/O性能评估

4.1  利用iostat评估磁盘性能
[root@hadoop5 ~]# iostat 2 3
Linux 3.13.6 (hadoop5.adauto.com)       05/21/2015      _x86_64_        (48 CPU)
avg-cpu:  %user   %nice %system %iowait  %steal   %idle
          2.00    0.00    0.54    0.01    0.00   97.45
Device:            tps   Blk_read/s   Blk_wrtn/s   Blk_read   Blk_wrtn
sda               1.86         0.49        34.45    4476406  315397264
sdb             101.56      1311.90     15463.85 12009138986 141556391976


参数说明:
对上面每项的输出解释如下:


a. Blk_read/s : 表示每秒读取的数据块数
b. Blk_wrtn/s : 表示每秒写入的数据块数
c. Blk_read : 表示读取的所有块数
d. Blk_wrtn : 表示写入的所有块数


Ø 可以通过Blk_read/s和Blk_wrtn/s的值对磁盘的读写性能有一个基本的了解,如果Blk_wrtn/s值很大,表示磁盘的写操作很频繁,可以考虑优化磁盘或者优化程序,如果Blk_read/s值很大,表示磁盘直接读取操作很多,可以将读取的数据放入内存中进行操作。
Ø 对于这两个选项的值没有一个固定的大小,根据系统应用的不同,会有不同的值,但是有一个规则还是可以遵循的:长期的、超大的数据读写,肯定是不正常的,这种情况一定会影响系统性能。


4.2 利用sar评估磁盘性能
通过 "sar -d" 组合, 可以对系统的磁盘IO做一个基本的统计


[root@hadoop5 ~]# sar -d 2 3
Linux 3.13.6 (hadoop5.adauto.com)       05/21/2015      _x86_64_        (48 CPU)


10:52:44 AM       DEV       tps  rd_sec/s  wr_sec/s  avgrq-sz  avgqu-sz     await     svctm     %util
10:52:46 AM    dev8-0      1.03      0.00     12.37     12.00      0.00      0.00      0.00      0.00
10:52:46 AM   dev8-16    126.80      0.00  51117.53    403.12      0.13      1.06      0.15      1.96


10:52:46 AM       DEV       tps  rd_sec/s  wr_sec/s  avgrq-sz  avgqu-sz     await     svctm     %util
10:52:48 AM    dev8-0      1.05      0.00     12.57     12.00      0.00      0.00      0.00      0.00
10:52:48 AM   dev8-16    131.41      0.00  51145.55    389.20      0.13      1.03      0.17      2.20


需要关注的几个参数含义:
a. await: 表示平均每次设备I/O操作的等待时间(以毫秒为单位)
b. svctm: 表示平均每次设备I/O操作的服务时间(以毫秒为单位)
c. %util: 表示一秒中有百分之几的时间用于I/O操作


对以磁盘I/O性能, 一般有如下评判标准:
1. 正常情况下svctm应该是小于awit值的, 而svctm的大小和磁盘性能有关, CPU, 内存的负荷也会对svctm值造成影响, 过多的请求也会间接的导致svctm值的增加.


2. await值的大小一般取决与svctm的值和I/O队列长度以及I/O请求模式,如果svctm的值与await很接近,表示几乎没有I/O等待,磁盘性能很好,如果await的值远高于svctm的值,则表示I/O队列等待太长,系统上运行的应用程序将变慢,此时可以通过更换更快的硬盘来解决问题。

3. %util项的值也是衡量磁盘I/O的一个重要指标,如果%util接近100%,表示磁盘产生的I/O请求太多,I/O系统已经满负荷的在工作,该磁盘可能存在瓶颈。长期下去,势必影响系统的性能,可以通过优化程序或者通过更换更高、更快的磁盘来解决此问题。




5. Linux服务器上监控网络带宽的18个常用命令


下面是按功能划分的命令名称。


监控总体带宽使用――nload、bmon、slurm、bwm-ng、cbm、speedometer和netload
监控总体带宽使用(批量式输出)――vnstat、ifstat、dstat和collectl
每个套接字连接的带宽使用――iftop、iptraf、tcptrack、pktstat、netwatch和trafshow
每个进程的带宽使用――nethogs

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小狼躲藏

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值