位置: 编程技术 - 正文
推荐整理分享CentOS服务程序性能评估文档详解(centos如何查看服务进程),希望有所帮助,仅作参考,欢迎阅读内容。
文章相关热门搜索词:centos做服务器,centos5.8服务器,centos7 启动服务,服务器centos,服务器centos,centos5.8服务器,centos7服务启动顺序,centos7服务,内容如对您有帮助,希望把文章链接给更多的朋友!
1概述
1.1影响Linux服务程序性能的因素
CPU、内存、磁盘I/O带宽、网络I/O带宽
1.2性能评判
CPU:user% + sys%< %; 程序在用户态和内核态的执行时间百分比。
内存:Swap In(si)=0; Swap Out(so)=0; 以不使用交换分区为准,如果频繁用到交换分区,内存可能不够了。
硬盘:iowait % < %;
网络:只要有足够带宽尽情的使用吧,达到网卡带宽linux系统表示毫无压力
其中: %user:表示CPU处在用户模式下的时间百分比。
%sys:表示CPU处在内核模式下的时间百分比。
%iowait:表示CPU等待输入输出完成时间的百分比。
swap in:即si,表示虚拟内存的页导入,即从SWAP DISK交换到RAM
swap out:即so,表示虚拟内存的页导出,即从RAM交换到SWAP DISK。
1.3性能分析工具
常用系统命令:top、free、ps、uptime、iotop、vmstat、iostat 、dstat、sar。使用方法:top命令把握全局,使用特定命令深入分析
常用组合方式:
(1)CPU瓶颈:top、vmstat、iostat、sar –u、sar -q
(2)内存瓶颈:free、vmstat、sar -B、sar –r、sar -W
(3)磁盘I/O瓶颈:iotop、iostat、sar -b、sar –u、sar -d
(4)网络瓶颈: dstat
2 top
2.1功能
提供了实时的对系统处理器、内存、任务等状态监视;该命令可以按CPU使用、内存使用对任务进行排序;TOP是一个动态显示过程,可以通过用户按键来不断刷新当前状态,也可以在启动时指定刷新间隔。
2.2命令输出示意图
top - :: up days, :, 5 users, load average: 0., 0., 0.
Tasks: total, 2 running, sleeping, 0 stopped, 5 zombie
Cpu(s): 2.6%us, 1.3%sy, 0.4%ni, .7%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st
Mem: k total, k used, k free, k buffers
Swap: k total, k used, k free, k cached
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
zhixiang 0 m m m S 4.6 7.6 :. vs_exe
xulun 0 m m S 3.0 1.2 :. Xvnc
xulun m m S 2.3 0.3 0:. floaters
chujie 0 m m m S 2.0 6.6 :. vs_exe
sihao 0 m m m S 1.7 5.4 :. vs_exe
sihao 0 m m S 1.0 1.7 :. vs_exe
yongtao 0 m m S 1.0 4.6 :. vs_exe
chujie 0 m m S 0.7 3.5 :. KugooPopMsgServ
yanyun 0 R 0.3 0.0 0:. top
zhixiang 0 m m m S 0.3 1.5 :. Xvnc
1 root 0 S 0.0 0.0 0:. init
2.3命令输出解析
Top输出的信息很多基本囊括了所有的性能指标,前五行是统计信息区,表示的是系统整体的统计信息,包括:系统负载、任务、CPU、内存等;后面的是每个进程相关信息。
第一行是任务队列信息,同uptime命令的执行结果是一样的
[yanyun@~/test]$ uptime
:: up days, :, 5 users, load average: 0., 0., 0.
其内容如下::::当前时间
days, ::系统运行时间
5 users:当前登录用户数
load average: 0., 0., 0.:系统负载,即任务队列的平均长度。三个数值分别为 1分钟、5分钟、分钟前到现在的平均值。
第二行为进程的信息
内容如下: total:进程总数
2 running,:正在运行的进程数
sleeping:睡眠的进程数
0 stopped:停止的进程数
5 zombie:僵尸进程数
第三行为CPU的信息
内容如下:2.6%us:用户空间占用CPU百分比
1.3%sy:内核空间占用CPU百分比
0.4%ni:用户进程空间内改变过优先级的进程占用CPU百分比
.7%id:空闲CPU百分比
0.0%wa:等待输入输出的CPU时间百分比
第四、五行为内存信息;命令输出跟free相同
[yanyun@~]$ free
total used free shared buffers cached
Mem: 0
-/+ buffers/cache:
Swap:
内容如下:Mem :k total:物理内存总量
k used:使用的物理内存总量
k free:空闲内存总量
k buffers:用作缓冲的内存量
Swap: k total:交换区总量
k used:使用的交换区总量
k free:空闲交换区总量
k cached:缓存总量。
注:buffer:可以认为是写出磁盘的缓冲区;
Cache:读出磁盘的缓存。
Linux系统使用内存的原则是:不用白不用,用了也白用;尽可能的缓存东西,所以往往看空闲内存很小,但是cache很大;Linux系统会定时启动内核线程kswapd进行缓存回收。
后面的是显示每个进程相关信息
%CPU:上次更新到现在的CPU时间占用百分比
TIME+:进程使用的CPU时间总计
%MEM:进程使用的物理内存百分比
VIRT:进程使用的虚拟内存总量,单位kb
RES:进程使用的、未被换出的物理内存大小,单位kb。RES=CODE+DATA
SHR:共享内存大小,单位kb
S:进程状态。(D=不可中断的睡眠状态 R=运行 S=睡眠 T=跟踪/停止 Z=僵尸进程)
2.4常用选项
top [-] [d][p][M][P]
参数说明:
d:指定每两次屏幕信息刷新之间的时间间隔。(top –d 1:每秒刷新一次)
p:指定进程ID来仅监控某个进程。(top –d :只查看pid为的进程信息)
k:终止一个进程。Top运行时参数,系统将提示用户输入需要终止的进程PID,以及需要发送给该进程什么样的信号。使用信号9强制结束该进程。
M:根据驻留内存大小进行排序。
P:根据CPU使用百分比大小进行排序。
注:在命令行执行过程中按下数字键‘1’,可以查看到CPU每个核的相关信息。
Tasks: total, 3 running, sleeping, 0 stopped, 5 zombie
Cpu0 : 2.9%us, 2.9%sy, 0.0%ni, .2%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st
Cpu1 : 2.0%us, 2.0%sy, 0.0%ni, .1%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st
Cpu2 : 0.0%us, 0.0%sy, 0.0%ni,.0%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st
Cpu3 : 0.0%us, 0.0%sy, 0.0%ni,.0%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st
Mem: k total, k used, k free, k buffers
Swap: k total, k used, k free, k cached
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
chujie 0 m m m R 3.0 6.5 :. vs_exe
sihao 0 m m m R 2.0 7.1 2:. vs_exe
zhixiang 0 m m m S 2.0 6.8 4:. vs_exe
3 iotop:
3.1功能
是一个用来监视每个线程的磁盘 I/O 使用状况的类top 工具,
注:此命令需要自行安装(yum install iotop)
3.2命令输出示意图
Total DISK READ: . M/s | Total DISK WRITE: . K/s
TID PRIO USER DISK READ DISK WRITE SWAPIN IO> COMMAND
be/4 root . M/s 0. B/s 0. % . % ./relay_server
be/4 root . K/s 0. B/s 0. % . % ./relay_server
be/4 root . K/s 0. B/s 0. % . % ./relay_server
be/4 root . K/s 0. B/s 0. % . % ./relay_server
be/4 root . K/s 0. B/s 0. % . % ./relay_server
be/4 root . K/s 0. B/s 0. % 8. % ./relay_server
be/4 root . K/s 0. B/s 0. % 8. % ./relay_server
be/3 root 0. B/s 0. B/s 0. % 0. % [jbd2/sda2-8]
1 be/4 root 0. B/s 0. B/s 0. % 0. % init
2 be/4 root 0. B/s 0. B/s 0. % 0. % [kthreadd]
3 rt/4 root 0. B/s 0. B/s 0. % 0. % [migration/0]
3.3命令输出解析
第一行:
Total DISK READ: . M/s :磁盘每秒读出数据量
Total DISK WRITE: . K/s :磁盘每秒写入数据量
下面的是每个线程的的IO情况:
比较简单;只解释一下IO:跟top的wa意义相同,只是此处表示的一个线程的wa。
3.4常用选项
iotop [-] [d] [p]
参数说明:
d:指定每两次屏幕信息刷新之间的时间间隔。(iotop –d 1:每秒刷新一次)
p:指定线程ID来仅监控某个线程。(iotop –d :只查看pid为的进程信息)
注:在命令行执行过程中按下字母‘o’,可以只查看有IO的线程。
pstree -p:查看进程树,可以输出进程之间的关系。
ps –eLf:查看线程。ps –ef的高级版
4 vmstat:
4.1功能
查看虚拟内存(Virtual Memory)使用状况的工具
4.2命令输出示意图
[yanyun@~/test]$ vmstat
procs -----------memory---------- ---swap-- -----io---- --system-- -----cpu-----
r b swpd free buff cache si so bi bo in cs us sy id wa st
0 0 0 0 4 4 1 2 2 1 0 0
4.3命令输出解析
Memory:同top的第四、五行信息。
swap:内存到swap分区换入换出速率。
io:读写磁盘速率
system in:每秒的中断数,包括时钟中断
system cs:每秒的环境(上下文)切换数;频繁切换对系统性能有影响,linux提供了线程对cpu的亲和,可以将某个线程绑定到一个核运行。
cpu:同top输出的第三行
注:swap项不为零,都用到交换分区了,内存可能已经用完已经成为系统瓶颈的一项。
4.4常用选项
vmstat 1 :每秒刷新一次,总共刷新十次退出。
注:下面的选项都是专业的查看某一特定项的信息,有几个输出一大堆信息,用到时google吧!
-a:显示活跃和非活跃内存
-f:显示从系统启动至今的fork数量
-m:显示slabinfo
-s:显示内存相关统计信息及多种系统活动数量。
-d:显示磁盘相关统计信息。
-p:显示指定磁盘分区统计信息
5 iostat
5.1功能
用于输出CPU和磁盘I/O相关的统计信息
5.2输出结果示意图
[root@ShanWei____ ~]# iostat -x
Linux 2.6.-.el6.x_ (ShanWei____) // _x__ ( CPU)
avg-cpu: %user %nice %system %iowait %steal %idle
2. 0. 2. 5. 0. .
Device: rrqm/s wrqm/s r/s w/s rsec/s wsec/s avgrq-sz avgqu-sz await svctm %util
sda . . . . . . . 1. 3. 1. .
sdb 0. . . 2. . . . 0. 2. 1. .
5.3命令输出解释
avg-cpu段:
%user: 在用户级别运行所使用的CPU的百分比.
%nice: nice操作所使用的CPU的百分比.
%sys: 在系统级别(kernel)运行所使用CPU的百分比.
%iowait: CPU等待硬件I/O时,所占用CPU百分比.
%idle: CPU空闲时间的百分比.
Device段:
tps: 每秒钟发送到的I/O请求数
Blk_read /s: 每秒读取的block数
Blk_wrtn/s: 每秒写入的block数
Blk_read: 读入的block总数
Blk_wrtn: 写入的block总数
-x选项可以查看到如下更多信息
rrqm/s:每秒这个设备相关的读取请求有多少被Merge了
wrqm/s:每秒这个设备相关的写入请求有多少被Merge了
rsec/s:每秒读取的扇区数
wsec/:每秒写入的扇区数
avgrq-sz: 平均每次设备I/O操作的数据大小 (扇区)
avgqu-sz: 平均I/O队列长度
await:平均每次设备I/O操作的等待时间(单位是毫秒)
svctm: 平均每次设备I/O操作的服务时间 (单位是毫秒)
%util:在统计时间内所有处理IO时间,所以该参数暗示了设备的繁忙程度
5.4常用选项
iostat -d 2 6:每隔2秒,显示一次设备统计信息.总共输出6次.
-x:查看设备的使用率、响应时间
6 dstat
6.1功能
是一个全能系统信息统计工具,只能对整个系统进行监控而不能对某一个进程或某一个程序进行深入分析;监控项包括:cpu、磁盘、内存、网卡、进程、系统(彩色界面linux下面不多见啊!)
注:此命令需要自行安装(yum install dstat)
6.2命令输出示意图
[root@ShanWei____ ~]# dstat -cdlmnpy
----total-cpu-usage---- -dsk/total- ---load-avg--- ------memory-usage----- -net/total- ---procs--- ---system--
usr sys idl wai hiq siq| read writ| 1m 5m m | used buff cach free| recv send|run blk new| int csw
3 2 6 0 0| M k|5. 5. 4.|M M .5G M| 0 0 | 0 0.0 1.3| k
2 1 0 0| M k|5. 5. 4.|M M .6G M| k M| 0 6.0 0| k
1 1 0 0|k k|5. 5. 4.|M M .6G M| k M|2.0 3.0 0| k
6.3命令输出解释
前面基本都解释过了......
6.4常用选项
dstat –cdlmnpsy:cdlmnpsy这几个选项基本囊括了常用的,当然还有很多dstat –-help一下吧。
7 sar
7.1功能
System Activity Reporter系统活动情况报告,是目前 Linux 上最为全面的系统性能分析工具之一,可以从多方面对系统的活动进行报告,包括:文件的读写情况、系统调用的使用情况、磁盘I/O、CPU效率、内存使用状况、进程活动及IPC有关的活动等。
7.2命令输出示意图
[root@localhost ~]# sar -r 1
Linux 2.6.-.el6.x_ (localhost.localdomain) // _x__ (8 CPU)
:: PM kbmemfree kbmemused %memused kbbuffers kbcached kbcommit %commit
:: PM . 0.
:: PM . 0.
:: PM . 0.
:: PM . 0.
[root@localhost ~]# sar -B 1
Linux 2.6.-.el6.x_ (localhost.localdomain) // _x__ (8 CPU)
:: PM pgpgin/s pgpgout/s fault/s majflt/s pgfree/s pgscank/s pgscand/s pgsteal/s %vmeff
:: PM 0. . . 0. . 0. 0. 0. 0.
:: PM 0. 0. . 0. . 0. 0. 0. 0.
:: PM 0. 0. . 0. . 0. 0. 0. 0.
[root@localhost ~]# sar -b 1
Linux 2.6.-.el6.x_ (localhost.localdomain) // _x__ (8 CPU)
:: PM tps rtps wtps bread/s bwrtn/s
:: PM . 0. . 0. .
:: PM 0. 0. 0. 0. 0.
:: PM 7. 0. 7. 0. .
[root@localhost ~]# sar -W 1
Linux 2.6.-.el6.x_ (localhost.localdomain) // _x__ (8 CPU)
:: PM pswpin/s pswpout/s
:: PM 0. 0.
:: PM 0. 0.
:: PM 0. 0.
[root@localhost ~]# sar -d 1
Linux 2.6.-.el6.x_ (localhost.localdomain) // _x__ (8 CPU)
:: PM DEV tps rd_sec/s wr_sec/s avgrq-sz avgqu-sz await svctm %util
:: PM dev8-0 7. 0. . . 0. 0. 0. 0.
:: PM dev8- 0. 0. 0. 0. 0. 0. 0. 0.
:: PM DEV tps rd_sec/s wr_sec/s avgrq-sz avgqu-sz await svctm %util
:: PM dev8-0 . 0. . . 0. 7. 7. 7.
:: PM dev8- 0. 0. 0. 0. 0. 0. 0. 0.
7.3命令输出解释
kbmemfree:这个值和free命令中的free值基本一致,所以它不包括buffer和cache的空间.
kbmemused:这个值和free命令中的used值基本一致,所以它包括buffer和cache的空间.
%memused:这个值是kbmemused和内存总量(不包括swap)的一个百分比.
kbbuffers和kbcached:这两个值就是free命令中的buffer和cache.
kbcommit:保证当前系统所需要的内存,即为了确保不溢出而需要的内存(RAM+swap).
%commit:这个值是kbcommit与内存总量(包括swap)的一个百分比.
pgpgin/s:表示每秒从磁盘或SWAP置换到内存的字节数(KB)
pgpgout/s:表示每秒从内存置换到磁盘或SWAP的字节数(KB)
fault/s:每秒钟系统产生的缺页数,即主缺页与次缺页之和(major + minor)
majflt/s:每秒钟产生的主缺页数.
pgfree/s:每秒被放入空闲队列中的页个数
pgscank/s:每秒被kswapd扫描的页个数
pgscand/s:每秒直接被扫描的页个数
pgsteal/s:每秒钟从cache中被清除来满足内存需要的页个数
%vmeff:每秒清除的页(pgsteal)占总扫描页(pgscank+pgscand)的百分比
tps:每秒钟物理设备的 I/O传输总量
rtps:每秒钟从物理设备读入的数据总量
wtps:每秒钟向物理设备写入的数据总量
bread/s:每秒钟从物理设备读入的数据量,单位为块/s
bwrtn/s:每秒钟向物理设备写入的数据量,单位为块/s
pswpin/s:每秒系统换入的交换页面(swap page)数量
pswpout/s:每秒系统换出的交换页面(swap page)数量
7.4常用选项
sar –[u][r][B][b][q][W][d]
参数说明:
-u:CPU资源监控
-r:内存和交换空间监控
-B:内存分页监控
-b:IO和传输速率监控
-q:进程队列系统负载监控
-W:系统交换分区活动监控
-d:设备使用状况监控
8 tmpfs
8.1定义
tmpfs文件系统是一种基于内存的文件系统,挂载在/dev/shm下面。
8.2特点
动态改变大小;访问快、完全驻留在RAM中;当然系统重启就没了。
8.3使用方法
1、 linux下面POSIX标准的共享内存是基于此文件系统实现的(还有一套System V标准的共享内存实现方式);
2、 将文件创建在/dev/shm下面都将直接使用tmpfs;所以如果不需要考虑机器重启后数据的丢失,把数据放在这下面吧,释放你的磁盘压力!
3、 tmpfs的默认大小是物理内存的一半。将最大容量调到G,并且文件节点数量调到,可以通过下面的命令:
mount -o size=G -o nr_inodes= -o noatime,nodiratime -o remount /dev/shm
4、如果需要永久修改tmpfs文件系统的大小,需要修改/etc/fstab
9 crontab:
9.1功能
定时调度一些命令的执行,相当于系统级别的定时器。在/var/spool/cron/有一些以用户名命名的文件,表示的是这个用户的定时执行任务。
9.2配置方法
格式说明:
* * * * * /command path
前五个字段可以取整数值,指定何时开始工作(分钟 小时 日期 月份 星期),第六个域是字符串,到期执行的脚本、程序等
* * * 每天: 执行
0 * * 1 每周一的 : 执行
0, * * 0,2,3 每周日,周二,周三的 :和 : 执行
0- 1 * * ?霸?日从 :到7: ?案?分钟 执行
0 0 1, * 1 ?霸?日和 日和 一日的 0: 执行
4 1 * * ?霸?日的 4:分 执行
0 * * 1-6 周一到周六 : 执行
0,,,,, * * * * 每隔分 执行
*/ * * * * 每隔分 执行
* 1 * * * 从1:0到1: 每隔1分钟 执行
0 1 * * * 1: 执行
0 */1 * * * ?笆?分 每隔1小时 执行
0 * * * * ?笆?分 每隔1小时 执行
2 8-/3 * * * 8:,:,:,:,: 执行
5 1, * * 1日 和 日的 5: 执行
如下配置表示:每天3:执行这个脚本/opt/ clear_old_file.sh;
这个脚本功能是:删除/data1 /data2这两个目录下的五天之内没有访问过的文件
0 3 * * * (cd /opt/ && ./clear_old_file.sh > /dev/null &)
[root@ShanWei____ ~]# cat /opt/clear_old_file.sh
#!/bin/sh
find /data1/* -type f -atime +5 -exec rm {} ;
find /data2/* -type f -atime +5 -exec rm {} ;
exit 0
proc:待续…
/proc 文件系统是 GNU/Linux 特有的。它是一个虚拟的文件系统,此文件系统完全驻留在RAM中,因此在该目录中的所有文件都不会消耗磁盘空间。通过它能够非常简便地了解系统中的内核信息、硬件信息等;还可以通过它进行系统内核的参数的配置。许多命令实际上只是从 /proc 的文件中收集信息,然后按照它们自己的格式组织后显示出来;像前面介绍的命令基本就是这么干的。
CentOS 7下安装配置 VNC Server的方法 需要使用Linux的远程桌面服务,xmanager之前用过,感觉一般,这次尝试下VNC。我的操作系统是CentOS7一、服务端安装VNCServer#yum-yinstallvnc*vnc-server*设置密码#v
CentOS 6.5系统VNC安装配置详解 一、安装VNC默认情况下,CentOS6.4是没有安装的。检查是否安装,输入:[root@localhost~]#rpm-qvncvnc-server得到:packagevncisnotinstalled提示没有安装,那么就开始
CentOS 增加IP地址的方法 一般情况下我们可以给eth0网卡添加新的IPcd/etc/sysconfig/network-scripts/cpifcfg-eth0ifcfg-eth0:1vimifcfg-eth0:1DEVICE=eth0:1#修改网卡名称HWADDR=:::5B::7CTYPE=EthernetUUID=
标签: centos如何查看服务进程
本文链接地址:https://www.jiuchutong.com/biancheng/362141.html 转载请保留说明!友情链接: 武汉网站建设