当前位置: 首页 > news >正文

绿色家园网站怎么做模板网站可以做seo吗

绿色家园网站怎么做,模板网站可以做seo吗,珠宝网站模版,html5网站设计十一、 资源监控 1 、 free 内存监控 语 法#xff1a; free [-bkmotV][-s 间隔秒数 ] 补充说明#xff1a; free 指令会显示内存的使用情况#xff0c;包括实体内存#xff0c;虚拟的交换文件内存#xff0c;共享内存区段#xff0c;以 及系统核心使用的… 十一、 资源监控 1 、 free 内存监控 语 法 free [-bkmotV][-s 间隔秒数 ] 补充说明 free 指令会显示内存的使用情况包括实体内存虚拟的交换文件内存共享内存区段以 及系统核心使用的缓冲区等。 参 数 -b 以 Byte 为单位显示内存使用情况。 -k 以 KB 为单位显示内存使用情况。 -m 以 MB 为单位显示内存使用情况。 -o 不显示缓冲区调节列。 -s 间隔秒数 持续观察内存使用状况。 -t 显示内存总和列。 -V 显示版本信息。 Mem表示物理内存统计 -/ buffers/cached表示物理内存的缓存统计 Swap表示硬盘上交换分区的使用情况 第 1 行 Mem total表示物理内存总量。 used表示总计分配给缓存包含 buffers 与 cache 使用的数量但其中可能部分缓存并未实际使 用。 free未被分配的内存。 shared共享内存一般系统不会用到这里也不讨论。 buffers系统分配但未被使用的 buffers 数量。 cached系统分配但未被使用的 cache 数量。buffer 与 cache 的区别见后面。 total used free 第 2 行 -/ buffers/cached used也就是第一行中的 used – buffers-cached 也是实际使用的内 存总量。 free未被使用的 buffers 与 cache 和未被分配的内存之和这就是系统当前实际可用内存。 free 2 buffers1 cached1 free1 //free2 为第二行、buffers1 等为第一行 A buffer is something that has yet to be “written” to disk. A cache is something that has been “read” from the disk and stored for later use 第 3 行 第三行所指的是从应用程序角度 来看对于应用程序来说buffers/cached 是等于可用的因为 buffer/cached 是为了提高文件读取 的性能当应用程序需在用到内存的时候buffer/cached 会很快地被回收。 所以从应用程序的角度来说可用内存系统 free memorybufferscached. 接下来解释什么时候内存会被交换以及按什么方交换。 当可用内存少于额定值的时候就会开会进行交换如何看额定值 RHEL4.0 #cat /proc/meminfo 交换将通过三个途径来减少系统中使用的物理页面的个数 1. 减少缓冲与页面 cache 的大小 2. 将系统 V 类型的内存页面交换出去 3. 换出或者丢弃页面。 (Application 占用的内存页也就是物理内存不足。 事实上少量地使用 swap 是不是影响到系统性能的。 下面是 buffers 与 cached 的区别 buffers 是指用来给块设备做的缓冲大小他只记录文件系统的 metadata 以及 tracking in-flight pages. cached 是用来给文件做缓冲。 那就是说buffers 是用来存储目录里面有什么内容权限等等。 而 cached 直接用来记忆我们打开的文件 如果你想知道他是不是真的生效你可以试一下先后执行 两次命令#man X ,你就可以明显的感觉到第二次的开打的速度快很多。 实验在一台没有什么应用的机器上做会看得比较明显。记得实验只能做一次如果想多做请换一个文 件名。 #free #man X #free #man X #free 你可以先后比较一下 free 后显示 buffers 的大小。 另一个实验 #free #ls /dev #free 你比较一下两个的大小当然这个 buffers 随时都在增加但你有 ls 过的话增加的速度会变得快 这个就是 buffers/chached 的区别。 因为 Linux 将你暂时不使用的内存作为文件和数据缓存以提高系统性能当你需要这些内存时 系统会自动释放不像 windows 那样即使你有很多空闲内存,他也要访问一下磁盘中的 pagefiles 使用 free 命令 将 used 的值减去 buffer 和 cache 的值就是你当前真实内存使用 ————– 对操作系统 来讲是 Mem 的参数.buffers/cached 都是属于被使用,所以它认为 free 只有 16936 . 对应用程序 来讲是(-/ buffers/cach).buffers/cached 是等同可用的因为 buffer/cached 是为 了 提高 程序执行的性能 当程序使用内存时buffer/cached 会很快地被使用。 所以,以应用来看看, 以(-/ buffers/cache)的 free 和 used 为主.所以我们看这个就好了.另外告诉大家 一些常识.Linux 为了提高磁盘和内存存取效率, Linux 做了很多精心的设计, 除了对 dentry 进行缓存(用于 VFS,加速 文件路径名到 inode 的转换), 还采取了两种主要 Cache 方式Buffer Cache 和 Page Cache。 前者针 对磁盘块的读写后者针对文件 inode 的读写。这些 Cache 能有效缩短了 I/O 系统调用(比如 read,write,getdents)的时间。 记住内存是拿来用的,不是拿来看的. 不象 windows,无论你的真实物 理内存有多少,他都要拿硬盘交换 文件来读.这也就是 windows 为什么常常提示虚拟空间不足的原因. 你们想想,多无聊,在内存还有大部分 的时候,拿出一部分硬盘空间来充当内存.硬盘怎么会快过内存. 所以我们看 linux,只要不用 swap 的交换 空间,就不用担心自己的内存太少.如果常常 swap 用很多,可 能你就要考虑加物理内存了.这也是 linux 看 内存是否够用的标准哦 . [rootscs-2 tmp]# free total used free shared buffers cached Mem: 3266180 3250004 16176 0 110652 2668236 -/ buffers/cache: 471116 2795064 Swap: 2048276 80160 1968116 下面是对这些数值的解释 total: 总计物理内存的大小。 used: 已使用多大。 free: 可用有多少。 Shared: 多个进程共享的内存总额。 Buffers/cached: 磁盘缓存的大小。 第三行 (-/ buffers/cached): used: 已使用多大。 free: 可用有多少。 第四行就不多解释了。 区别第二行 (mem) 的 used/free 与第三行 (-/ buffers/cache) used/free 的区别。 这两个的区别在于使用 的角度来看第一行是从 OS 的角度来看因为对于 OS buffers/cached 都是属于被使用所以他的可 用内存是 16176KB, 已用内存是 3250004KB, 其中包括内核 OS 使用 Application(X, oracle,etc) 使用的 bufferscached. 第三行所指的是从应用程序角度来看对于应用程序来说 buffers/cached 是等于可用的因为 buffer/cached 是为了提高文件读取的性能当应用程序需在用到内存的时候 buffer/cached 会很快地被 回收。 所以从应用程序的角度来说可用内存 系统 free memorybufferscached 。 如上例 2795064161761106522668236 接下来解释什么时候内存会被交换以及按什么方交换。 当可用内存少于额定值的时候就会开会进 行交换。 如何看额定值 cat /proc/meminfo [rootscs-2 tmp]# cat /proc/meminfo MemTotal: 3266180 kB MemFree: 17456 kB Buffers: 111328 kB Cached: 2664024 kB SwapCached: 0 kB Active: 467236 kB Inactive: 2644928 kB HighTotal: 0 kB HighFree: 0 kB LowTotal: 3266180 kB LowFree: 17456 kB SwapTotal: 2048276 kB SwapFree: 1968116 kB Dirty: 8 kB Writeback: 0 kB Mapped: 345360 kB Slab: 112344 kB Committed_AS: 535292 kB PageTables: 2340 kB VmallocTotal: 536870911 kB VmallocUsed: 272696 kB VmallocChunk: 536598175 kB HugePages_Total: 0 HugePages_Free: 0 Hugepagesize: 2048 kB 用 free -m 查看的结果 [rootscs-2 tmp]# free -m total         used         free         shared         buffers         cached Mem:         3189         3173         16         0         107         2605 -/ buffers/cache:         460         2729 Swap:         2000        78         1921 查看 /proc/kcore 文件的大小内存镜像 [rootscs-2 tmp]# ll -h /proc/kcore -r-------- 1 root root 4.1G Jun 12 12:04 /proc/kcore 备注 占用内存的测量 测量一个进程占用了多少内存 linux 为我们提供了一个很方便的方法 /proc 目录为我们提供了所有的 信息实际上 top 等工具也通过这里来获取相应的信息。 /proc/meminfo 机器的内存使用信息 /proc/pid/maps pid 为进程号显示当前进程所占用的虚拟地址。 /proc/pid/statm 进程所占用的内存 [rootlocalhost ~]# cat /proc/self/statm 654 57 44 0 0 334 0 输出解释 CPU 以及 CPU0 。。。的每行的每个参数意思以第一行为例为 参数 解释 /proc//status Size (pages) 任务虚拟地址空间的大小 VmSize/4 Resident(pages) 应用程序正在使用的物理内存的大小 VmRSS/4 Shared(pages) 共享页数 0 Trs(pages) 程序所拥有的可执行虚拟内存的大小 VmExe/4 Lrs(pages) 被映像到任务的虚拟内存空间的库的大小 VmLib/4 Drs(pages) 程序数据段和用户态的栈的大小 VmData VmStk 4 dt(pages) 04 查看机器可用内存 /proc/28248/free total used free shared buffers cached Mem: 1023788 926400 97388 0 134668 503688 -/ buffers/cache: 288044 735744 Swap: 1959920 89608 1870312 我们通过 free 命令查看机器空闲内存时会发现 free 的值很小。这主要是因为在 linux 中有这么一种 思想内存不用白不用因此它尽可能的 cache 和 buffer 一些数据以方便下次使用。但实际上这些内 存也是可以立刻拿来使用的。 所以 空闲内存 freebufferscachedtotal-used 2 、 vmstat 很显然从名字中我们就可以知道 vmstat 是一个查看虚拟内存 Virtual Memory 使用状况的工具但 是怎样通过 vmstat 来发现系统中的瓶颈呢在回答这个问题前还是让我们回顾一下 Linux 中关于虚拟 内存相关内容。 2.1 、虚拟内存运行原理 在系统中运行的每个进程都需要使用到内存但不是每个进程都需要每时每刻使用系统分配的内存 空间。当系统运行所需内存超过实际的物理内存内核会释放某些进程所占用但未使用的部分或所有物 理内存将这部分资料存储在磁盘上直到进程下一次调用并将释放出的内存提供给有需要的进程使用。 在 Linux 内存管理中主要是通过“调页 Paging ”和“交换 Swapping ”来完成上述的内存调度。调页算 法是将内存中最近不常使用的页面换到磁盘上把活动页面保留在内存中供进程使用。交换技术是将整 个进程而不是部分页面全部交换到磁盘上。 分页 (Page) 写入磁盘的过程被称作 Page-Out 分页 (Page) 从磁盘重新回到内存的过程被称作 Page-In 。当 内核需要一个分页时但发现此分页不在物理内存中 ( 因为已经被 Page-Out 了 ) 此时就发生了分页错误 Page Fault 。 当系统内核发现可运行内存变少时就会通过 Page-Out 来释放一部分物理内存。经管 Page-Out 不是经 常发生但是如果 Page-out 频繁不断的发生直到当内核管理分页的时间超过运行程式的时间时系 统效能会急剧下降。这时的系统已经运行非常慢或进入暂停状态这种状态亦被称作 thrashing( 颠簸 ) 。 2.2 、使用 vmstat 1. 用法 vmstat [-a] [-n] [-S unit] [delay [ count]] vmstat [-s] [-n] [-S unit] vmstat [-m] [-n] [delay [ count]] vmstat [-d] [-n] [delay [ count]] vmstat [-p disk partition] [-n] [delay [ count]] vmstat [-f] vmstat [-V] -a 显示活跃和非活跃内存 -f 显示从系统启动至今的 fork 数量 。 -m 显示 slabinfo -n 只在开始时显示一次各字段名称。 -s 显示内存相关统计信息及多种系统活动数量。 delay 刷新时间间隔。如果不指定只显示一条结果。 count 刷新次数。如果不指定刷新次数但指定了刷新时间间隔这时刷新次数为无穷。 -d 显示磁盘相关统计信息。 -p 显示指定磁盘分区统计信息 -S 使用指定单位显示。参数有 k 、 K 、 m 、 M 分别代表 1000 、 1024 、 1000000 、 1048576 字节 byte 。 默认单位为 K 1024 bytes -V 显示 vmstat 版本信息。 2.3 、实例 例子 1 每 2 秒输出一条结果 字段说明 Procs 进程 r: 运行的和等待 (CPU 时间片 ) 运行的进程数这个值也可以判断是否需要增加 CPU( 长期大于 1) b: 等待 IO 的进程数量处于不可中断状态的进程数常见的情况是由 IO 引起的 Memory 内存 swpd: 使用虚拟内存大小切换到交换内存上的内存 ( 默认以 KB 为单位 ) 如果 swpd 的值不为 0 或者还比较大比如超过 100M 了但是 si, so 的值长期为 0 这种情况我 们可以不用担心不会影响系统性能。 free: 空闲的物理内存 buff: 用作缓冲的内存大小 cache: 用作缓存的内存大小文件系统的 cache 如果 cache 的值大的时候说明 cache 住的文件数 多如果频繁访问到的文件都能被 cache 住那么磁盘的读 IO bi 会非常小 Swap si: 每秒从交换区写到内存的大小交换内存使用由磁盘调入内存 so: 每秒写入交换区的内存大小交换内存使用由内存调入磁盘 内存够用的时候这 2 个值都是 0 如果这 2 个值长期大于 0 时系统性能会受到影响。磁盘 IO 和 CPU 资源都会被消耗。 常有人看到空闲内存 (free) 很少或接近于 0 时就认为内存不够用了实际上不能光看这一点的还 要结合 si,so 如果 free 很少但是 si,so 也很少 ( 大多时候是 0) 那么不用担心系统性能这时不会受 到影响的。 IO 现在的 Linux 版本块的大小为 1024bytes bi: 每秒读取的块数从块设备读入的数据总量 ( 读磁盘 ) (KB/s) bo: 每秒写入的块数写入到块设备的数据总理 ( 写磁盘 ) (KB/s) 随机磁盘读写的时候这 2 个 值越大如超出 1M 能看到 CPU 在 IO 等待的值也会越大 system in: 每秒中断数包括时钟中断。 cs: 每秒上下文切换数。 上面这 2 个值越大会看到由内核消耗的 CPU 时间会越多 CPU 以百分比表示 us: 用户进程消耗的 CPU 时间百分比 us 的值比较高时说明用户进程消耗的 CPU 时间多但是如 果长期超过 50% 的使用那么我们就该考虑优化程序算法或者进行加速了 sy: 内核进程消耗的 CPU 时间百分比 sy 的值高时说明系统内核消耗的 CPU 资源多这并不是良 性的表现我们应该检查原因。 id: CPU 处在空闲状态时间百分比 ( 包括 IO 等待时间 ) wa: IO 等待消耗的 CPU 时间百分比 wa 的值高时说明 IO 等待比较严重这可能是由于磁盘大量 作随机访问造成也有可能是磁盘的带宽出现瓶颈 ( 块操作 ) 。 例子 2 显示活跃和非活跃内存 使用 -a 选项显示活跃和非活跃内存时所显示的内容除增加 inact 和 active 外其他显示内容与例子 1 相同。 字段说明 Memory 内存 inact: 非活跃内存大小当使用 -a 选项时显示 active: 活跃的内存大小当使用 -a 选项时显示 注如果 r 经常大于 4 且 id 经常少于 40 表示 cpu 的负荷很重如果 bi bo 长期不等于 0 表示内 存不足如果 disk 经常不等于 0 且在 b 中的队列大于 3 表示 io 性能不好。 CPU 问题现象 1.) 如果在 processes 中运行的序列 (process r) 是连续的大于在系统中的 CPU 的个数表示系统现在运行比较 慢 , 有多数的进程等待 CPU. 2.) 如果 r 的输出数大于系统中可用 CPU 个数的 4 倍的话 , 则系统面临着 CPU 短缺的问题 , 或者是 CPU 的速 率过低 , 系统中有多数的进程在等待 CPU, 造成系统中进程运行过慢 . 3.) 如果空闲时间 (cpu id) 持续为 0 并且系统时间 (cpu sy) 是用户时间的两倍 (cpu us) 系统则面临着 CPU 资源 的短缺 . 解决办法 : 当发生以上问题的时候请先调整应用程序对 CPU 的占用情况 . 使得应用程序能够更有效的使用 CPU. 同 时可以考虑增加更多的 CPU. 关于 CPU 的使用情况还可以结合 mpstat, ps aux top prstat – a 等 等一些相应的命令来综合考虑关于具体的 CPU 的使用情况 , 和那些进程在占用大量的 CPU 时间 . 一般情 况下应用程序的问题会比较大一些 . 比如一些 SQL 语句不合理等等都会造成这样的现象 . 内存问题现象 : 内存的瓶颈是由 scan rate (sr) 来决定的 .scan rate 是通过每秒的始终算法来进行页扫描的 . 如果 scan rate(sr) 连续的大于每秒 200 页则表示可能存在内存缺陷 . 同样的如果 page 项中的 pi 和 po 这两栏表示每 秒页面的调入的页数和每秒调出的页数 . 如果该值经常为非零值 , 也有可能存在内存的瓶颈 , 当然 , 如果个 别的时候不为 0 的话 , 属于正常的页面调度这个是虚拟内存的主要原理 . 解决办法 : 1. 调节 applications servers 使得对内存和 cache 的使用更加有效 . 2. 增加系统的内存 . 3. Implement priority paging in s in pre solaris 8 versions by adding line set priority paging1 in /etc/system. Remove this line if upgrading from Solaris 7 to 8 retaining old /etc/system file. 关于内存的使用情况还可以结 ps aux top prstat – a 等等一些相应的命令来综合考虑关于具体的内 存的使用情况 , 和那些进程在占用大量的内存 . 一般情况下如果内存的占用率比较高 , 但是 ,CPU 的占用 很低的时候 , 可以考虑是有很多的应用程序占用了内存没有释放 , 但是 , 并没有占用 CPU 时间 , 可以考虑 应用程序 , 对于未占用 CPU 时间和一些后台的程序 , 释放内存的占用 4.4 、案例 案例学习 1 在这个例子中 , 这个系统被充分利用 # vmstat 1 procs                 memory         swap         io         system         cpu r b swpd free buff cache si so bi bo in cs us sy wa id 3 0 206564 15092 80336 176080 0 0 0 0 718 26 81 19 0 0 2 0 206564 14772 80336 176120 0 0 0 0 758 23 96 4 0 0 1 0 206564 14208 80336 176136 0 0 0 0 820 20 96 4 0 0 1 0 206956 13884 79180 175964 0 412 0 2680 1008 80 93 7 0 0 2 0 207348 14448 78800 175576 0 412 0 412 763 70 84 16 0 0 2 0 207348 15756 78800 175424 0 0 0 0 874 25 89 11 0 0 1 0 207348 16368 78800 175596 0 0 0 0 940 24 86 14 0 0 1 0 207348 16600 78800 175604 0 0 0 0 929 27 95 3 0 2 3 0 207348 16976 78548 175876 0 0 0 2508 969 35 93 7 0 0 4 0 207348 16216 78548 175704 0 0 0 0 874 36 93 6 0 1 4 0 207348 16424 78548 175776 0 0 0 0 850 26 77 23 0 0 2 0 207348 17496 78556 175840 0 0 0 0 736 23 83 17 0 0 0 0 207348 17680 78556 175868 0 0 0 0 861 21 91 8 0 1 根据观察值 , 我们可以得到以下结论 1. 有大量的中断 (in) 和较少的上下文切换 (cs). 这意味着一个单一的进程在产生对硬件设备的请求 . 2. 进一步显示某单个应用 ,user time(us) 经常在 85% 或者更多 . 考虑到较少的上下文切换 , 这个应用应该 还在处理器中被处理 . 3. 运行队列还在可接受的性能范围内 , 其中有 2 个地方 , 是超出了允许限制 . 2 在这个例子中 , 内核调度中的上下文切换处于饱和 # vmstat 1 procs         memory         swap         io         system         cpu r b swpd free buff cache si so bi bo in cs us sy wa id 2 1 207740 98476 81344 180972 0 0 2496 0 900 2883 4 12 57 27 0 1 207740 96448 83304 180984 0 0 1968 328 810 2559 8 9 83 0 0 1 207740 94404 85348 180984 0 0 2044 0 829 2879 9 6 78 7 0 1 207740 92576 87176 180984 0 0 1828 0 689 2088 3 9 78 10 2 0 207740 91300 88452 180984 0 0 1276 0 565 2182 7 6 83 4 3 1 207740 90124 89628 180984 0 0 1176 0 551 2219 2 7 91 0 4 2 207740 89240 90512 180984 0 0 880 520 443 907 22 10 67 0 5 3 207740 88056 91680 180984 0 0 1168 0 628 1248 12 11 77 0 4 2 207740 86852 92880 180984 0 0 1200 0 654 1505 6 7 87 0 6 1 207740 85736 93996 180984 0 0 1116 0 526 1512 5 10 85 0 0 1 207740 84844 94888 180984 0 0 892 0 438 1556 6 4 90 0 根据观察值 , 我们可以得到以下结论 1. 上下文切换数目高于中断数目 , 说明 kernel 中相当数量的时间都开销在上下文切换线程 . 2. 大量的上下文切换将导致 CPU 利用率分类不均衡 . 很明显实际上等待 io 请求的百分比 (wa) 非常高 , 以及 user time 百分比非常低 (us). 3. 因为 CPU 都阻塞在 IO 请求上 , 所以运行队列里也有相当数目的可运行状态线程在等待执行 . 3 、 iostat 用途报告中央处理器 CPU 统计信息和整个系统、适配器、 tty 设备、磁盘和 CD-ROM 的输入 输出统计信息。 语法 iostat [ -c | -d ] [ -k ] [ -t | -m ] [ -V ] [ -x [ device ] ] [ interval [ count ] ] 描述 iostat 命令用来监视系统输入输出设备负载这通过观察与它们的平均传送速率相关的物 理磁盘的活动时间来实现。 iostat 命令生成的报告可以用来更改系统配置来更好地平衡物理磁盘和适配 器之间的输入输出负载。 参数 -c 为汇报 CPU 的使用情况 -d 为汇报磁盘的使用情况 -k 表示每秒按 kilobytes 字节显示数据 -m 表示每秒按 M 字节显示数据 -t 为打印汇报的时间 -v 表示打印出版本信息和用法 -x device 指定 要统计的设备名称默认为所有的设备 interval 指每次统计间隔的时间 count 指按照这个时间间隔统 计的次数。 iostat 结果解析 rrqm/s: 每秒进行 merge 的读操作数目。即 delta(rmerge)/s wrqm/s: 每秒进行 merge 的写操作数目。即 delta(wmerge)/s r/s: 每秒完成的读 I/O 设备次数。即 delta(rio)/s w/s: 每秒完成的写 I/O 设备次数。即 delta(wio)/s rsec/s: 每秒读扇区数。即 delta(rsect)/s wsec/s: 每秒写扇区数。即 delta(wsect)/s rkB/s: 每秒读 K 字节数。是 rsect/s 的一半因为每扇区大小为 512 字节。 wkB/s: 每秒写 K 字节数。是 wsect/s 的一半。 avgrq-sz: 平均每次设备 I/O 操作的数据大小 ( 扇区 ) 。即 delta(rsectwsect)/delta(riowio) avgqu-sz: 平均 I/O 队列长度。即 delta(aveq)/s/1000 ( 因为 aveq 的单位为毫秒 ) 。 await: 平均每次设备 I/O 操作的等待时间 ( 毫秒 ) 。即 delta(rusewuse)/delta(riowio) svctm: 平均每次设备 I/O 操作的服务时间 ( 毫秒 ) 。即 delta(use)/delta(riowio) %util: 一秒中有百分之多少的时间用于 I/O 操作或者说一秒中有多少时间 I/O 队列是非空的。即 delta(use)/s/1000 ( 因为 use 的单位为毫秒 ) 如果 %util 接近 100% 说明产生的 I/O 请求太多 I/O 系统已经满负荷该磁盘可能存在瓶颈。 比较重要的参数 %util: 一秒中有百分之多少的时间用于 I/O 操作或者说一秒中有多少时间 I/O 队列是非空的 svctm: 平均每次设备 I/O 操作的服务时间 await: 平均每次设备 I/O 操作的等待时间 avgqu-sz: 平均 I/O 队列长度 如果 %util 接近 100%, 表明 i/o 请求太多 ,i/o 系统已经满负荷 , 磁盘可能存在瓶颈 , 一般 %util 大于 70%,i/o 压 力就比较大 , 读取速度有较多的 wait. 同时可以结合 vmstat 查看查看 b 参数 ( 等待资源的进程数 ) 和 wa 参数 (IO 等待所占用的 CPU 时间的百分比 , 高过 30% 时 IO 压力高 ) 。 要理解这些性能指标我们先看下图 IO 的执行过程的各个参数 上图的左边是 iostat 显示的各个性能指标每个性能指标都会显示在一条虚线之上这表明这个性 能指标是从虚线之上的那个读写阶段开始计量的比如说图中的 w/s 从 Linux IO scheduler 开始穿过硬盘 控制器 (CCIS/3ware) 这就表明 w/s 统计的是每秒钟从 Linux IO scheduler 通过硬盘控制器的写 IO 的数量。 结合上图对读 IO 操作的过程做一个说明在从 OS Buffer Cache 传入到 OS Kernel(Linux IO scheduler) 的读 IO 操作的个数实际上是 rrqm/sr/s 直到读 IO 请求到达 OS Kernel 层之后有每秒钟有 rrqm/s 个 读 IO 操作被合并最终转送给磁盘控制器的每秒钟读 IO 的个数为 r/w 在进入到操作系统的设备层 (/dev/sda) 之后计数器开始对 IO 操作进行计时最终的计算结果表现是 await 这个值就是我们要的 IO 响应时间了 svctm 是在 IO 操作进入到磁盘控制器之后直到磁盘控制器返回结果所花费的时间这 是一个实际 IO 操作所花的时间当 await 与 svctm 相差很大的时候我们就要注意磁盘的 IO 性能了 而 avgrq-sz 是从 OS Kernel 往下传递请求时单个 IO 的大小 avgqu-sz 则是在 OS Kernel 中 IO 请求队列的 平均大小。 现在我们可以将 iostat 输出结果和我们上面讨论的指标挂钩了 设备 IO 操作 : 总 IO(io)/s r/s( 读 ) w/s( 写 ) 1.46 25.2826.74 平均每次设备 I/O 操作只需要 0.36 毫秒完成 , 现在却需要 10.57 毫秒完成因为发出的请求太多 ( 每秒 26.74 个 ) 假如请求时同时发出的可以这样计算平均等待时间 : 平均等待时间 单个 I/O 服务器时间 *(12... 请求总数 -1)/ 请求总数 每秒发出的 I/0 请求很多 , 但是平均队列就 4, 表示这些请求比较均匀 , 大部分处理还是比较及时 svctm 一般要小于 await ( 因为同时等待的请求的等待时间被重复计算了 ) svctm 的大小一般和磁盘性 能有关 CPU/ 内存的负荷也会对其有影响请求过多也会间接导致 svctm 的增加。 await 的大小一般 取决于服务时间 (svctm) 以及 I/O 队列的长度和 I/O 请求的发出模式。如果 svctm 比较接近 await 说明 I/O 几乎没有等待时间如果 await 远大于 svctm 说明 I/O 队列太长应用得到的响应时间变 慢如果响应时间超过了用户可以容许的范围这时可以考虑更换更快的磁盘调整内核 elevator 算 法优化应用或者升级 CPU 。 队列长度 (avgqu-sz) 也可作为衡量系统 I/O 负荷的指标但由于 avgqu-sz 是按照单位时间的平均值所 以不能反映瞬间的 I/O 洪水。 I/O 系统 vs. 超市排队 举一个例子我们在超市排队 checkout 时怎么决定该去哪个交款台呢 ? 首当是看排的队人数 5 个 人总比 20 人要快吧 ? 除了数人头我们也常常看看前面人购买的东西多少如果前面有个采购了一星 期食品的大妈那么可以考虑换个队排了。还有就是收银员的速度了如果碰上了连钱都点不清楚的新 手那就有的 等了。另外时机也很重要可能 5 分钟前还人满为患的收款台现在已是人去楼空这时候交款可 是很爽啊当然前提是那过去的 5 分钟里所做的事情比排队要有意义 ( 不过我还没发现什么事情比 排队还无聊的 ) 。 I/O 系统也和超市排队有很多类似之处 : r/sw/s 类似于交款人的总数 平均队列长度 (avgqu-sz) 类似于单位时间里平均排队人的个数 平均服务时间 (svctm) 类似于收银员的收款速度 平均等待时间 (await) 类似于平均每人的等待时间 平均 I/O 数据 (avgrq-sz) 类似于平均每人所买的东西多少 I/O 操作率 ( util) 类似于收款台前有人排队的时间比例。 我们可以根据这些数据分析出 I/O 请求的模式以及 I/O 的速度和响应时间。 一个例子 # iostat -x 1 avg-cpu: user nice sys idle 16.24 0.00 4.31 79.44 Device: rrqm/s wrqm/s r/s w/s rsec/s wsec/s rkB/s wkB/s avgrq-sz avgqu-sz await svctm util /dev/cciss/c0d0 0.00 44.90 1.02 27.55 8.16 579.59 4.08 289.80 20.57 22.35 78.21 5.00 14.29 /dev/cciss/c0d0p1 0.00 44.90 1.02 27.55 8.16 579.59 4.08 289.80 20.57 22.35 78.21 5.00 14.29 /dev/cciss/c0d0p2 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 上面的 iostat 输出表明秒有 28.57 次设备 I/O 操作 : delta(io)/s r/s w/s 1.0227.55 28.57 ( 次 / 秒 ) 其中写操作占了主体 (w:r 27:1) 。 平均每次设备 I/O 操作只需要 5ms 就可以完成但每个 I/O 请求却需要等上 78ms 为什么 ? 因为发 出的 I/O 请求太多 ( 每秒钟约 29 个 ) 假设这些请求是同时发出的那么平均等待时间可以这样计算 : 平均等待时间 单个 I/O 服务时间 * ( 1 2 ... 请求总数 -1) / 请求总数 应用到上面的例子 : 平均等待时间 5ms * (12...28)/29 70ms 和 iostat 给出的 78ms 的平均等待 时间很接近。这反过来表明 I/O 是同时发起的。每秒发出的 I/O 请求很多 ( 约 29 个 ) 平均队列却不 长 ( 只有 2 个 左右 ) 这表明这 29 个请求的到来并不均匀大部分时间 I/O 是空闲的。一秒中有 14.29 的时间 I/O 队列中是有请求的也就是说 85.71 的时间里 I/O 系统无事可做所有 29 个 I/O 请求都在 142 毫秒之内处理掉了。 delta(rusewuse)/delta(io) await 78.21 delta(rusewuse)/s 78.21 * delta(io)/s 78.21*28.57 2232.8 表明每秒内的 I/O 请求总共需要等待 2232.8ms 。所以平均队列长度应为 2232.8ms/1000ms 2.23 而 iostat 给出的平均队列长度 (avgqu-sz) 却为 22.35 为什么 ?! 因为 iostat 中有 bug avgqu-sz 值应为 2.23 而不是 22.35 。 4 、 uptime uptime 命令用于查看服务器运行了多长时间以及有多少个用户登录快速获知服务器的负荷情况。 uptime 的输出包含一项内容是 load average 显示了最近 1 5 15 分钟的负荷情况。它的值代表等待 CPU 处理的进程数如果 CPU 没有时间处理这些进程 load average 值会升高反之则会降低。 load average 的最佳值是 1 说明每个进程都可以马上处理并且没有 CPU cycles 被丢失。对于单 CPU 的机器 1 或者 2 是可以接受的值对于多路 CPU 的机器 load average 值可能在 8 到 10 之间。也可以使用 uptime 命 令来判断网络性能。例如某个网络应用性能很低通过运行 uptime 查看服务器的负荷是否很高如 果不是那么问题应该是网络方面造成的。 以下是 uptime 的运行实例 9:24am up 19:06, 1 user, load average: 0.00, 0.00, 0.00 也可以查看 /proc/loadavg 和 /proc/uptime 两个文件注意不能编辑 /proc 中的文件要用 cat 等命令来查 看如 liyawei:~ # cat /proc/loadavg 0.0 0.00 0.00 1/55 5505 uptime 命令用法十分简单直接输入 # uptime 例 18:02:41 up 41 days, 23:42, 1 user, load average: 0.00, 0.00, 0.00 1 可以被认为是最优的负载值。负载是会随着系统不同改变得。单 CPU 系统 1-3 和 SMP 系统 6-10 都是 可能接受的。 另外还有一个参数 -V 是用来查询版本的。 ( 注意是大写的字母 v) [linux localhost]$ uptime -V procps version 3.2.7 [linux localhost]$ uptime 显示结果为 10:19:04 up 257 days, 18:56, 12 users, load average: 2.10, 2.10,2.09 显示内容说明 10:19:04 // 系统当前时间 up 257 days, 18:56 // 主机已运行时间 , 时间越大说明你的机器越稳定。 12 user // 用户连接数是总连接数而不是用户数 load average // 系统平均负载统计最近 1 5 15 分钟的系统平均负载 那么什么是系统平均负载呢 系统平均负载是指在特定时间间隔内运行队列中的平均进程数。如 果每个 CPU 内核的当前活动进程数不大于 3 的话那么系统的性能是良好的。如果每个 CPU 内核的任 务数大于 5 那么这台机器的性能有严重问题。如果你的 linux 主机是 1 个双核 CPU 的话当 Load Average 为 6 的时候说明机器已经被充分使用了。 5 、 W w 命令主要是查看当前登录的用户这个命令相对来说比较简单。我们来看一下截图。 在上面这个截图里面呢第一列 user 代表登录的用户第二列 tty 代表用户登录的终端号因为在 linux 中并不是只有一个终端的 pts/2 代表是图形界面的第二个终端这仅是个人意见网上的对 pts 的看法可能有些争议。第三列 FROM 代表登录的地方如果是远程登录的会显示 ip 地址 :0 表示的 是 display 0:0 意思就是主控制台的第一个虚拟终端。第四列 login 代表登录的时间第五列的 IDLE 代表系统的闲置时间。最后一列 what 是代表正在运行的进程因为我正在运行 w 命令所以咋 root 显示 w 。 5 、 mpstat mpstat RHEL5 默认不安装 mpstat 是 MultiProcessor Statistics 的缩写是实时系统监控工具。其报告与 CPU 的一些统计信息 这些信息存放在 /proc/stat 文件中。在多 CPUs 系统里其不但能查看所有 CPU 的平均状况信息而且 能够查看特定 CPU 的信息。下面只介绍 mpstat 与 CPU 相关的参数 mpstat 的语法如下 mpstat [-P {|ALL}] [internal [count]] 参数的含义如下 -P {|ALL} 表示监控哪个 CPU cpu 在 [0,cpu 个数 -1] 中取值 internal 相邻的两次采样的间隔时间 count 采样的次数 count 只能和 delay 一起使用 当没有参数时 mpstat 则显示系统启动以后所有信息的平均值。有 interval 时第一行的信息自系 统启动以来的平均信息。 从第二行开始输出为前一个 interval 时间段的平均信息。与 CPU 有关的输出的含义如下 [oracleTest ~]$ mpstat -P ALL Linux 2.6.18-194.el5 (Test.linux.com) 2010 年 06 月 22 日 09 时 18 分 18 秒 CPU %user %nice %sys %iowait %irq %soft %steal %idle intr/s 09 时 18 分 18 秒 all 0.06 0.00 0.43 0.78 0.00 0.00 0.00 98.71 1069.35 09 时 18 分 18 秒 0 0.05 0.00 0.36 0.17 0.02 0.00 0.00 99.41 1032.01 09 时 18 分 18 秒 1 0.04 0.00 0.42 0.07 0.00 0.00 0.00 99.47 0.26 09 时 18 分 18 秒 2 0.11 0.00 0.28 0.08 0.00 0.00 0.00 99.52 0.00 09 时 18 分 18 秒 3 0.07 0.00 0.48 0.05 0.00 0.00 0.00 99.39 0.01 09 时 18 分 18 秒 4 0.08 0.00 0.19 5.63 0.00 0.02 0.00 94.08 24.51 09 时 18 分 18 秒 5 0.05 0.00 0.63 0.11 0.00 0.00 0.00 99.21 0.22 09 时 18 分 18 秒 6 0.07 0.00 0.45 0.10 0.00 0.01 0.00 99.36 12.33 09 时 18 分 18 秒 7 0.05 0.00 0.64 0.07 0.00 0.00 0.00 99.24 0.00 参数 解释 从 /proc/stat 获得数据 CPU 处理器 ID user 在 internal 时间段里用户的 CPU 时间 % 不包含 nice 值为负 进程 (usr/total)*100 nice 在 internal 时间段里 nice 值为负进程的 CPU 时间 % (nice/total)*100 system 在 internal 时间段里核心时间 % (system/total)*100 iowait 在 internal 时间段里硬盘 IO 等待时间 % (iowait/total)*100 irq 在 internal 时间段里硬中断时间 % (irq/total)*100 soft 在 internal 时间段里软中断时间 % (softirq/total)*100 idle 在 internal 时间段里 CPU 除去等待磁盘 IO 操作外的因为任何原因而空闲的时间闲置时间 % (idle/total)*100 intr/s 在 internal 时间段里每秒 CPU 接收的中断的次数 intr/total)*100 CPU 总的工作时间 total_curusersystemniceidleiowaitirqsoftirq total_prepre_user pre_system pre_nice pre_idle pre_iowait pre_irq pre_softirq useruser_cur – user_pre totaltotal_cur-total_pre 其中 _cur 表示当前值 _pre 表示 interval 时间前的值。上表中的所有值可取到两位小数点。 范例 1 average mode ( 粗略信息 ) 当 mpstat 不带参数时输出为从系统启动以来的平均值。 [workbuilder linux-2.6.14]$ mpstat Linux 2.6.9-5.31AXsmp (builder.redflag-linux.com) 12/16/2005 09:38:46 AM CPU %user %nice %system %iowait %irq %soft %idle intr/s 09:38:48 AM all 23.28 0.00 1.75 0.50 0.00 0.00 74.47 1018.59 范例 2: 每 2 秒产生了 2 个处理器的统计数据报告 下面的命令可以每 2 秒产生了 2 个处理器的统计数据报告一共产生三个 interval 的信息然后再给出 这三个 interval 的平均信息。默认时输出是按照 CPU 号排序。第一个行给出了从系统引导以来的所有 活跃数据。接下来每行对应一个处理器的活跃状态。 [rootserver yum_dir]# mpstat -P ALL 2 3 Linux 2.6.18-164.el5 (server.sys.com) 01/04/2010 09:34:20 PM CPU %user %nice %sys %iowait %irq %soft %steal %idle intr/s 09:34:22 PM all 0.00 0.00 0.00 0.00 0.00 0.00 0.00 100.00 1001.49 09:34:22 PM 0 0.00 0.00 0.50 0.00 0.00 0.00 0.00 99.50 1001.00 09:34:22 PM 1 0.00 0.00 0.00 0.00 0.00 0.00 0.00 100.00 0.00 09:34:22 PM CPU %user %nice %sys %iowait %irq %soft %steal %idle intr/s 09:34:24 PM all 0.00 0.00 0.25 0.00 0.00 0.00 0.00 99.75 1005.00 09:34:24 PM 0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 100.00 1005.50 09:34:24 PM 1 0.00 0.00 0.00 0.00 0.00 0.00 0.00 100.00 0.00 09:34:24 PM CPU %user %nice %sys %iowait %irq %soft %steal %idle intr/s 09:34:26 PM all 0.00 0.00 0.00 0.00 0.00 0.00 0.00 100.00 1001.49 09:34:26 PM 0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 100.00 1001.00 09:34:26 PM 1 0.00 0.00 0.00 0.00 0.00 0.00 0.00 100.00 0.00 Average: CPU %user %nice %sys %iowait %irq %soft %steal %idle intr/s Average: all 0.00 0.00 0.08 0.00 0.00 0.00 0.00 99.92 1002.66 Average: 0 0.00 0.00 0.17 0.00 0.00 0.00 0.00 99.83 1002.49 Average: 1 0.00 0.00 0.00 0.00 0.00 0.00 0.00 100.00 0.00 范例 3 比较带参数和不带参数的 mpstat 的结果。 在后台开一个 2G 的文件 # cat 1.img 然后在另一个终端运行 mpstat 命令 [rootserver ~]# cat 1.img [1] 6934 [rootserver ~]# mpstat Linux 2.6.18-164.el5 (server.sys.com) 01/04/2010 10:17:31 PM CPU %user %nice %sys %iowait %irq %soft %steal %idle intr/s 10:17:31 PM all 0.07 0.02 0.25 0.21 0.01 0.04 0.00 99.40 1004.57 [rootserver ~]# mpstat Linux 2.6.18-164.el5 (server.sys.com) 01/04/2010 10:17:35 PM CPU %user %nice %sys %iowait %irq %soft %steal %idle intr/s 10:17:35 PM all 0.07 0.02 0.25 0.21 0.01 0.04 0.00 99.39 1004.73 [rootserver ~]# mpstat Linux 2.6.18-164.el5 (server.sys.com) 01/04/2010 10:17:39 PM CPU %user %nice %sys %iowait %irq %soft %steal %idle intr/s 10:17:39 PM all 0.07 0.02 0.25 0.21 0.01 0.04 0.00 99.38 1004.96 [rootserver ~]# mpstat Linux 2.6.18-164.el5 (server.sys.com) 01/04/2010 10:17:44 PM CPU %user %nice %sys %iowait %irq %soft %steal %idle intr/s 10:17:44 PM all 0.07 0.02 0.26 0.21 0.01 0.05 0.00 99.37 1005.20 [rootserver ~]# mpstat 3 10 Linux 2.6.18-164.el5 (server.sys.com) 01/04/2010 10:17:55 PM CPU %user %nice %sys %iowait %irq %soft %steal %idle intr/s 10:17:58 PM all 13.12 0.00 20.93 0.00 1.83 9.80 0.00 54.32 2488.08 10:18:01 PM all 10.82 0.00 19.30 0.83 1.83 9.32 0.00 57.90 2449.83 10:18:04 PM all 10.95 0.00 20.40 0.17 1.99 8.62 0.00 57.88 2384.05 10:18:07 PM all 10.47 0.00 18.11 0.00 1.50 8.47 0.00 61.46 2416.00 10:18:10 PM all 11.81 0.00 22.63 0.00 1.83 11.98 0.00 51.75 2210.60 10:18:13 PM all 6.31 0.00 10.80 0.00 1.00 5.32 0.00 76.58 1795.33 10:18:19 PM all 1.75 0.00 3.16 0.75 0.25 1.25 0.00 92.85 1245.18 10:18:22 PM all 11.94 0.00 19.07 0.00 1.99 8.29 0.00 58.71 2630.46 10:18:25 PM all 11.65 0.00 19.30 0.50 2.00 9.15 0.00 57.40 2673.91 10:18:28 PM all 11.44 0.00 21.06 0.33 1.99 10.61 0.00 54.56 2369.87 Average: all 9.27 0.00 16.18 0.30 1.50 7.64 0.00 65.11 2173.54 [rootserver ~]# 上两表显示出当要正确反映系统的情况需要正确使用命令的参数。 vmstat 和 iostat 也需要注意这一 问题。 6 、 pmap pmap 命令可以显示进程的内存映射使用这个命令可以找出造成内存瓶颈的原因。 # pmap -d PID 显示 PID 为 47394 进程的内存信息。 # pmap -d 47394 输出样例 47394: /usr/bin/php-cgi Address Kbytes Mode Offset Device Mapping 0000000000400000 2584 r-x-- 0000000000000000 008:00002 php-cgi 0000000000886000 140 rw--- 0000000000286000 008:00002 php-cgi 00000000008a9000 52 rw--- 00000000008a9000 000:00000 [ anon ] 0000000000aa8000 76 rw--- 00000000002a8000 008:00002 php-cgi 000000000f678000 1980 rw--- 000000000f678000 000:00000 [ anon ] 000000314a600000 112 r-x-- 0000000000000000 008:00002 ld-2.5.so 000000314a81b000 4 r---- 000000000001b000 008:00002 ld-2.5.so 000000314a81c000 4 rw--- 000000000001c000 008:00002 ld-2.5.so 000000314aa00000 1328 r-x-- 0000000000000000 008:00002 libc-2.5.so 000000314ab4c000 2048 ----- 000000000014c000 008:00002 libc-2.5.so ..... ...... 00002af8d48fd000 4 rw--- 0000000000006000 008:00002 xsl.so 00002af8d490c000 40 r-x-- 0000000000000000 008:00002 libnss_files-2.5.so 00002af8d4916000 2044 ----- 000000000000a000 008:00002 libnss_files-2.5.so 00002af8d4b15000 4 r---- 0000000000009000 008:00002 libnss_files-2.5.so 00002af8d4b16000 4 rw--- 000000000000a000 008:00002 libnss_files-2.5.so 00002af8d4b17000 768000 rw-s- 0000000000000000 000:00009 zero (deleted) 00007fffc95fe000 84 rw--- 00007ffffffea000 000:00000 [ stack ] ffffffffff600000 8192 ----- 0000000000000000 000:00000 [ anon ] mapped: 933712K writeable/private: 4304K shared: 768000K 最后一行非常重要 * mapped: 933712K 内存映射所占空间大小 * writeable/private: 4304K 私有地址空间大小 * shared: 768000K 共享地址空间大小 7 、 sar sar 是一个优秀的一般性能监视工具它可以输出 Linux 所完成的几乎所有工作的数据。 sar 命令在 sysetat rpm 中提供。示例中使用 sysstat 版本 5.0.5 这是稳定的最新版本之一。关于版本和下载信息 请访问 sysstat 主页 http://perso.wanadoo.fr/sebastien.godard/ 。 sar 可以显示 CPU 、运行队列、磁盘 I/O 、分页交换区、内存、 CPU 中断、网络等性能数据。最重要 的 sar 功能是创建数据文件。每一个 Linux 系统都应该通过 cron 工作收集 sar 数据。该 sar 数据文件为 系统管理员提供历史性能信息。这个功能非常重要它将 sar 和其他性能工具区分开。如果一个夜晚批 处理工作正常运行两次直到下一个早上才会发现这种情况除非被叫醒。我们需要具备研究 12 小时 以前的性能数据的能力。 sar 数据收集器提供了这种能力。 sar 命令行的常用格式 sar [options] [-A] [-o file] t [n] 在命令行中 n 和 t 两个参数组合起来定义采样间隔和次数 t 为采样间隔是必须有的参数 n 为采样次数是可选的默认值是 1 -o file 表示将命令结果以二进制格式存放在文件中 file 在此处 不是关键字是文件名。 options 为命令行选项 sar 命令的选项很多下面只列出常用选项 -A 所有报告的总和。 -u CPU 利用率 -v 进程、 I 节点、文件和锁表状态。 -d 硬盘使用报告。 -r 没有使用的内存页面和硬盘块。 -g 串口 I/O 的情况。 -b 缓冲区使用情况。 -a 文件读写情况。 -c 系统调用情况。 -R 进程的活动情况。 -y 终端设备活动情况。 -w 系统交换活动。 7.1 、 CPU 统计数据 sar -u 输出显示 CPU 信息。 -u 选项是 sar 的默认选项。该输出以百分比显示 CPU 的使用情况。表 3-2 解释该输出。 这些看起来应该比较熟悉它和 top 报告中的 CPU 信息内容相同。以下显示输出格式 [oracleTest ~]$ sar -u -o aixi 60 5 Linux 2.6.18-194.el5 (Test.linux.com) 06/22/10 13:41:25 CPU %user %nice %system %iowait %steal %idle 13:42:25 all 0.28 0.00 0.21 1.17 0.00 98.34 13:43:25 all 0.23 0.00 0.16 1.14 0.00 98.46 13:44:25 all 0.27 0.00 0.21 1.40 0.00 98.12 13:45:25 all 0.26 0.00 0.19 0.99 0.00 98.56 13:46:25 all 0.32 0.00 0.23 1.39 0.00 98.05 Average: all 0.27 0.00 0.20 1.22 0.00 98.31 每 60 秒采样一次连续采样 5 次观察 CPU 的使用情况并将采样结果以二进制形式存入当前目 录下的文件 aixi 中 在所有的显示中我们应主要注意 %wio 和 %idle %wio 的值过高表示硬盘存在 I/O 瓶颈 %idle 值高表示 CPU 较空闲如果 %idle 值高但系统响应慢时有可能是 CPU 等待分配内存此时应加大内 存容量。 %idle 值如果持续低于 10 那么系统的 CPU 处理能力相对较低表明系统中最需要解决的资源 是 CPU 。另外任何 sar 报告的第一列都是时间戳。 如果要查看二进制文件 aixi 中的内容则需键入如下 sar 命令 # sar -u -f aixi 可见 sar 命令即可以实时采样又可以对以往的采样结果进行查询。 我们本来可以研究使用 -f 选项通过 sadc 创建的文件。这个 sar 语法显示 sar -f/var/log/ sa/sa21 的输出 在多 CPU Linux 系统中 sar 命令也可以为每个 CPU 分解该信息如以下 sar -u -P ALL 5 5 输出所示 磁盘 I/O 统计数据 sar 是一个研究磁盘 I/O 的优秀工具。以下是 sar 磁盘 I/O 输出的一个示例。 第一行 -d 显示磁盘 I/O 信息 5 2 选项是间隔和迭代就像 sar 数据收集器那样。表 3-3 列出了字段和说 明。 512 只是一个测量单位不表示所有磁盘 I/O 均使用 512 字节块。 DEV 列是 dev#-# 格式的磁盘设备其中 第一个 # 是设备主编号第二个 # 是次编号或者连续编号。对于大于 2.5 的内核 sar 使用次编号。例如 在 sar -d 输出中看到的 dev3-0 和 dev3-1 。它们对应于 /dev/hda 和 /dev/hdal 。请看 /dev 中的以下各项 /dev/hda 有主编号 3 和次编号 0 。 hda1 有主编号 3 和次编号 1 。 3.2.4 网络统计数据 sar 提供四种不同的语法选项来显示网络信息。 -n 选项使用四个不同的开关 DEV 、 EDEV 、 SOCK 和 FULL 。 DEV 显示网络接口信息 EDEV 显示关于网络错误的统计数据 SOCK 显示套接字信息 FULL 显示所有三 个开关。它们可以单独或者一起使用。表 3-4 显示通过 -n DEV 选项报告的字段。 以下是使用 -n DEV 选项的 sar 输出 关于网络错误的信息可以用 sar -n EDEV 显示。表 3-5 列出了显示的字段。 表 3-5 sar -n EDEV 字段 sar 可以产生许多其他报告。我们有必要仔细阅读 sar1手册页查看是否有自己需要的其他报告 例二使用命行 sar -v t n 例如每 30 秒采样一次连续采样 5 次观察核心表的状态需键入如下命令 # sar -v 30 5 屏幕显示 SCO_SV scosysv 3.2v5.0.5 i80386 10/01/2001 10:33:23 proc-sz ov inod-sz ov file-sz ov lock-sz (-v) 10:33:53 305/ 321 0 1337/2764 0 1561/1706 0 40/ 128 10:34:23 308/ 321 0 1340/2764 0 1587/1706 0 37/ 128 10:34:53 305/ 321 0 1332/2764 0 1565/1706 0 36/ 128 10:35:23 308/ 321 0 1338/2764 0 1592/1706 0 37/ 128 10:35:53 308/ 321 0 1335/2764 0 1591/1706 0 37/ 128 显示内容包括 proc-sz目前核心中正在使用或分配的进程表的表项数由核心参数 MAX-PROC 控制。 inod-sz目前核心中正在使用或分配的 i 节点表的表项数由核心参数 MAX-INODE 控制。 file-sz 目前核心中正在使用或分配的文件表的表项数由核心参数 MAX-FILE 控制。 ov溢出出现的次数。 Lock-sz目前核心中正在使用或分配的记录加锁的表项数由核心参数 MAX-FLCKRE 控制。 显示格式为 实际使用表项/可以使用的表项数 显示内容表示核心使用完全正常三个表没有出现溢出现象核心参数不需调整如果出现溢出 时要调整相应的核心参数将对应的表项数加大。 例三使用命行 sar -d t n 例如每 30 秒采样一次连续采样 5 次报告设备使用情况需键入如下命令 # sar -d 30 5 屏幕显示 SCO_SV scosysv 3.2v5.0.5 i80386 10/01/2001 11:06:43 device %busy avque rw/s blks/s avwait avserv (-d) 11:07:13 wd-0 1.47 2.75 4.67 14.73 5.50 3.14 11:07:43 wd-0 0.43 18.77 3.07 8.66 25.11 1.41 11:08:13 wd-0 0.77 2.78 2.77 7.26 4.94 2.77 11:08:43 wd-0 1.10 11.18 4.10 11.26 27.32 2.68 11:09:13 wd-0 1.97 21.78 5.86 34.06 69.66 3.35 Average wd-0 1.15 12.11 4.09 15.19 31.12 2.80 显示内容包括 device sar 命令正在监视的块设备的名字。 %busy 设备忙时传送请求所占时间的百分比。 avque 队列站满时未完成请求数量的平均值。 rw/s 每秒传送到设备或从设备传出的数据量。 blks/s 每秒传送的块数每块 512 字节。 avwait 队列占满时传送请求等待队列空闲的平均时间。 avserv 完成传送请求所需平均时间毫秒。 在显示的内容中wd-0 是硬盘的名字%busy 的值比较小说明用于处理传送请求的有效时间太少 文件系统效率不高一般来讲%busy 值高些avque 值低些文件系统的效率比较高如果%busy 和 avque 值相对比较高说明硬盘传输速度太慢需调整。 例四使用命行 sar -b t n 例如每 30 秒采样一次连续采样 5 次报告缓冲区的使用情况需键入如下命令 # sar -b 30 5 屏幕显示 SCO_SV scosysv 3.2v5.0.5 i80386 10/01/2001 14:54:59 bread/s lread/s %rcache bwrit/s lwrit/s %wcache pread/s pwrit/s (-b) 14:55:29 0 147 100 5 21 78 0 0 14:55:59 0 186 100 5 25 79 0 0 14:56:29 4 232 98 8 58 86 0 0 14:56:59 0 125 100 5 23 76 0 0 14:57:29 0 89 100 4 12 66 0 0 Average 1 156 99 5 28 80 0 0 显示内容包括 bread/s 每秒从硬盘读入系统缓冲区 buffer 的物理块数。 lread/s 平均每秒从系统 buffer 读出的逻辑块数。 %rcache 在 buffer cache 中进行逻辑读的百分比。 bwrit/s 平均每秒从系统 buffer 向磁盘所写的物理块数。 lwrit/s 平均每秒写到系统 buffer 逻辑块数。 %wcache 在 buffer cache 中进行逻辑读的百分比。 pread/s 平均每秒请求物理读的次数。 pwrit/s 平均每秒请求物理写的次数。 在显示的内容中最重要的是%cache 和%wcache 两列它们的值体现着 buffer 的使用效率%rcache 的值小于 90 或者%wcache 的值低于 65应适当增加系统 buffer 的数量buffer 数量由核心参数 NBUF 控制使%rcache 达到 90 左右%wcache 达到 80 左右。但 buffer 参数值的多少影响 I/O 效率增加 buffer应在较大内存的情况下否则系统效率反而得不到提高。 例五使用命行 sar -g t n 例如每 30 秒采样一次连续采样 5 次报告串口 I/O 的操作情况需键入如下命令 # sar -g 30 5 屏幕显示 SCO_SV scosysv 3.2v5.0.5 i80386 11/22/2001 17:07:03 ovsiohw/s ovsiodma/s ovclist/s (-g) 17:07:33 0.00 0.00 0.00 17:08:03 0.00 0.00 0.00 17:08:33 0.00 0.00 0.00 17:09:03 0.00 0.00 0.00 17:09:33 0.00 0.00 0.00 Average 0.00 0.00 0.00 显示内容包括 ovsiohw/s每秒在串口 I/O 硬件出现的溢出。 ovsiodma/s每秒在串口 I/O 的直接输入输出通道高速缓存出现的溢出。 ovclist/s 每秒字符队列出现的溢出。 在显示的内容中每一列的值都是零表明在采样时间内系统中没有发生串口 I/O 溢出现象。 sar 命令的用法很多有时判断一个问题需要几个 sar 命令结合起来使用比如怀疑 CPU 存在 瓶颈可用 sar -u 和 sar -q 来看怀疑 I/O 存在瓶颈可用 sar -b、sar -u 和 sar-d 来看。 -------------------------------------------------------------------------------- Sar -A 所有的报告总和 -a 文件读写报告 -B 报告附加的 buffer cache 使用情况 -b buffer cache 使用情况 -c 系统调用使用报告 -d 硬盘使用报告 -g 有关串口 I/O 情况 -h 关于 buffer 使用统计数字 -m IPC 消息和信号灯活动 -n 命名 cache -p 调页活动 -q 运行队列和交换队列的平均长度 -R 报告进程的活动 -r 没有使用的内存页面和硬盘块 -u CPU 利用率 -v 进程i 节点文件和锁表状态 -w 系统交换活动 -y TTY 设备活动 -a 报告文件读写报告 sar –a 5 5 SCO_SV scosvr 3.2v5.0.5 PentII(D)ISA 06/07/2002 11:45:40 iget/s namei/s dirbk/s (-a) 11:45:45 6 2 2 11:45:50 91 20 28 11:45:55 159 20 18 11:46:00 157 21 19 11:46:05 177 30 35 Average 118 18 20 iget/s 每秒由 i 节点项定位的文件数量 namei/s 每秒文件系统路径查询的数量 dirbk/s 每秒所读目录块的数量 这些值越大表明核心花在存取用户文件上的时间越多它反映着一些程序和应用文件系统产生 的负荷。一般地如果 iget/s 与 namei/s 的比值大于 5并且 namei/s 的值大于 30则说明文件系统 是低效的。这时需要检查文件系统的自由空间看看是否自由空间过少。 -b 报告缓冲区buffer cache的使用情况 sar -b 2 3 SCO_SV scosvr 3.2v5.0.5 PentII(D)ISA 06/07/2002 13:51:28 bread/s lread/s %rcache bwrit/s lwrit/s %wcache pread/s pwrit/s (-b) 13:51:30 382 1380 72 131 273 52 0 0 13:51:32 378 516 27 6 22 72 0 0 13:51:34 172 323 47 39 57 32 0 0 Average 310 739 58 58 117 50 0 0 bread/s 平均每秒从硬盘或其它块设备读入系统 buffer 的物理块数 lread/s 平均每秒从系统 buffer 读出的逻辑块数 %rcache 在 buffer cache 中进行逻辑读的百分比即 100 - bread/lreads bwrit/s 平均每秒从系统 buffer 向磁盘或其它块设备所写的物理块数 lwrit/s 平均每秒写到系统 buffer 的逻辑块数 %wcache 在 buffer cache 中进行逻辑写的百分比即 100 - bwrit/lwrit. pread/sgu 平均每秒请求进行物理读的次数 pwrit/s 平均每秒请求进行物理写的次数 所显示的内容反映了目前与系统 buffer 有关的读写活。在所报告的数字中最重要的是%rcache 和%wcache统称为 cache 命中率两列它们具体体现着系统 buffer 的效率。衡量 cache 效率的标准 是它的命中率值的大小。 如果%rcache 的值小于 90 或者%wcache 的值低于 65可能就需要增加系统 buffer 的数量。如果 在系统的应用中系统的 I/O 活动十分频繁并且在内存容量配置比较大时可以增加 buffer cache 使%rcache 达到 95 左右%wcache 达到 80 左右。 系统 buffer cache 中buffer 的数量由核心参数 NBUF 控制。它是一个要调的参数。系统中 buffer 数量的多少是影响系统 I/O 效率的瓶颈。要增加系统 buffer 数量则要求应该有较大的内存配置。否 则一味增加 buffer 数量势必减少用户进程在内存中的运行空间这同样会导致系统效率下降。 -c 报告系统调用使用情况 sar -c 2 3 SCO_SV scosvr 3.2v5.0.5 PentII(D)ISA 06/07/2002 17:02:42 scall/s sread/s swrit/s fork/s exec/s rchar/s wchar/s (-c) 17:02:44 2262 169 141 0.00 0.00 131250 22159 17:02:46 1416 61 38 0.00 0.00 437279 6464 17:02:48 1825 43 25 0.00 0.00 109397 42331 Average 1834 91 68 0.00 0.00 225975 23651 scall/s 每秒使用系统调用的总数。一般地当 4~6 个用户在系统上工作时每秒大约 30 个左右。 sread/s 每秒进行读操作的系统调用数量。 swrit/s 每秒进行写操作的系统调用数量。 fork/s 每秒 fork 系统调用次数。当 4~6 个用户在系统上工作时每秒大约 0.5 秒左右。 exec/s 每秒 exec 系统调用次数。 rchar/s 每秒由读操作的系统调用传送的字符以字节为单位。 wchar/s 每秒由写操作的系统调用传送的字符以字节为单位。 如果 scall/s 持续地大于 300则表明正在系统中运行的可能是效率很低的应用程序。在比较典 型的情况下进行读操作的系统调用加上进行写操作的系统调用之和约是 scall 的一半左右。 -d 报告硬盘使用情况 sar -d 2 3 SCO_SV scosvr 3.2v5.0.5 PentII(D)ISA 06/07/2002 17:27:49 device %busy avque rw/s blks/s avwait avserv (-d) 17:27:51 ida-0 6.93 1.00 13.86 259.41 0.00 5.00 ida-1 0.99 1.00 17.33 290.10 0.00 0.57 17:27:53 ida-0 75.50 1.00 54.00 157.00 0.00 13.98 ida-1 9.50 1.00 12.00 75.00 0.00 7.92 17:27:55 ida-0 7.46 1.00 46.77 213.93 0.00 1.60 ida-1 17.41 1.00 57.71 494.53 0.00 3.02 Average ida-0 29.85 1.00 38.14 210.28 0.00 7.83 ida-1 9.29 1.00 29.02 286.90 0.00 3.20 device 这是 sar 命令正在监视的块设备的名字。 %busy 设备忙时运行传送请求所占用的时间。这个值以百分比表示。 avque 在指定的时间周期内没有完成的请求数量的平均值。仅在队列被占满时取这个值。 rw/s 每秒传送到设备或者从设备传送出的数据量。 blks/s 每秒传送的块数。每块 512 个字节。 avwait 传送请求等待队列空闲的平均时间以毫秒为单位。仅在队列被占满时取这个值。 avserv 完成传送请求所需平均时间以毫秒为单位 ida-0 和 ida-1 是硬盘的设备名字。在显示的内容中如果%busy 的值比较小说明用于处理传 送请求的有效时间太少文件系统的效率不高。要使文件系统的效率得到优化应使%busy 的数值相对 高一些而 avque 的值应该低一些。 -g 报告有关串口 I/O 情况 sar -g 3 3 SCO_SV scosvr 3.2v5.0.5 PentII(D)ISA 06/13/2002 11:10:09 ovsiohw/s ovsiodma/s ovclist/s (-g) 11:10:12 0.00 0.00 0.00 11:10:15 0.00 0.00 0.00 11:10:18 0.00 0.00 0.00 Average 0.00 0.00 0.00 ovsiohw/s 每秒在串囗 I/O 硬件出现的溢出。 ovsiodma/s 每秒在串囗 I/O 的直接输入输出信道高速缓存出现的溢出。 ovclist/s 每秒字符队列出现的溢出。 -m 报告进程间的通信活动IPC 消息和信号灯活动情况 sar -m 4 3 SCO_SV scosvr 3.2v5.0.5 PentII(D)ISA 06/13/2002 13:24:28 msg/s sema/s (-m) 13:24:32 2.24 9.95 13:24:36 2.24 21.70 13:24:40 2.00 36.66 Average 2.16 22.76 msg/s 每秒消息操作的次数包括发送消息的接收信息。 sema/s 每秒信号灯操作次数。 信号灯和消息作为进程间通信的工具如果在系统中运行的应用过程中没有使用它们那么由 sar 命令报告的 msg 和 sema 的值都将等于 0.00。如果使用了这些工具并且其中或者 msg/s 大于 100 或者 sema/s 大于 100则表明这样的应用程序效率比较低。原因是在这样的应用程序中大量的时间 花费在进程之间的沟通上而对保证进程本身有效的运行时间必然产生不良的影响。 -n 报告命名缓冲区活动情况 sar -n 4 3 SCO_SV scosvr 3.2v5.0.5 PentII(D)ISA 06/13/2002 13:37:31 c_hits cmisses (hit %) (-n) 13:37:35 1246 71 (94%) 13:37:39 1853 81 (95%) 13:37:43 969 56 (94%) Average 1356 69 (95%) c_hits cache 命中的数量。 cmisses cache 未命中的数量。 (hit %) 命中数量/(命中数理未命中数量)。 不难理解(hit %)值越大越好如果它低于 90则应该调整相应的核心参数。 -p 报告分页活动 sar -p 5 3 SCO_SV scosvr 3.2v5.0.5 PentII(D)ISA 06/13/2002 13:45:26 vflt/s pflt/s pgfil/s rclm/s (-p) 13:45:31 36.25 50.20 0.00 0.00 13:45:36 32.14 58.48 0.00 0.00 13:45:41 79.80 58.40 0.00 0.00 Average 49.37 55.69 0.00 0.00 vflt/s 每秒进行页面故障地址转换的数量由于有效的页面当前不在内存中。 pflt/s 每秒来自由于保护错误出现的页面故障数量由于对页面的非法存取引起的页面故障。 pgfil/s 每秒通过”页—入”满足 vflt/s 的数量。 rclm/s 每秒由系统恢复的有效页面的数量。有效页面被增加到自由页面队列上。 如果 vflt/s 的值高于 100可能预示着对于页面系统来说应用程序的效率不高也可能分页 参数需要调整或者内存配置不太合适。 -q 报告进程队列运行队列和交换队列的平均长度情况 sar -q 2 3 SCO_SV scosvr 3.2v5.0.5 PentII(D)ISA 06/13/2002 14:25:50 runq-sz %runocc swpq-sz %swpocc (-q) 14:25:52 4.0 50 14:25:54 9.0 100 14:25:56 9.0 100 Average 7.3 100 runq-sz 准备运行的进程运行队列。 %runocc 运行队列被占用的时间百分比 swpq-sz 要被换出的进程交换队列。 %swpocc 交换队列被占用的时间百分比。 如果%runocc 大于 90并且 runq-sz 的值大于 2则表明 CPU 的负载较重。其直接后果可能使 系统的响应速度降低。如果%swpocc 大于 20表明交换活动频繁将严重导致系统效率下降。解决的办 法是加大内存或减少缓存区数量从而减少交换及页—入,页—出活动。 -r 报告内存及交换区使用情况没有使用的内存页面和硬盘块 sar -r 2 3 SCO_SV scosvr 3.2v5.0.5 PentII(D)ISA 06/14/2002 10:14:19 freemem freeswp availrmem availsmem (-r) 10:14:22 279729 6673824 93160 1106876 10:14:24 279663 6673824 93160 1106876 10:14:26 279661 6673824 93160 1106873 Average 279684 6673824 93160 1106875 freemem 用户进程可以使用的内存页面数4KB 为一个页面。 freeswp 用于进程交换可以使用的硬盘盘块512B 为一个盘块。 -u CPU 利用率 sar -u 2 3 SCO_SV scosvr 3.2v5.0.5 PentII(D)ISA 06/14/2002 10:27:23 %usr %sys %wio %idle (-u) 10:27:25 2 3 8 88 10:27:27 3 3 5 89 10:27:29 0 0 0 100 Average 2 2 4 92 . %usr cpu 处在用户模式下时间百分比 %sys cpu 处在系统模式下时间百分比 %wio cpu 等待输入输出完成时间百分比 %idle cpu 空闲时间百分比 在显示的内容中%usr 和 %sys 这两个值一般情况下对系统无特别影响%wio 的值不能太高 如果%wio 的值过高则 CPU 花在等待输入输出上的时间太多这意味着硬盘存在 I/O 瓶颈。如果%idle 的值比较高但系统响应并不快那么这有可能是 CPU 花时间等待分配内存引起的。%idle 的值可以较 深入帮助人们了解系统的性能在这种情况上%idle 的值处于 40~100 之间一旦它持续低于 30则 表明进程竟争的主要资源不是内存而是 CPU。 在有大量用户运行的系统中为了减少 CPU 的压力应该使用智能多串卡而不是非智能多串卡。 智能多串卡可以承担 CPU 的某些负担。 此外如果系统中有大型的作业运行应该把它们合理调度错开高峰当系统相对空闲时再运 行。 -v 报告系统表的内容进程i 节点文件和锁表状态 sar -v 2 3 SCO_SV scosvr 3.2v5.0.5 PentII(D)ISA 06/14/2002 10:56:46 proc-sz ov inod-sz ov file-sz ov lock-sz (-v) 10:56:48 449/ 500 0 994/4147 0 1313/2048 0 5/ 128 10:56:50 450/ 500 0 994/4147 0 1314/2048 0 5/ 128 10:56:52 450/ 500 0 994/4147 0 1314/2048 0 5/ 128 proc-sz 目前在核心中正在使用或分配的进程表的表项数 inod-sz 目前在核心中正在使用或分配的 i 节点表的表项数 file-sz 目前在核心中正在使用或分配的文件表的表项数 ov 溢出出现的次数 lock-sz 目前在核心中正在使用或分配的记录加锁的表项数 除 ov 外均涉及到 unix 的核心参数它们分别受核心参数 NPROC,NIMODE,NFILE 和 FLOCKREC 的控制。 显示格式为 实际使用表项/整个表可以使用的表项数 比如proc-sz 一列所显示的四个数字中分母的 100 是系统中整个进程表的长度可建立 100 个 表项分子上的 2426 和 25 分别是采样的那一段时间所使用的进程表项。inod-szfile-sz 和 lock-sz 三列数字的意义也相同。 三列 ov 的值分别对应进程表i 节点表和文件表表明目前这三个表都没有出现溢出现象当出 现溢出时需要调整相应的核心参数将对应表加大。 -w 系统交换活动 sar -w 2 3 SCO_SV scosvr 3.2v5.0.5 PentII(D)ISA 06/14/2002 11:22:05 swpin/s bswin/s swpot/s bswots pswch/s (-w) 11:22:07 0.00 0.0 0.00 0.0 330 11:22:09 0.00 0.0 0.00 0.0 892 11:22:11 0.00 0.0 0.00 0.0 1053 Average 0.00 0.0 0.00 0.0 757 swpin/s 每秒从硬盘交换区传送进入内存的次数。 bswin/s 每秒为换入而传送的块数。 swpot/s 每秒从内存传送到硬盘交换区的次数。 bswots 每秒为换出而传送的块数。 pswch/s 每秒进程交换的数量。 swpin/sbswin/sswpot/s 和 bswots 描述的是与硬盘交换区相关的交换活动。交换关系到系 统的效率。交换区在硬盘上对硬盘的读写操作比内存读写慢得多因此为了提高系统效率就应该 设法减少交换。通常的作法就是加大内存使交换区中进行的交换活动为零或接近为零。如果 swpot/s 的值大于 1预示可能需要增加内存或减少缓冲区减少缓冲区能够释放一部分自由内存空间。 8 、 proc 文件系统 proc 文件系统是一个伪文件系统它只存在内存当中而不占用外存空间。它以文件系统的方式为 访问系统内核数据的操作提供接口。用户和应用程序可以通过 proc 得到系统的信息并可以改变内核 的某些参数。 这里将介绍如何从/proc 文件系统中获取与防火墙相关的一些性能参数以及如何通过/proc 文件系统 修改内核的相关配置。 1、从/proc 文件系统获取相关的性能参数 cpu 使用率/proc/stat 内存使用情况 /proc/meminfo 网络负载信息/proc/net/dev 相应的计算方法(摘自什么是 proc 文件系统) 1 处理器使用率 2 内存使用率 3 流入流出数据包 4 整体网络负载 这些数据分别要从/proc/stat、/proc/net/dev、/proc/meminfo 三个文件中提取。如里有问题或对要 提取的数据不太清楚可以使用 man proc 来查看 proc 文件系统的联机手册。 1 处理器使用率 这里要从/proc/stat 中提取四个数据用户模式user、低优先级的用户模式nice、内核模式system 以及空闲的处理器时间idle。它们均位于/proc/stat 文件的第一行。CPU 的利用率使用如下公式来 计算。 CPU 利用率 100 *user nice system/user nice system idle 2 内存使用率 这里需要从/proc/meminfo 文件中提取两个数据当前内存的使用量(cmem)以及内存总量(amem)。 内存使用百分比 100 * (cmem / umem) 3网络利用率 为了得到网络利用率的相关数据需要从/proc/net/dev 文件中获得两个数据从本机输出的数据包数 流入本机的数据包数。它们都位于这个文件的第四行。 性能收集程序开始记录下这两个数据的初始值以后每次获得这个值后均减去这个初始值即为从集群启 动开始从本节点通过的数据包。 利用上述数据计算出网络的平均负载方法如下 平均网络负载 (输出的数据包流入的数据包) / 2 2. 通过/proc 文件系统调整相关的内核配置 允许 ip 转发 /proc/sys/net/ipv4/ip_forward 禁止 ping/proc/sys/net/ipv4/icmp_echo_ignore_all 可以在命令行下直接往上述两个“文件”里头写入1来实现相关配置如果写入0将取消相关配置。 不过在系统重启以后这些配置将恢复默认设置所以如果想让这些修改生效可以把下面的配置直 接写入/etc/profile 文件或者其他随系统启动而执行的程序文件中。 1.echo 1 /proc/sys/net/ipv4/ip_forward 2.echo 1 /proc/sys/net/ipv4/icmp_echo_ignore_all 如果需要获取其他的性能参数或者需要对内核进行更多的配置可以参考 proc 文件系统介绍也可 以直接通过 man proc 查看相关的信息。
http://www.pierceye.com/news/613369/

相关文章:

  • 建站优化易下拉系统163邮箱登录注册
  • c 做网站电子商务平台中搜索词拆解包括
  • 腾讯云10g数字盘做网站够么四川省建设人才网
  • 批量 网站标题中海园林建设有限公司网站
  • 鲜花网站数据库建设免费律师咨询
  • 团队网站建设哪家便宜制作公司网站流程
  • 青龙桥网站建设企业网页是什么
  • 上海网站建设备案号怎么恢复法律咨询网站开发
  • 烟台做网站价格动力网站建设
  • 北戴河网站建设墨刀制作网页教程
  • 成都网站设计开发做得好微信商城怎么开发
  • 江西省城乡建设培训网-官方网站上海建设集团有限公司
  • 凡科网站设计模板grimhelm wordpress
  • 自己做的网站不备案行吗建筑工程集团有限公司
  • 网站初期 权重怎么做彩票类网站开发
  • 南通网站定制公司服务器网站建设维护合同
  • 亳州做商标网站的公司免费的网站模板
  • 西南城乡建设部网站首页python3做网站教程
  • 网站首页设计欣赏个人电影网站建设
  • 导航网站建设怎么给网站图片加alt
  • 备案成功后怎么建设网站宠物喂养网页设计模板以及代码
  • 东莞哪家网站建设比较好wordpress更改语言设置
  • 如何找做网站的客户wordpress适合视频网站吗
  • 网站建设的业务流程图拔萝卜视频播放在线观看免费
  • 建个网站要多少钱高安网站制作
  • dw设计模板百度ocpc如何优化
  • 苏宁网站优化与推广html教程网站
  • 怎么做网站网页免费高清屏幕录像
  • 网络推广哪个网站好亚马逊网站开发使用的什么方式
  • 佛山企业网站建设咨询怎么从零开始做网站