常见调优命令的使用

cpu负载相关的工具

  1. uptime
[root@xinsz08-1 ~]# uptime 15:34:07 up2:55,4 users,load average: 0.00, 0.00, 0.00

15:34:07 : 当前时间
up 2:55 系统运行时间
4 users: 当前用户登录数
[root@xinsz08-1 ~]# w 15:35:51 up2:57,4 users,load average: 0.00, 0.00, 0.00 USERTTYFROMLOGIN@IDLEJCPUPCPU WHAT roottty1:011Feb20 22days8.44s8.44s /usr/bin/Xorg rootpts/0:0.011Feb201:13m0.02s0.02s /bin/bash rootpts/1192.168.1.4Mon152days0.06s0.06s -bash rootpts/2192.168.1.414:190.00s0.31s0.15s w

load average: 0.00, 0.00, 0.00 系统负载,也就是任务队列的平均长度。三个数值分别表示 1分钟,5分钟,15分钟前到现在的平均值
举例:
服务器A DELL R720 load average:1.11, 0.08, 0.01 1核
服务器B DELL R730 load average: 5.25, 7.22, 60.1 1核
服务器C DELL R720 load average:10.15, 1011, 10.01 4核
答案: 服务器B负载过高
经验: 单核心,1分钟内系统平均负载不超过3. 4核心不要超过12.
从高往低说明负载是下降的
从低往高的说明负载上升的
问题1.: 找出系统中占用CPU最多的进程
问题2: cpu一直飚高,如何处理
[root@xinsz08-1 ~]# top top - 15:51:57 up3:13,4 users,load average: 0.00, 0.00, 0.00 Tasks: 164 total,1 running, 163 sleeping,0 stopped,0 zombie Cpu(s):0.0%us,0.3%sy,0.0%ni, 99.7%id,0.0%wa,0.0%hi,0.0%si,0.0%st Mem:3925824k total,974300k used,2951524k free,93056k buffers Swap:285688k total,0k used,285688k free,431884k cachedPID USERPRNIVIRTRESSHR S %CPU %MEMTIME+COMMAND 264 root200000 S0.30.00:00.59 jbd2/sda2-8 1521 root200255m 8612 5208 S0.30.20:12.18 vmtoolsd 1 root200 19364 1556 1232 S0.00.00:01.48 init 2 root200000 S0.00.00:00.00 kthreadd 3 rootRT0000 S0.00.00:00.00 migration/0 4 root200000 S0.00.00:00.12 ksoftirqd/0

按照实际使用cpu,从大到小来排序显示所有进程
[root@xinsz08-1 ~]# ps -aux --sort -pcpu |more
-pcpu 可以显示绝对路径,方便找出木马进程
  1. 查看cpu信息
[root@xinsz08-1 ~]# cat /proc/cpuinfo processor : 0支持一个cpu vendor_id : GenuineIntel cpu family : 6 model: 94 model name : Intel(R) Core(TM) i7-6700HQ CPU @ 2.60GHz stepping : 3 cpu MHz: 2592.002 cache size : 6144 KB

问题: ps 中的VIRT , RES, HSR?
VIRT:virtual memory usage 虚拟内存
1、进程“需要的”虚拟内存大小,包括进程使用的库、代码、数据等;
2、假如进程申请100m的内存,但实际只使用了10m,那么它会增长100m,而不是实际的使用.
RES:resident memory usage 常驻内存
1、进程当前使用的内存大小,但不包括swap out;
2、包含其他进程的共享;
3、如果申请100m的内存,实际使用10m,它只增长10m,与VIRT相反;
4、关于库占用内存的情况,它只统计加载的库文件所占内存大小。
SHR:shared memory 共享内存
1、除了自身进程的共享内存,也包括其他进程的共享内存;
2、虽然进程只使用了几个共享库的函数,但它包含了整个共享库的大小;4
  1. mpstat
[root@xinsz08-1 ~]# mpstat Linux 2.6.32-431.el6.x86_64 (xinsz08-1)2020年03月05日_x86_64_(1 CPU)16时14分30秒CPU%usr%nice%sys %iowait%irq%soft%steal%guest%idle 16时14分30秒all0.300.010.390.950.000.010.000.0098.33 [root@xinsz08-1 ~]#

问题: 你们公司用的操作系统是什么?
low: 我们用的centos
high: 我们用的是centos6.7的版本
great: 我们用的centos, 系统版本6.7,内核用的是2.6.32-431 64位的
%usr 用户控件CPU使用占比
%nice 低优先级进程使用CPU占比,nice大于0
%sys 内核空间CPU使用占比
%iowait cpu等待Io占比
%irq cpu处理硬中断占比
%soft 处理软中断的cpu占比
%steal %guest 与虚拟机有关
%idle cpu空间时间占比
内存相关的运行状态工具
free
[root@xinsz08-1 ~]# free -m totalusedfreesharedbufferscached Mem:38339492884091421 -/+ buffers/cache:4353397 Swap:2780278 [root@xinsz08-1 ~]#

[root@xinsz08-1 ~]# cat /proc/meminfo MemTotal:3925824 kB MemFree:2953928 kB Buffers:93632 kB Cached:432000 kB SwapCached:0 kB Active:433664 kB活跃内存 Inactive:333508 kB非活跃的内存 Active(anon):241564 kB Inactive(anon):4332 kB Active(file):192100 kB

查看与io运行相关的工具
[root@xinsz08-1 ~]# 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字节 Fragment size:1024 Flex block group size:16 Inode size:128 [root@xinsz08-1 ~]#

如何通过iostat查看IO是否存在瓶颈
【root@xinsz08-1 ~]# rpm -ivh /mnt/Packages/sysstat-9.0.4-22.el6.x86_64.rpm warning: /mnt/Packages/sysstat-9.0.4-22.el6.x86_64.rpm: Header V3 RSA/SHA256 Signature, key ID fd431d51: NOKEY Preparing...########################################### [100%] package sysstat-9.0.4-22.el6.x86_64 is already installed [root@xinsz08-1 ~]# iostat -d -k -p/dev/sda Linux 2.6.32-431.el6.x86_64 (xinsz08-1)2020年03月05日_x86_64_ (1 CPU)Device:tpskB_read/skB_wrtn/skB_readkB_wrtn sda2.5435.367.39495578103499 sda10.050.790.001102147 sda22.4634.427.38482425103452 sda30.020.110.0015280

查看Network运行相关的一些工具
1) nload 监控总体带宽的使用情况
[root@xinsz08-64 ~]# yum install epel-release -y[root@xinsz08-64 ~]# yum install nload[root@xinsz08-64 ~]# nload//实时监控 [root@xinsz08-64 html]# ab -n 100 -c 2 http://www.baidu.com/index.html

2) nethogs 过滤使用带宽最多的进程
实验环境: centos7
wget http://dl.fedoraproject.org/pub/epel/7/x86_64/Packages/n/nethogs-0.8.5-1.el7.x86_64.rpm
rpm -ivh nethogs-0.8.5-1.el7.x86_64.rpm
执行 nethogs
在另一个终端使用wget下载,来查看nethogs的实时变化
常见调优命令的使用
文章图片

sar: 用来记录系统一段时间的运行状态
安装
[root@xinsz08-64 html]# yum install sysstat

sysstat 工具包可以把检测到的信息保存下来,存到/var/log/sa 目录。 sar默认显示每10分钟 统计一次状态信息。
格式: sar 命令行常用格式: sar [options] -A [-o file] t [n]
-n 网络接口的情况
-u cpu使用率
-d 硬盘的使用报告
-o 文件名 打印到屏幕并采样结果以二进制的方式存入当前目录下的文件夹重
-f 文件名 查看之前保存的二进制文件
举例: 每2秒钟采样一次,连续采样5此, 观察CPU使用情况,并且将采样结果以二进制的形式存入当前目录文件下的cup.sar中
[root@xinsz08-64 ~]# sar -u 2 5 -o cpu.sar Linux 2.6.32-696.el6.x86_64 (xinsz08-64)2020年03月06日_x86_64_(1 CPU)16时20分48秒CPU%user%nice%system%iowait%steal%idle 16时20分50秒all0.000.0013.101.790.0085.12 16时20分52秒all0.000.001.010.000.0098.99 16时20分54秒all0.500.001.490.000.0098.01 16时20分56秒all0.000.001.510.500.0097.99 16时20分58秒all0.000.001.520.000.0098.48 平均时间:all0.100.003.420.410.0096.06

%user cpu处在用户模式下的时间百分比
%system cpu处在系统模式的时间百分比
%iowait cpu 等待输入输出的完成时间的百分比
%idle cpu空闲的百分比
如何查看生成的文件
[root@xinsz08-64 ~]# sar -u -f cpu.sar

举例: 使用sar查看计划任务
vim /etc/cron.d/sysstat
读取日志 ls /var/log/sa
查看网络接口的流量情况 sar -n DEV -f /var/log/sa/sa04
【常见调优命令的使用】-r 表示查看内存
-d 硬盘的使用报告

    推荐阅读