Linux&&CPU瓶颈处理&&sar


抄抄抄,啦啦啦
参考资料:
https://mp.weixin.qq.com/s/JcEtIfvvLs4ze0ZpLCfVCg

sar

sar的用途

sar 命令用用收集、报告、或者保存 UNIX / Linux 系统的活动信息。它保存选择的计数器到操作系统的 /var/log/sa/sadd 文件中。从收集的数据中,你可以得到许多关于你的服务器的信息:

  • CPU 使用率
  • 内存页面和使用率
  • 网络 I/O 和传输统计
  • 进程创建活动
  • 所有的块设备活动
  • 每秒中断数等等

sar 的安装

看看参考资料啦

sar的命令

使用 sar 命令去显示操作系统中选定的累积活动计数器输出。

实时获得 CPU 使用率的报告

sar -u 3 10

Linux 2.6.18-164.2.1.el5 (www-03.nixcraft.in)   12/14/2009
 
09:49:47 PM CPU %user %nice %system %iowait %steal %idle
09:49:50 PM all 5.66 0.00 1.22 0.04 0.00 93.08
09:49:53 PM all 12.29 0.00 1.93 0.04 0.00 85.74
09:49:56 PM all 9.30 0.00 1.61 0.00 0.00 89.10
09:49:59 PM all 10.86 0.00 1.51 0.04 0.00 87.58
09:50:02 PM all 14.21 0.00 3.27 0.04 0.00 82.47
09:50:05 PM all 13.98 0.00 4.04 0.04 0.00 81.93
09:50:08 PM all 6.60 6.89 1.26 0.00 0.00 85.25
09:50:11 PM all 7.25 0.00 1.55 0.04 0.00 91.15
09:50:14 PM all 6.61 0.00 1.09 0.00 0.00 92.31
09:50:17 PM all 5.71 0.00 0.96 0.00 0.00 93.33
Average: all 9.24 0.69 1.84 0.03 0.00 88.20

3 表示间隔时间
10 表示次数

,输入:

查看进程创建的统计数据

sar -c 3 10

查看 I/O 和传输率统计数据

sar -b 3 10

查看内存页面统计数据

sar -B 3 10

查看块设备统计数据

sar -d 3 10

查看所有中断的统计数据

sar -I XALL 3 10

查看网络设备特定的统计数据

sar -n DEV 3 10
sar -n EDEV 3 10

查看 CPU 特定的统计数据

sar -P ALL
# Only 1st CPU stats
sar -P 1 3 10

查看队列长度和平均负载的统计数据

sar -q 3 10

查看内存和交换空间的使用统计数据

sar -r 3 10
sar -R 3 10

查看 inode、文件、和其它内核表统计数据状态

sar -v 3 10

查看系统切换活动统计数据

sar -w 3 10

查看交换统计数据

sar -W 3 10

查看一个 PID 为 3256 的 Apache 进程

sar -x 3256 3 10

识别 Linux 服务器的 CPU 瓶颈

使用 sar 命令和 kSar 工具,可以得到内存、CPU、以及其它子系统的详细快照。例如,如果 CPU 使用率在一个很长的时间内持续高于 80%,有可能就是出现了一个 CPU 瓶颈。使用 sar -x ALL 你可以找到大量消耗 CPU 的进程。

mpstat 命令 的输出(sysstat 包的一部分)也会帮你去了解 CPU 的使用率。但你可以使用 kSar 很容易地去分析这些信息。

找出 CPU 瓶颈后 …

对 CPU 执行如下的调整:

  1. 确保没有不需要的进程在后台运行。关闭 Linux 上所有不需要的服务。
  2. 使用 cron 在一个非高峰时刻运行任务(比如,备份)。
  3. 使用top 和 ps 命令 去找出所有非关键的后台作业/服务。
  4. 使用 renice 命令 去调整低优先级作业。
  5. 使用 taskset命令去设置进程使用的 CPU (卸载所使用的 CPU),即,绑定进程到不同的 CPU 上。例如,在 2# CPU 上运行 MySQL数据库,而在 3# CPU 上运行 Apache。
  6. 确保你的系统使用了最新的驱动程序和固件。 如有可能在系统上增加额外的 CPU。
  7. 为单线程应用程序使用更快的 CPU(比如,Lighttpd web 服务器应用程序)。
  8. 为多线程应用程序使用多个CPU(比如,MySQL 数据库服务器应用程序)。
  9. 为一个 web 应用程序使用多个计算节点并设置一个 负载均衡器。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章