常见调优命令的使用
cpu负载相关的工具
- 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 可以显示绝对路径,方便找出木马进程
- 查看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
- 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 硬盘的使用报告
推荐阅读
- Python|Python argparse 解析命令行参数模块详情
- linux常见命令chgrp/chown/chmod
- 为什么Java有GC调优而没听说过有CLR的GC调优
- linux|Linux curl 命令详解
- Java磨刀不误砍柴工|Windows安装curl及基本命令
- shell命令|Shell命令(curl之手动给中文参数编码)
- gem5|WSL 安装 gem5
- vi/vim复制粘贴命令
- Linux系统打包解压参数
- 面试必问Linux|面试必问Linux 命令su和sudo的区别解析