服务器的性能测试

服务器的性能测试,第1张

提到服务器性能测试,不得不提到很多术语。为了让大家更容易理解,举个生活中的例子:

你中午去“海底捞”吃饭。

我们可以把“海底捞”这个酒楼看成一个被测系统

你去吃饭,就是对这个被测系统发起请求,对这个系统造成了一定的负载。你带去的人越多,那么这个餐馆就越繁忙,可以说餐馆承受的负载就越大。

你开始点菜。这个时候你隔壁桌的人也开始点菜。那么你们两个对这个系统产生了并发的请求。同时,其他桌有的在吃菜,有的在等菜,这些都是并发进行的事务。一个完整的吃饭事务可以定义成包括:点菜,下单,上菜,买单四个步骤。对于一个C/S的系统来说,可以对应于:建立连接,发送请求,接受应答,断开连接。

影响一个餐馆生意好坏的一个重要原因是上菜速度。上菜速度体现在两个方面:

很多因素会影响上菜速度,比如服务员的个数、厨师的个数。对于一个C/S的系统,服务员相当于是接入层,厨师相当于是后台服务。假如服务员太少,下单很慢,后面的厨师都闲着,那么上菜速度也快不了;假如服务员够多,下单足够快,但是厨师太少,下的单来不及做,同样上菜速度也很慢;如果服务员很多,厨师也很多,但是来的客人很少,那么大部分的服务员和厨师都闲着,资源全部浪费掉了。因此,接入层和后台服务进程个数、以及资源配比,都是需要根据实际情况进行调优的。

来多少顾客,这是酒楼自己无法控制的,但是酒楼的上菜速度、餐位多少都会制约客流量。一定有一个峰值客流量,当来的客人超过了这个峰值,那么这些客人就会等位,或者是上菜速度超慢让客人无法容忍。容量测试就是通过工具模拟足够多的顾客来吃饭的事务,希望找到这样一个客流量对酒楼产生一定的负载,这个时候酒楼既能接待最多的客户同时也能保证最短的等待时间。更多的,还可以对这个酒楼人员配置和餐位设置等进行调优,以期达到一个最理想的资源利用率和效率。

客流量跟进来的客人多少有关,也跟餐馆的接待能力有关。单方面增加来就餐的顾客,遭到投诉的可能性就越大,上错菜的可能性也越大。

1.一个顾客请求的处理耗时,从下单到上菜中间等待的时间,我们称之为响应时间。

2.这个餐馆同时为多名顾客上菜的频率,我们称之为吞吐量。

################### cpu性能查看 ############################################################

1、查看物理cpu个数:

cat /proc/cpuinfo |grep "physical id"|sort|uniq|wc -l

2、查看每个物理cpu中的core个数:

cat /proc/cpuinfo |grep "cpu cores"|wc -l

3、逻辑cpu的个数:

cat /proc/cpuinfo |grep "processor"|wc -l

物理cpu个数*核数=逻辑cpu个数(不支持超线程技术的情况下)

########################### 内存查看 ################################################################

1、查看内存使用情况:

free -m

total used free sharedbuffers cached

Mem: 3949 2519 1430 0189 1619

-/+ buffers/cache:710 3239

Swap: 3576 0 3576

total:内存总数

used:已经使用的内存数

free:空闲内存数

shared:多个进程共享的内存总额

- buffers/cache:(已用)的内存数,即used-buffers-cached

+ buffers/cache:(可用)的内存数,即free+buffers+cached

Buffer Cache用于针对磁盘块的读写;Page Cache用于针对文件inode的读写,这些Cache能有效地缩短I/O系统调用的时间。

对于操作系统来说free/used是系统可用/占用的内存;而对于应用程序来说-/+ buffers/cache是可用/占用内存,因为buffers/cache很快就会被使用。我们工作时候应该从应用角度来看。

################# 硬盘查看 ##########################################################################

1、查看硬盘及分区信息:

fdisk -l

2、查看文件系统的磁盘空间占用情况:

df -h

3、查看硬盘的I/O性能(每隔一秒显示一次,显示5次):

iostat -x 1 5

iostat是含在套装systat中的,可以用yum -y install systat来安装。

常关注的参数:

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

如果idle小于70%,I/O的压力就比较大了,说明读取进程中有较多的wait。

4、查看linux系统中某目录的大小:

du -sh /root

如发现某个分区空间接近用完,可以进入该分区的挂载点,用以下命令找出占用空间最多的文件或目录,然后按照从大到小的顺序,找出系统中占用最多空间的前10个文件或目录:

du -cksh *|sort -rn|head -n 10

############################################ 查看平均负载 ####################################

有时候系统响应很慢,但又找不到原因,这时就要查看平均负载了,看它是否有大量的进程在排队等待。

最简单的命令:

uptime

查看过去的1分钟、5分钟和15分钟内进程队列中的平均进程数量。

还有动态命令:

top

我们只关心以下部分:

top - 21:33:09 up 1:00, 1 user, load average: 0.00, 0.01, 0.05

如果每个逻辑cpu当前的活动进程不大于3,则系统性能良好;

如果每个逻辑cpu当前的活动进程不大于4,表示可以接受;

如果每个逻辑cpu当前的活动进程大于5,则系统性能问题严重。

一般计算方法:负载值/逻辑cpu个数

还可以结合vmstat命令来判断系统是否繁忙,其中:

procs

r:等待运行的进程数。

b:处在非中断睡眠状态的进程数。

w:被交换出去的可运行的进程数。

memeory

swpd:虚拟内存使用情况,单位为KB。

free:空闲的内存,单位为KB。

buff:被用来作为缓存的内存数,单位为KB。

swap

si:从磁盘交换到内存的交换页数量,单位为KB。

so:从内存交换到磁盘的交换页数量,单位为KB。

io

bi:发送到块设备的块数,单位为KB。

bo:从块设备接受的块数,单位为KB。

system

in:每秒的中断数,包括时钟中断。

cs:每秒的环境切换次数。

cpu

按cpu的总使用百分比来显示。

us:cpu使用时间。

sy:cpu系统使用时间。

id:闲置时间。

标准情况下r和b的值应该为:

r<5,b=0

假设输出的信息中:

如果r经常大于3或4,且id经常少于50,表示cpu的负荷过重。

pi、po长期不等于0,表示内存不足。

bi经常不等于0,且在b中的队列大于2或3,表示io的性能不好。

################################# 其他参数 #####################################

查看内核版本号:

uname -a

简化命令:

uname -r

查看系统是32位还是64位的:

file /sbin/init

查看发行版:

cat /etc/issue

或lsb_release -a

查看系统已载入的相关模块:

lsmod

查看pci设置:

lspci


欢迎分享,转载请注明来源:夏雨云

原文地址:https://www.xiayuyun.com/zonghe/487403.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-06-13
下一篇2023-06-13

发表评论

登录后才能评论

评论列表(0条)

    保存