Linux服务器监控性能测试
Posted lily328
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux服务器监控性能测试相关的知识,希望对你有一定的参考价值。
一:服务器性能测试范围
测试目的:发现服务器的性能瓶颈。配置的不同能够承载的最大任务数不同,能够承载的压力不同。
测试范围及性能指标
CPU:
内存:比磁盘的读写速度快。万一服务挂了,数据就没了。
磁盘:万一服务挂了,数据还存在。
网络:
版本:操作系统版本,应用系统的版本(数据库版本,redis版本)
二:进程和线程
进程是具有一定独立功能的程序关于某个数据集合上的一次运行活动,是系统进行资源分配和调度的一个独 立单位(进程上可以独立运行的,进程占有多少资源。qq,微信)
线程是进程的一个实体,是cpu调度和分派的基本单位,他是比进程更小的能独立运行的基本单位,线程自己基本上不拥有系统资源,只拥有一点在运行中必不可少的资源。一个线程可以创建和撤销另一个线程
(进程可拥有多个线程,多个线程之间可以互相操作,是cpu调度和分派的基本单位。进程占有多少资源)
一个线程只能属于一个进程,一个进程可以拥有多个线程。
线程是进程工作的最小单位。
一个进程会分配一个地址空间,进程与进程之间不共享地址空间。即不共享内存。
同一个进程下的不同的多个线程,共享父进程的地址空间。
线程在执行过程中,需要协作同步。不同进程的线程间要利用消息通信(消息队列,即三方组件kafka等)的办法实现同步。
线程作为调度和分配的基本单位,进程作为拥有资源的基本单位。
三:进程和线程的优缺点
进程-优点
每个进程互相独立,不影响主程序的稳定性,子进程崩溃不影响其他进程。
通过增加cpu,可以扩充性能。
可以尽量减少线程加锁与解锁的影响,极大的提高了性能。
进程-缺点
逻辑控制复杂,需要与主程序交互。
多进程调度开销大。
线程-优点
程序逻辑与控制方式简单。
所有线程可以直接共享内存和变量等。
线程方式消耗的总资源比进程方式少。
线程-缺点
每个线程与主程序共用地址空间,最大内存地址受限。
线程之间的同步和加锁不易控制。
一个线程的崩溃可能影响到整个程序的稳定性。
四:服务器实时内存监控
1. 查看物理CPU的个数
cat /proc/cpuinfo |grep "physical id"|sort |uniq|wc -l
实时监控命令:
top:能够实时监控系统的运行状态,并且可以按照cpu及内存等进行排序。
语法:top -hv | -bcHioss -d secs -n max -u | U user -p pid(s) -o field -w [cols]
top 参数
-h :帮助
-p:监控指定的进程。当监控多个进程时,进程ID以逗号分隔。这个选项只能在命令行下使用。
top 任务区命令
M :按内存使用率排序
P:按CPU使用率排序
z:彩色/黑白显示
top中的load average:系统的运行队列的平均利用率,也可以认为是可运行进程的平均数。三个值分别表示在最后的1分钟,5分钟,15分钟的平均负载值。
top的说明
在单核cpu中load average的值为1表示满负载状态。同理在多核cpu中满负载的load average的值为1*cpu的核数
例如:top
top -p 12092,8474查看多个进程
vmstat
可以监控操作系统的进程状态,内存,虚拟内存,磁盘IO,CPU的信息。
语法:vmstat [-a] [-n] [-S unit] [delay [ count]]
vmstat 参数
-S :使用指定单位显示。参数有k,K,m,M,分别代表1000,1024,1000000,1048576字节(byte)。默认单位为K(1024 bytes)
vmstat 1 2 :时间间隔为1s钟,显示2次
free
能够监控系统的内存使用状态。其中,total:总计物理内存的大小;Used:已使用多大;Free:可用有多少;shared:多个进程共享的内存总额;buffers/cached:磁盘缓存的大小。
free -h
五:服务器实时CPU监控
apt-get install -y sysstat
mpstat
mpstat最大的特点是:可以查看多核心cpu中每个计算核心的统计数据。
语法:mpstat [-P {|ALL}] [internal [count]]
%usr用户使用的
%sys系统使用的
%idle空闲的
mpstat参数
-P{|ALL} 表示监控哪个CPU,cpu在[0,cpu个数-1]中取值
interval 相邻的两次采样的间隔时间
count采样的次数,count只能和delay一起使用
mpstat需注意
当没有参数时,mpstat则显示系统启动以后所有信息的平均值。有interval时,第一行的信息自系统启动以来的平均信息。从第二行开始,输出为前一个interval时间段的平均信息。
mpstat -P 0:查看某一个cpu
mpstat 1 5:每个1秒钟,统计5次cpu的数据
六:服务器实时网络监控
netstat
netstat 命令用于显示本机网络链接,运行端口,路由表等信息
netstat 参数
-n :拒绝显示别名,能显示数字的全部转化成数字。
-l:仅列出有在Listen(监听)的服务状态。
-p:显示建立相关链接的程序名。
-t(tcp):显示tcp相关选项。
-u(udp):仅显示udp相关选项。
-i:显示自动匹配接口的信息。
-c:每隔一个固定时间,执行该netstat命令。
netstat -ntlp :可以用来查看运行的端口是否在监听状态
netstat -i:网络传输的大小,以及是否发生错误。
Iface:网络设备的接口名称
MTU:最大的传输单元。字节
RX-OK:已经准确无误地接收多少数据包。
RX-ERR:接收数据包时发生了多少错误。
RX-DRP:接收数据包时丢失了多少。
RX-OVR: 由于误差而接收时丢失多少
TX-OK:已经准确无误地发送多少数据包
TX-ERR:发送数据包时发生了多少错误
TX-DRP:发送数据包时丢失了多少
TX-OVR:由于误差发送时丢失多少
Flg:B已经设置了一个广播地址
M:接收所有的数据包
L:该接口是一个回送设备
netstat -i -c 1
七:服务器实时磁盘监控
iostat
iostat是对系统磁盘IO操作进行监控,它的输出主要显示磁盘的读写操作的统计信息。同时给出cpu的使用情况。
iostat用法
iostat [ -c | -d ] [ -k | -m] [ -t ] [ -V ] [ -x ] [ device [...] | ALL ]
[ -p [ device | ALL ] ] [ interval [ count ] ]
-x device 输出指定要统计的磁盘设备名称,默认为所有磁盘设备
iostat
tps:一次io请求的tps
iostat -x
rkB/s:读取的每秒钟的大小
wkB/s:写的每秒钟的大小
%util:io繁忙程度
iostat -x 1:每隔1s输出一次io信息。
以上是关于Linux服务器监控性能测试的主要内容,如果未能解决你的问题,请参考以下文章