码迷,mamicode.com
首页 > 系统相关 > 详细

linux调优工具使用

时间:2015-08-10 02:13:17      阅读:182      评论:0      收藏:0      [点我收藏+]

标签: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.001904

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调优工具使用

标签:linux调优

原文地址:http://kmzsq.blog.51cto.com/10542759/1683127

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!