标签:linux调优
系统调优概述 系统调优
1. 系统的运行状况: CPU-> MEM ->DISK*-> NETWORK -> 应用程序调优
2. 分析是否有瓶颈(依据当前应用需求)
3. 调优(把错误的调正确)
性能优化就是找到系统处理中的瓶颈以及去除这些的过程。 性能优化其实是对 OS 各子系统达到一种平衡的定义,这些子系统包括了:
CPU Memory IO Network
这些子系统之间关系是相互彼此依赖的,任何一个高负载都会导致其他子系统出现问题.
例如: 大量的网页调入请求导致内存队列的拥塞; 网卡的大吞吏量可能导致更多的 CPU 开销; 大量来自内存的磁盘写请求可能导致更多的 CPU 以及 IO 问题;
所以要对一个系统进行优化,查找瓶颈来自哪个方面是关键,虽然看似是某一个子系统出现问题,其实有 可能是别的子系统导致的.
调优就像医生看病,因此需要你对服务器所有地方都了解清楚。
1、查看 CPU 负载相关工具 uptime 命令:
[root@silence80 ~]# uptime
13:22:30 up 8 min, 4 users, load average: 0.14, 0.38, 0.25
其内容如下:
12:38:33当前时间
up 50days系统运行时间 ,说明此服务器连续运行 50 天了
1 user当前登录用户数
load average: 0.06, 0.60, 0.48
系统负载,即任务队列的平均长度。
三个数值分别为 1 分钟、5 分钟、15 分钟前到现在的平均值。
注: 负载的数字记得跟你的处理器有关。
举例:
如果服务器的 CPU 为 1 核心,则 load average 中的数字 >=3 负载过高,如果服务器的 CPU 为 4 核 心,则 load average 中的数字 >=12 负载过高。
队列数为 3 时,如图:
例:
[root@silence80 ~]# uptime
15:13:31 up 6:19, 2 users, load average: 0.15, 0.08, 0.01
1,5,15 系统平均负载
1 分钟 5 分钟 15 分钟
1 分钟的系统负载,指的是 1 分钟系统中持续运行的进程个数 理论上:单核心,1 分钟的系统平均负载不要超过 3
2、通过/proc 目录下的文件了解系统实时运行状态
[root@silence80 ~]# cat /proc/cpuinfo processor: 0
vendor_id: GenuineIntel
cpu family: 6
model: 42
model name : Intel(R) Core(TM) i7-2670QM CPU @ 2.20GHz
stepping : 7
cpu MHz: 2195.039
cache size: 6144 KB
physical id: 0
siblings : 4
core id : 0
cpu cores : 4
apicid : 0
initial apicid : 0
fpu : yes
fpu_exception: yes
cpuid level: 13
wp: yes
flags : fpu vme de pse tsc msr pae mce cx8 apic mtrr pge mca cmov pat pse36 clflush dts mmx fxsr sse sse2 ss ht syscall nx rdtscp lm constant_tsc arch_perfmon pebs bts xtopology tsc_reliable nonstop_tsc aperfmperf unfair_spinlock pni pclmulqdq ssse3 cx16 sse4_1 sse4_2 x2apic popcnt aes xsave avx hypervisor lahf_lm ida arat epb xsaveopt pln pts dts
bogomips: 4390.07
clflush size: 64
cache_alignment : 64
address sizes : 40 bits physical, 48 bits virtual
power management:
processor: 1
。。。
processor: 2
。。。
processor: 3#说明本机器支持 4 个 CPU
获取内核的命令行参数
[root@silence80 ~]# cat /proc/cmdline
roroot=UUID=ba5875b0-6c75-4c2f-a312-eb12e2a733a8rd_NO_LUKSrd_NO_LVM
LANG=en_US.UTF-8rd_NO_MDquietSYSFONT=latarcyrheb-sun16rhgb
KEYBOARDTYPE=pc KEYTABLE=us rd_NO_DM
注:/proc/cmdline 中的内容和 vim /etc/grub.conf 中的内容一样
这个文件列出字符和块设备的主设备号,以及分配到这些设备号的设备名称。
[root@silence80 ~]# cat /proc/diskstats
[root@silence80 ~]# cat /proc/diskstats相当于 (fdisk -l)
。。。
80 sda 9057 6029 579268 117444 2193 4811 56026 715330 0 66476 832739
81 sda1 584 244 4634 911 3 0 18 109 0 1000 1019
82 sda2 7967 5753 570330 114747 2190 4811 56008 715221 0 65749 829935
83 sda3 332 31 2904 745 0 0 0 0 0 744 744
查看当前系统中可以支持的文件系统类型 这个文件列出可供使用的文件系统类型,一种类型一行。虽然它们通常是编入内核的文件系统类型,但该 文件还可以包含可加载的内核模块加入的其它文件系统类型。
[root@silence80 ~]# cat /proc/filesystems (nodev 表示支持但不存在,没使用)
。。。
nodevramfs nodevhugetlbfs
iso9660#已经在使用
nodevpstore nodevmqueue
ext4#已经在使用
nodevrpc_pipefs nodevautofs
查看 raid 设备信息
#这个文件包含了由 md 设备驱动程序控制的 RAID 设备信息。
[root@silence80 ~]# cat /proc/mdstat
Personalities (个性):
unused devices: <none>
cat /proc/modules( lsmod 就是从这里读取数据的 )
查看当前内核加载了哪些动态模块:
lsmod ----> /proc/modules(lsmod)
[root@silence80 ~]# cat /proc/mounts
这个文件以/etc/mtab 文件的格式给出当前系统所安装的文件系统信息。这个文件也能反映出任何手工安 装从而在/etc/mtab 文件中没有包含的文件系统。
cat /proc/partitions#查看分区表信息
[root@silence80 ~]# cat /proc/partitions major minor #blocks name
8020971520 sda
81204800 sda1
8210240000 sda2
831024000 sda3
#查看每个进程的信息
ls /proc 进程 ID 号
[root@silence80 ~]# ls /proc/
11867230265031105acpimodules
101923612653314750asoundmounts
111907 2366 2654 3251buddyinfompt
11019132426623352busmtd
11231932240726643453cgroupsmtrr
[root@silence80 ~]# ll /proc/1/exe #查看 1 号进程运行的绝对路径
lrwxrwxrwx 1 root root 0 Nov 7 2014 /proc/1/exe -> /sbin/init
进程列表:
ps 命令:只对具体进程进行观测
ps -axu
5 个主要进程状态:
S -->睡眠
R -->正在运行或准备运行
Z--> 僵尸进程
D -->不可中断的睡眠进程
L -->(内存锁,防止交换--解决 swap 信息泄漏,锁住内存,防止交换)
s --> session header 父子/父子----> 父进程,引导进程
+ -->前台进程组 表示是一组进程,而不是一个进程
l -->进程,线程
< -->高优先级进程
N --> 低优先级进程
实战:按照实际使用内存从大到小排序显示进程列表
[root@silence80 ~]# ps -aux --sort -rss | more 内存降序排序(去掉减号就是升序)
或:
[root@silence80 ~]# ps -aux --sort -rss > a.log
[root@silence80 ~]# ps -aux --sort rss | more 内存升序排序
[root@silence80 ~]# ps -aux --sort -pcpu | more#按 cpu 降序排序
查看 -pcpu 帮助:
[root@silence80 ~]# man ps #然后搜索 pcpu ,找到下面内容
pcpucpu utilization# cpu 利用率
找出占用 CPU 时间比较多的进程=
使用 top 查看进程
top 命令:(这个命令本身就徆消耗 CPU 时间的)
[root@silence80 ~]# top
op - 21:39:26 up 1:18, 3 users, load average: 0.00, 0.07, 0.12
Tasks: 193 total,1 running, 192 sleeping,0 stopped,0 zombie
Cpu(s): 3.2%us, 1.4%sy, 0.0%ni, 95.4%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st
Mem:1164636k total,804456k used,360180k free,68964k buffers
Swap: 1023992k total,0k used, 1023992k free,420716k cached
CPU 相关参数:
Cpu(s):
95.8%us,用户态
1.1%sy,内核态
2.6%ni,优先级切换
0.0%id,CPU 空闲***
0.0%wa,等待,IO 输入输出等待
0.0%hi,硬中断
0.5%si,软中断
0.0%stCPU 偷窃时间。 如开启虚拟机会出现这种情况
排序方法: M 内存排序 P CPU 排序
<前后翻页,查看进程
>
动态查看某两个进程状态:
[root@silence80 ~]#ps -axu | grep find#找到进程 id
[root@silence80 ~]#vim a.txt
[root@silence80 ~]#ps -axu | grep a.txt#找到进程 id
[root@silence80 ~]# top -p 3987,15872
CPU 与用的 mpstat
mpstat ---> CPU 运行情况
[root@silence80 ~]# rpm -qf `which mpstat `
sysstat-9.0.4-18.el6.x86_64 #此软件包,包括徆多查看系统状态的软件包
[root@silence80 ~]# mpstat
[root@silence80 ~]# mpstat -P ALL #查看所有 CPU 运行状态
top然后数字键 1
[root@silence80 ~]# mpstat -P ALL 1 100#一秒钟刷新一次 连续刷新 100 次
3、查看 Memory 运行状态相关工具
[root@silence80 ~]# free -m
totalusedfreesharedbufferscached
Mem:1137785352067410
-/+ buffers/cache:306830
Swap:9990999
buffers #内存从磁盘读出的内容
cached #内存需要写入磁盘的内容 当物理内存不够用的时候,内核会把非活跃的数据清空。
通过/proc 文件夹,查看非活跃的内存:
/proc 文件系统下的多种文件提供的系统信息不是针对某个特定进程的,而是能够在整个系统范围的上下 文中使用。可以使用的文件随系统配置的变化而变化。
[root@silence80~]# cat /proc/meminfo MemTotal:1720320 kB MemFree:909000 kB Buffers:41500 kB
Cached:385016 kB SwapCached:0 kB
Active:347340 kB 活跃内存,指进程一直读写的内存空间
Inactive:346992 kB 非活跃内存
注:当内存不够用时,kernel 总是把不活跃的内存交换到 swap 空间。如果 inactive 内存多时,加 swap
空间可以解决问题,而 active 多,则考虑加内存。
HighTotal: 981512 kB HighFree: 318568 kB LowTotal: 738808 kB
查看内存及系统整体运行状态:
vmstat :命令是最常见的 Linux/Unix 监控工具,可以展现给定时间间隔的服务器的状态值,包括服务
器的 CPU 使用率,MEM 内存使用,VMSwap 虚拟内存交换情况,IO 读写情况。
使用 vmstat 可以看到整个机器的 CPU,内存,IO 的使用情况,而不是单单看到各个进程的 CPU 使用率
和内存使用率。 比 top 命令节省资源。
注:当机器运行比较慢时,建议大家使用 vmstat 查看运行状态,不需要使用 top,因 top 使用资源比较
多。
例:
[root@silence80 ~]# vmstat
procs -----------memory---------- ---swap-- -----io---- --system-- -----cpu-----
r bswpdfreebuff cachesisobiboincs us sy id wa st
0 00 361292 69344 420744002134042 0 1 98 1 0
如图:
每一列参数作用:
r 运行状态的进程个数 。展示了正在执行和等待 cpu 资源的任务个数。当这个值超过了 cpu 个数,就会 出现 cpu 瓶颈。
b 不可中断睡眠 正在进行 i/o 等待--阻塞状态的进程个数 进程读取外设上的数据,等待时
free剩余内存,单位是 KB buffers #内存从磁盘读出的内容 cached #内存需要写入磁盘的内容
si swapinswap 换入到内存
so swapout 内存换出到 swap换出的越多,内存越不够用
bi blockin 从硬盘往内存读。 单位是块。把磁盘中的数据读入内存
bo blockout 从内存拿出到硬盘 (周期性的有值) 写到硬盘 注:#判断是读多还是写多,是否有 i/o 瓶颈
in 系统的中断次数,cpu 调度的次数多
cs 每秒的上下文切换速度
注:如果这个数据比较大,说明有大并发的进程或线程在运行。 这种情况下,一般会用大理网络访问请求。
更多内存参以一下表格: vmstat 每个字段含义说明
类别 项目 含义 说明
Procs(进程) r 等待执行的任务数 展示了正在执行和等待 cpu 资源的任务个数。当这 个值超过了 cpu 个数,就会出现 cpu 瓶颈。
B 等待 IO 的进程数量
Memory(内存) swpd 正在使用虚拟的内存大小,单位 k
free 空闲内存大小
buff 已用的 buff 大小,对块设备 的读写进行缓冲
cache 已用的 cache 大小,文件系统 的 cache
inact非活跃内存大小,即被标明可回收的内存,区别于 free 和active 具体含义见:概念补充(当使用-a 选项时显示)
active活跃的内存大小具体含义见:概念补充(当使用-a 选项时显示)
Swap si 每秒从交换区写入内存的大小(单位:kb/s)
so 每秒从内存写到交换区的大小
IO bi 每秒读取的块数(读磁盘) 现在的 Linux 版本块的大小为 1024bytes
bo 每秒写入的块数(写磁盘)
system in 每秒中断数,包括时钟中断 这两个值越大,会看到由内核消耗的 cpu 时间会越多
cs 每秒上下文切换数
CPU(以百分比表示) Us 用户进程执行消耗 cpu 时间(user time) us 的值比较高时,说明用户进程消耗的 cpu 时间多,但是如果长期超过 50%的使用,那么我们就该 考虑优化程序算法或其他措施了
Sy 系统进程消耗 cpu 时间(system time) sys 的值过高时,说明系统内核消耗的 cpu 资源多,这个不是良性的表现,我们应该检查原因。
Id 空闲时间(包括 IO 等待时间)
wa 等待 IO 时间 Wa 过高时,说明 io 等待比较严重,这可能是由于 磁盘大量随机访问造成的,也有可能是磁盘的带宽 出现瓶颈。
4、I/O 调优相关查看工具
查看系统块大小
[root@silence80 ~]# tune2fs -l /dev/sda1 | grep size
Filesystem features:has_journal ext_attr resize_inode dir_index filetype needs_recovery extent flex_bg sparse_super huge_file uninit_bg dir_nlink extra_isize
Block size:1024 # 为 1 个字节 。 一个扇区 512 字节。
通过 iostat 命令查看 IO 是否存大瓶颈?
iostat 可以显示 CPU 和 I/O 系统的负载情况及每个磁盘分区的读写状态信息.
从而知道我们系统 IO 是否存在问题。
安装 iostat:
[root@silence80 ~]# rpm -qf `which iostat `
sysstat-9.0.4-18.el6.x86_64
[root@silence80 ~]# rpm -ivh /mnt/Packages/sysstat-9.0.4-18.el6.x86_64.rpm
直接执行 iostat 可以显示下面内容: [root@silence80 ~]# iostat
Linux 2.6.32-220.el6.x86_64 (silence80.cn)08/04/2015_x86_64_ (4 CPU)
avg-cpu: %user%nice %system %iowait %steal%idle
0.790.001.502.030.0095.68
Device: tpsBlk_read/sBlk_wrtn/sBlk_readBlk_wrtn
scd0 0.77 4.40 0.0019040
sda 13.69956.8548.8141390621114
注释:
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 数,这里的 block,指的是扇区数,一个扇区大小:512B Blk_wrtn/s: 每秒写入的 block 数. 这里的 block,指的是扇区数,一个扇区大小:512B Blk_read:读入的 block 总数. 这里的 block,指的是扇区数,一个扇区大小:512B Blk_wrtn: 写入的 block 总数. 这里的 block,指的是扇区数,一个扇区大小:512B
iostat 各个参数说明:
-c 仅显示 CPU 统计信息.不-d 选项互斥.
-d 仅显示磁盘统计信息.不-c 选项互斥.
iostat 各个参数说明:
-c 仅显示 CPU 统计信息.不-d 选项互斥.
-d 仅显示磁盘统计信息.不-c 选项互斥.
例:[root@silence80 ~]# iostat -d
Linux 2.6.32-220.el6.x86_64 (silence80.cn)08/04/2015_x86_64_ (4 CPU)
Device:tps Blk_read/sBlk_wrtn/sBlk_readBlk_wrtn
scd00.532.99 0.00 1904 0
sda 9.31649.44 33.29413906 21218
-k 以 K 为单位显示每秒的磁盘请求数,默认单位块.
-p device | ALL 不-x 选项互斥,用于显示块设备及系统分区的统计信息.
例:显示每个分区读写速度
[root@silence80 ~]# iostat -p sda -dk
Linux 2.6.32-220.el6.x86_64 (silence80.cn)08/04/2015_x86_64_ (4 CPU)
Device: tps kB_read/s kB_wrtn/s kB_read kB_wrtn
sda 7.25 252.33 12.99 20695310657
sda1 0.63 2.43 0.01 1996 9
sda2 5.99 247.27 12.98 20280510648
sda3 0.43 1.77 0.00 1452 0
注:
每列含意:
kB_read/s 每秒从驱动器读入的数据量,单位为 K. kB_wrtn/s每秒吐驱动器写入的数据量,单位为 K. kB_read读入的数据总量,单位为 K.
kB_wrtn写入的数据总量,单位为 K.
-x输出扩展信息 显示输出扩展信息
[root@silence80 ~]# iostat -x -d -k
Linux 2.6.32-220.el6.x86_64 (silence80.cn)08/04/2015_x86_64_ (4 CPU)
Device: rrqm/s wrqm/sr/sw/s rkB/swkB/s avgrq-sz avgqu-sz await svctm %util
scd0 0.10 0.000.310.000.890.00 5.68 0.00 2.21 2.21 0.07
sda 5.68 1.744.800.79 193.6010.11 72.87 0.35 63.34 5.67 3.17
如图:
rrqm/s将读入请求合并后,每秒发送到设备的读入请求数.
wrqm/s将写入请求合并后,每秒发送到设备的写入请求数.
r/s每秒发送到设备的读入请求数.
w/s每秒发送到设备的写入请求数. rsec/s 每秒从设备读入的扇区数. wsec/s 每秒吐设备写入的扇区数.
rkB/s每秒从设备读入的数据量,单位为 K. wkB/s每秒吐设备写入的数据量,单位为 K.
avgrq-sz 发送到设备的请求的平均大小,单位是扇区. avgqu-sz 发送到设备的请求的平均队列长度.
awaitI/O 请求平均执行时间.包括发送请求和执行的时间.单位是毫秒. svctm发送到设备的 I/O 请求的平均执行时间.单位是毫秒.
%util在 I/O 请求发送到设备期间,占用 CPU 时间的百分比.用于显示设备的带宽利用率.
当这个值接近 100%时,表示设备带宽已经占满. I/O 不够使用。
%util 含意如图:
查看 iostat 其它用法:
# iostat -d -k 2
每隔 2 秒,显示一次设备统计信息. 以 k 为单位
# iostat -d 2 6
每隔 2 秒,显示一次设备统计信息.总共输出 6 次.
# iostat -x hda hdb 2 6
每隔 2 秒显示一次 hda,hdb 两个设备的扩展统计信息,共输出 6 次.
# iostat -p sda 2 6
每隔 2 秒显示一次 sda 及上面所有分区的统计信息,共输出 6 次.
问题:查看哪个进程使用磁盘读写最多? iotop 命令,查看哪个进程使用磁盘读写最多 实例:查看系统中使用 io 最多的进程
参数:
-o, –only 只显示在读写硬盘的程序
-d SEC, –delay=SEC 设定显示时间间隔
退出,按 q 或 ctrl+C
[root@silence80 ~]# iotop -o -d 1#显示正在使用磁盘的进程
例 1:
[root@silence80 ~]# iotop#不加参数,动态查看所有进程使用磁盘的状态
Total DISK READ: 0.00 B/s | Total DISK WRITE: 0.00 B/s
TID PRIO USERDISK READ DISK WRITE SWAPINIO>COMMAND
2560 be/4 root0.00 B/s0.00 B/s 0.00 % 0.00 % gconfd-2
1 be/4 root0.00 B/s0.00 B/s0.00 %0.00 % init
2 be/4 root0.00 B/s0.00 B/s0.00 %0.00 % [kthreadd]
3 rt/4 root0.00 B/s0.00 B/s0.00 %0.00 % [migration/0]
4 be/4 root0.00 B/s0.00 B/s0.00 %0.00 % [ksoftirqd/0]
5 rt/4 root0.00 B/s0.00 B/s0.00 %0.00 % [migration/0]
例 2:
[root@silence80 ~]# iotop -o -d 1#显示正在使用磁盘的进程
Total DISK READ: 1458.61 K/s | Total DISK WRITE: 0.00 B/s
TID PRIO USERDISK READ DISK WRITE SWAPINIO>COMMAND
2654 be/4 root1458.61 K/s0.00 B/s 0.00 % 60.62 % find /
1 be/4 root0.00 B/s0.00 B/s 0.00 % 0.00 % init
在另一个终端执行:
[root@silence80 ~]# find /
查看结果:
查看 Network 运行状态相关工具
[root@silence80 ~]# netstat -antup
使用 sar 命令记录系统一段时间的运行状态
[root@silence80 ~]# rpm -ivh /mnt/Packages/sysstat-9.0.4-18.el6.x86_64.rpm
sysstat 工具包------可以把检查到的信息保存下来!存在/var/log/sa 目录下,文件名为 sa 当前日期
sar 默认显示每10分钟统计一次状态信息 (从装 sysstat 包开始)
sar 命令行的常用格式:
sar [options] [-A] [-o file] t [n]
在命令行中,n 和 t 两个参数组合起来定义采样间隔和次数,t 为采样间隔,是必须有的参数,n 为采样
次数,是可选的,默认值是 1,-o file 表示将命令结果以二进制格式存放在文件中,file 在此处不是关键 字,是文件名。options 为命令行选项,sar 命令的选项很多,
下面只列出常用选项:
-A:所有报告的总和。
-n:网络接口的情况。
-u:CPU 利用率
-v:进程、I 节点、文件和锁表状态。
-d:硬盘使用报告。
-r:没有使用的内存页面和硬盘块。
-g:串口 I/O 的情况。
-b:缓冲区使用情况。
-a:文件读写情况。
-c:系统调用情况。
-R:进程的活动情况。
-y:终端设备活动情况。
-w:系统交换活动。
-o 文件名:打印到屏幕并将采样结果以二进制形式存入当前目录下的文件中。
-f 文件名:查看之前保存的二进制文件。
-d 显示磁盘
-d 1 100#每 1 秒统计一次磁盘信息,统计 100 次。
-c 每秒创建进程的个数
-i 1 10 指定时间间隔
-P 查看 cpu
-r 查看内存
-w 每秒上下文切换次数
-o /cpu.sar 保存并显示
-f cpu.sar 读取
例一:使用命令行 sar -u t n
例如,每 2 秒采样一次,连续采样 5 次,观察 CPU 的使用情况,并将采样结果以二进制形式存入当前目 录下的文件 cpu.sar 中,需键入如下命令:
[root@silence80 ~]# sar -u 2 5 -o cpu.sar #屏幕显示以一下内容,同时内容也会写到 cpu.sar 中
Linux 2.6.32-220.el6.x86_64 (silence80.cn)08/04/2015_x86_64_ (4 CPU)
10:44:45 PMCPU%user%nice%system%iowait%steal%idle
10:44:47 PMall0.140.002.340.140.0097.39
10:44:49 PMall1.080.001.330.360.0097.23
10:44:51 PMall2.540.002.160.000.0095.29
10:44:53 PMall0.250.001.520.130.0098.10
10:44:55 PMall1.520.001.650.280.0096.56
Average:all1.110.001.790.180.0096.92
在显示内容包括:
%usr:CPU 处在用户模式下的时间百分比。
%sys:CPU 处在系统模式下的时间百分比。
%wio:CPU 等待输入输出完成时间的百分比。
%idle:CPU 空闲时间百分比。
在所有的显示中,我们应主要注意%wio 和%idle,%wio 的值过高,表示硬盘存在 I/O 瓶颈,%idle 值 高,表示 CPU 较空闲,如果%idle 值高但系统响应慢时,有可能是 CPU 等待分配内存,此时应加大内存 容量。%idle 值如果持续低于 10,那么系统的 CPU 处理能力相对较低,表明系统中最需要解决的资源是 CPU。
实例 2:查看二进制文件 cpu.sar 中的内容
[root@silence80 ~]# sar -u -f cpu.sar
Linux 2.6.32-220.el6.x86_64 (silence80.cn) 08/04/2015 _x86_64_ (4 CPU)
08:21:43 PMCPU%user%nice%system%iowait%steal%idle
08:21:45 PMall0.000.000.722.030.0097.25
08:21:47 PMall0.000.000.600.000.0099.40
08:21:49 PMall0.130.000.750.000.0099.12
08:21:51 PMall0.000.000.750.000.0099.25
08:21:53 PMall0.120.000.750.000.0099.13
注:sar 命令即可以实时采样,又可以对以往的采样结果进行查询。
查看 sar 的计划任务:
[root@silence80 ~]#vim /etc/cron.d/sysstat
# Run system activity accounting tool every 10 minutes
*/10 * * * * root /usr/lib64/sa/sa1 -S DISK 1 1 #关于磁盘
# 0 * * * * root /usr/lib64/sa/sa1 -S DISK 600 6 &
# Generate a daily summary of process accounting at 23:53
53 23 * * * root /usr/lib64/sa/sa2 -A# -A:所有报告的总和。 生成的日志位置:
# ls /var/log/sa
读取日志:
[root@silence80 ~]# ls /var/log/sa#只要安装 sar 后就会定期收集系统信息
sa04 sa07 sa18
-n:网络接口的情况。
[root@silence80 ~]# sar -n DEV -f /var/log/sa/sa04 #查看网络信息
扩展:
# sar -r -f /var/log/sa/sa27
# sar -b -f /var/log/sa/sa27
# sar -f /var/log/sa/sa27
动态查看:
sar 1#默认显示 CPU 状态,1 秒显示一次
sar 1 10
sar -P 0 1 10
sar 最大特点是可以监控所有状态
sar -r 1 查看内存
sar -n ALL 查看所有
sar -b 1 10 sar -I irq#
sar -I ALL 1 0
sar -r -f /tmp/file-n-r-b-m sar -s 15:00:00 -e 15:30:00
sar -s 15:00:00 -e 15:30:20 -f /var/log/sa/sa01#读取一个时间段的监控信息
sar -r -s 15:00:00 -e 15:30:20 -f /var/log/sa/sa01
本文出自 “枯木知深秋” 博客,请务必保留此出处http://kmzsq.blog.51cto.com/10542759/1683127
标签:linux调优
原文地址:http://kmzsq.blog.51cto.com/10542759/1683127