宁波企业如何建网站网站开发工程师和软件工程
宁波企业如何建网站,网站开发工程师和软件工程,稳定的网站建设,wordpress 404判断简介
sar#xff08;System Activity Reporter 系统活动情况报告#xff09;是目前 Linux 上最为全面的系统性能分析工具之一#xff0c;可以从多方面对系统的活动进行报告#xff0c;包括#xff1a;文件的读写情况、系统调用的使用情况、磁盘 I/O、CPU 效率、内存使用状…简介
sarSystem Activity Reporter 系统活动情况报告是目前 Linux 上最为全面的系统性能分析工具之一可以从多方面对系统的活动进行报告包括文件的读写情况、系统调用的使用情况、磁盘 I/O、CPU 效率、内存使用状况、进程活动及 IPC 有关的活动等。
我们可以使用sar命令来获得整个系统性能的报告。这有助于我们定位系统性能的瓶颈并且有助于我们找出这些烦人的性能问题的解决方法。
Linux 内核维护着一些内部计数器这些计数器包含了所有的请求及其完成时间和 I/O 块数等信息sar命令从所有的这些信息中计算出请求的利用率和比例以便找出瓶颈所在。
性能问题排查技巧
怀疑 CPU 存在瓶颈可用sar -u和sar -q等来查看。怀疑 内存存在瓶颈可用sar -B、sar -r和sar -W等来查看。怀疑 I/O 存在瓶颈可用sar -b、sar -u和sar -d等来查看。
安装
sar命令来自于sysstat工具包如果提示sar命令不存在需先安装sysstat。
yum install systat语法
语法sar [选项] [参数]选项-A显示所有的报告信息-b显示I/O速率-B显示换页状态-c显示进程创建活动-d显示每个块设备的状态-e设置显示报告的结束时间-f从指定文件提取报告-i设状态信息刷新的间隔时间-n网络统计信息-R显示内存状态-P报告每个CPU的状态-u显示CPU整体的利用率-v显示索引节点文件和其他内核表的状态-w显示交换分区状态-x显示给定进程的状态。参数间隔时间每次报告的间隔时间秒次数显示报告的次数。示例
常用用法 sar [command] 2 5每2秒输出一次 sar [command]总计输入五次省略5表示持续输出。 sar -n DEV 1 -e 22:26:00 /tmp/123 每秒采样一次网络情况直到22:26并把采样数据输出到/tmp/123。 sar -f /var/log/sa/sa27 -s 23:00:00 -e 00:00:00 -r本月27日23点至0点的内存数据需要通过crontab设置定时任务。
CPU 状态统计
-p
-P {CPU_LIST | ALL}用于分析多核CPU的性能状况可以使用CPU_LIST分析指定核心的CPU状态可以使用离散值和连续值也可以使用ALL分析所有CPU核心状态。
[fenglepengcentos]# sar -P 0 1 3 # 表示每秒采集0号CPU状态总共采样3次。
Linux 3.10.0-1160.11.1.el7.x86_64 (template-centos7) 12/21/2022 _x86_64_ (4 CPU)11:15:32 AM CPU %user %nice %system %iowait %steal %idle
11:15:33 AM 0 2.97 0.00 0.99 0.00 0.00 96.04
11:15:34 AM 0 1.02 0.00 1.02 0.00 0.00 97.96
11:15:35 AM 0 2.00 0.00 2.00 0.00 0.00 96.00
Average: 0 2.01 0.00 1.34 0.00 0.00 96.66CPU0 表示采集的是 0 号CPUall 表示统计信息为所有 CPU 的平均值。%user指运行非特权用户进程时间百分率。%nice是指运行特权用户进程时间百分率。%system是指运行内核进程时间这个时间包括了CPU处理软硬中断的时间。%iowait是指等待I/O完成的时间。%steal是指运行虚拟机的时间百分率steal意味着被偷走的时间。%idle是指cpu空闲时间百分率我的机器上并未运行任何程序所以此列一直为100%。
注意说明
若 %iowait 的值过高表示硬盘存在I/O瓶颈。若 %idle 的值高但系统响应慢时有可能是 CPU 等待分配内存此时应加大内存容量。若 %idle 的值持续低于1则系统的 CPU 处理能力相对较低表明系统中最需要解决的资源是 CPU。
-u
-u[ALL]报告cpu使用情况与-p不同的是-u只能报告所有cpu。ALL选项输出详细信息。
[fenglepengcentos]# sar -u 1 3
Linux 3.10.0-1160.11.1.el7.x86_64 (template-centos7) 12/21/2022 _x86_64_ (4 CPU)11:18:56 AM CPU %user %nice %system %iowait %steal %idle
11:18:57 AM all 0.75 0.00 0.50 0.00 0.00 98.74
11:18:58 AM all 0.75 0.00 1.00 0.00 0.00 98.25
11:18:59 AM all 1.00 0.00 1.00 0.00 0.00 97.99
Average: all 0.84 0.00 0.84 0.00 0.00 98.33%usr和-P的%user的区别在于%usr不包括虚拟机运行的时间。%sys和-P的%system的区别在于%sys不包括各种软硬中断时间。%irq是指处理硬中断的cpu时间百分率。%soft是指处理软中断的cpu时间百分率。%guest和%gnice分别指运行普通虚拟程序和特权虚拟程序的时间百分率
-q
-q用于报告队列长度以及平均负载。
[fenglepengcentos]# sar -q 1 3
Linux 3.10.0-1160.11.1.el7.x86_64 (template-centos7) 12/21/2022 _x86_64_ (4 CPU)11:21:52 AM runq-sz plist-sz ldavg-1 ldavg-5 ldavg-15 blocked
11:21:53 AM 1 274 0.01 0.05 0.05 0
11:21:54 AM 2 274 0.01 0.05 0.05 0
11:21:55 AM 1 274 0.01 0.05 0.05 0
Average: 1 274 0.01 0.05 0.05 0runq-sz等待cpu调度的任务数。plist-sz处于任务列表的任务总数。ldavg-1ldavg-5ldavg-15分别指1分钟5分钟15分钟内cpu的负载。blocked表示等待I/O完成而被阻塞的任务总数不为0则需要留意I/O是否存在性能瓶颈。
-w
-w报告进程上下文切换的次数。
[fenglepengcentos]# sar -w 1 3
Linux 3.10.0-1160.11.1.el7.x86_64 (template-centos7) 12/21/2022 _x86_64_ (4 CPU)11:22:40 AM proc/s cswch/s
11:22:41 AM 1.00 470.00
11:22:42 AM 0.00 554.00
11:22:43 AM 1.00 576.00
Average: 0.67 533.33proc/s:指每秒创建的进程数。cswch/s:指每秒自愿上下文切换的次数是指进程无法获取所需资源导致的上下文切换。比如说 I/O、内存等系统资源不足时就会发生自愿上下文切换。 还有一个非自愿的上下文切换次数nvcswch/s表示则是指进程由于时间片已到等原因被系统强制调度进而发生的上下文切换。非自愿次数明显升高意味着cpu产生了性能瓶颈。非自愿上下文切换可以使用pidstat加上-w选项来输出。
内存状态统计
-r
-r [-h]输出内存使用率统计信息-h输出更加利于阅读的结果。
[fenglepengcentos]# sar -r 1 3
Linux 3.10.0-1160.11.1.el7.x86_64 (template-centos7) 12/21/2022 _x86_64_ (4 CPU)11:25:33 AM kbmemfree kbmemused %memused kbbuffers kbcached kbcommit %commit kbactive kbinact kbdirty
11:25:34 AM 267436 7722624 96.65 8 5884448 2678356 26.55 4260324 2498512 52
11:25:35 AM 267452 7722608 96.65 8 5884448 2678356 26.55 4260324 2498512 52
11:25:36 AM 267452 7722608 96.65 8 5884448 2678356 26.55 4260328 2498512 52
Average: 267447 7722613 96.65 8 5884448 2678356 26.55 4260325 2498512 52kbmemfree剩余内存总量。kbavail可用内存总量可用内存≈剩余内存buffercache。kbmemused使用的内存总量使用量总内存-剩余内存-buffer-cache-slab。kbbuffers被内核用来作为buffer的内存量。kbcached被内核用来作为cache的内存量。kbcommit当前工作负载下可以保证不出现内存不足的内存量。%commit指kbcommit占内存/swap的百分率。kbactive当前活跃内存量。除非万不得已这部分内存才会被回收。kbinact当前非活跃内存总量当内存不足时这部分内存最容易被内核收回。kbdirty脏页大小脏页指的是暂存于内存还没来得及持久化到硬盘的数据。可以使用sync刷入硬盘。
-B
-B报告系统中分页统计信息。
[fenglepengcentos]#sar -B 1 3
Linux 3.10.0-1160.11.1.el7.x86_64 (template-centos7) 12/21/2022 _x86_64_ (4 CPU)11:26:53 AM pgpgin/s pgpgout/s fault/s majflt/s pgfree/s pgscank/s pgscand/s pgsteal/s %vmeff
11:26:54 AM 0.00 0.00 37.00 0.00 108.00 0.00 0.00 0.00 0.00
11:26:55 AM 0.00 9.00 33.00 0.00 50.00 0.00 0.00 0.00 0.00
11:26:56 AM 0.00 9.00 23.00 0.00 63.00 0.00 0.00 0.00 0.00
Average: 0.00 6.00 31.00 0.00 73.67 0.00 0.00 0.00 0.00pgpgin/s表示每秒从磁盘中换入内存的字节数。pgpgout/s表示每秒从内存换出到磁盘的字节数。fault/s表示系统每秒产生的缺页异常报告主缺页和次缺页这不是产生I/O的缺页中断的次数因为部分缺页中断不需要I/O就能处理。majflt/s表示每秒产生的主缺页异常。pgfree/s每秒被系统放到空闲列表的分页数量。pgscank/s每秒被内核线程[kswapd]扫描的分页数量。pgscand/s每秒被直接扫描的数量。pgsteal/s系统为满足其内存需求声明每秒从cache(分页缓存和swap缓存)回收的页的数量。%vmeff这个指标由pgsteal/(pgscandpgscank)得到这是一个衡量页面回收效率的指标。
-S
-s [h]输出swap空间的使用率统计信息。
[fenglepengcentos]# sar -S 1 3
Linux 3.10.0-1160.11.1.el7.x86_64 (template-centos7) 12/21/2022 _x86_64_ (4 CPU)112803 AM kbswpfree kbswpused %swpused kbswpcad %swpcad
11:28:04 AM 2097148 0 0.00 0 0.00
11:28:05 AM 2097148 0 0.00 0 0.00
11:28:06 AM 2097148 0 0.00 0 0.00
Average: 2097148 0 0.00 0 0.00kbswpfree未使用的swap量。kbswpused使用中的swap内存量。%swpused使用中的swap内存量占总swap的百分率。kbswpcad被swap缓存的内存量这部分内存曾经被换出现在又被换入但仍然位于swap空间。%swpcadkbswpcad占kbswpused的百分率。
-W
-W 统计输出swap换入换出信息。
[fenglepengcentos]#sar -W 1 3
Linux 3.10.0-1160.11.1.el7.x86_64 (template-centos7) 12/21/2022 _x86_64_ (4 CPU)11:28:52 AM pswpin/s pswpout/s
11:28:53 AM 0.00 0.00
11:28:54 AM 0.00 0.00
11:28:55 AM 0.00 0.00
Average: 0.00 0.00pswpin/s每秒换入swap的内存量。pswpout/s每秒换出swap的内存量。
若这两项数值很高表示内存短缺导致需要频繁换入换出。
I/O篇状态统计
-b
-b报告I/O及传输速率统计信息。
[fenglepengcentos]#sar -b 1 3
Linux 3.10.0-1160.11.1.el7.x86_64 (template-centos7) 12/21/2022 _x86_64_ (4 CPU)11:29:34 AM tps rtps wtps bread/s bwrtn/s
11:29:35 AM 0.00 0.00 0.00 0.00 0.00
11:29:36 AM 0.00 0.00 0.00 0.00 0.00
11:29:37 AM 5.00 0.00 5.00 0.00 87.00
Average: 1.67 0.00 1.67 0.00 29.00tps每秒钟加到物理设备上的传输总量。一次传输就是加到物理设备的一次I/O请求由于多次逻辑请求可以合并为单次的I/O请求所以一次传输的大小是不确定的。rtps每秒加到物理设备的读请求总数。wtps每秒加到物理设备上的写请求总数。dtps每秒丢弃的请求总数。bread/s以块为单位每秒钟从磁盘读取的数据总量块的大小等同于一个扇区的大小512字节。bwrtn/s以块为单位每秒钟写入磁盘的数据总量。bdscd/s以块为单位丢弃的数据总量。
-d
-d -h[--devdev_list]报告块设备的活动情况。
[fenglepengcentos]#sar -d 1 1
Linux 3.10.0-1160.11.1.el7.x86_64 (template-centos7) 12/21/2022 _x86_64_ (4 CPU)11:30:26 AM DEV tps rd_sec/s wr_sec/s avgrq-sz avgqu-sz await svctm %util
11:30:27 AM dev2-0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
11:30:27 AM dev8-16 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
11:30:27 AM dev8-0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
11:30:27 AM dev253-0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
11:30:27 AM dev253-1 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00Average: DEV tps rd_sec/s wr_sec/s avgrq-sz avgqu-sz await svctm %util
Average: dev2-0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
Average: dev8-16 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
Average: dev8-0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
Average: dev253-0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
Average: dev253-1 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00tps和-b的tps含义一样都表示每秒钟加到物理设备上的传输总量。rkB/s每秒从设备读到的字节数。wkB/s每秒写入设备的字节数。areq-sz加到设备上I/O请求平均大小(以字节为大小)。aqu-sz加到设备上请求长度的平均值。await加到设备上I/O请求的平均响应时间这个时间包括了请求处于等待队列中的时间。%util加到设备上I/O请求所用的时间百分比对于串行设备接近100%意味着设备出现了性能瓶颈但是对于并行设备比如RAID或者SSD这个值实际上并不能反映出设备的极限。
-v
-v报告inode文件以及其他内核表状态。
Linux 3.10.0-1160.11.1.el7.x86_64 (template-centos7) 12/21/2022 _x86_64_ (4 CPU)11:31:03 AM dentunusd file-nr inode-nr pty-nr
11:31:04 AM 259766 2112 252444 1
Average: 259766 2112 252444 1dentunusd目录缓存中未使用的缓存项数。file-nr系统使用的文件句柄数查看目前使用的文件句柄数lsof|awk {print $2}|wc -l。inode-nr系统使用的inode处理程序数。pty-nr:打开的伪终端数即几个人登陆了系统。
网络篇状态统计
-n
sar -n { DEV | EDEV | NFS | NFSD | SOCK | ALL }sar 提供六种不同的语法选项来显示网络信息。
DEV显示网络接口信息。EDEV显示关于网络错误的统计数据。NFS统计活动的NFS客户端的信息。NFSD统计NFS服务器的信息。SOCK显示套接字信息。ALL显示所有5个开关。它们可以单独或者一起使用。
如果你使用DEV关键字那么sar将汇报和网络设备相关的信息如loens160等例如
[fenglepengcentos]# sar -n DEV 1 1
Linux 3.10.0-1160.11.1.el7.x86_64 (template-centos7) 12/21/2022 _x86_64_ (4 CPU)11:31:48 AM IFACE rxpck/s txpck/s rxkB/s txkB/s rxcmp/s txcmp/s rxmcst/s
11:31:49 AM lo 0.00 0.00 0.00 0.00 0.00 0.00 0.00
11:31:49 AM ens160 13.00 2.00 1.24 0.35 0.00 0.00 0.00Average: IFACE rxpck/s txpck/s rxkB/s txkB/s rxcmp/s txcmp/s rxmcst/s
Average: lo 0.00 0.00 0.00 0.00 0.00 0.00 0.00
Average: ens160 13.00 2.00 1.24 0.35 0.00 0.00 0.00IFACE网络接口。rxpck/s每秒接收的报文数。txpck/s每秒发送的报文数。rxkB/s每秒接收的字节数,rxkB/s * 1024 / rxpck/s 60B,意味着收到的是小包。txkB/s每秒发送的字节数。rxcmp/s每秒接收的压缩数据包数。txcmp/s每秒发送的压缩数据包数。rxmcst/s每秒接收的多播数据包数。%ifutil网络接口的利用率百分比对于半双工接口利用率使用rxkB/s和txkB/s之和作为接口速度的百分比计算。对于全双工这是rxkB/s或txkB/s中的较大值。。
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/92614.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!