系统调优4大子系统

  • 1:找出系统中使用CPU最多的进程
  • 2:找出系统中使用内存最多的进程
  • 3:找出系统中对磁盘读写最多的进程
  • 4:找出系统中使用网络最多的进程

系统调优概述

系统的运行状况:  CPU->  MEM  ->  DISK->  NETWORK  ->  应用程序调优

系统性能优化的4个子系统:

    CPU

    Memory

    IO

    Network

 

1.找出系统中使用CPU最多的进程

查看CPU负载相关工具uptime命令



[root@jumpserver ~]# uptime
 19:13:35 up  3:59,  1 user,  load average: 0.00, 0.01, 0.05



其内容如下:

19:13:35

当前时间

up 3:59

系统运行时间 ,说明此服务器连续运行3小时59分钟了

1 user

当前登录用户数

load average: 0.00, 0.01, 0.05

系统负载,即任务队列的平均长度。 三个数值分别为  1分钟、5分钟、15分钟前到现在的平均值

 

 

 

 

 

 

 

如果服务器的CPU为1核心,则load average中的数字CPU为4核心,则load average中的数字  >=12  负载过高

单核心,1分钟的系统平均负载不要超过3,就可以

 

使用top命令

运行top , 找出使用CPU最多的进程 ,按大写的P,可以按CPU使用率来排序显示

centos CPU性能模式 centos7 cpu频率_ios

按照实际使用CPU ,从大到小排序显示所有进程列表



[root@jumpserver ~]# ps -aux --sort -pcpu | less    #按cpu降序排序查看
# -pcpu 可以显示出进程绝对路径,方便找出木马程序运行的路径



2.找出系统中使用内存最多的进程

使用top命令

运行top  , 然后按下大写的M 可以按内存使用率来排序显示



[root@jumpserver ~]# top


 

centos CPU性能模式 centos7 cpu频率_ios_02

 按照实际使用内存 ,从大到小排序显示所有进程列表



[root@jumpserver ~]# ps -aux  --sort -rss | less    # 内存降序排序



centos CPU性能模式 centos7 cpu频率_运维_03

3、找出系统中对磁盘读写最多的进程

查看系统中哪个磁盘或分区最繁忙

通过iostat命令查看IO是否存在瓶颈

常用参数 :

-d 仅显示磁盘统计信息

-k 以K为单位显示每秒的磁盘请求数,默认单位块

-p device | ALL 用于显示块设备及系统分区的统计信息

安装iostat

 



[root@jumpserver ~]# yum -y install sysstat
[root@jumpserver ~]#  iostat -d -k -p /dev/sda
Linux 3.10.0-862.el7.x86_64 (jumpserver)     2018年08月06日     _x86_64_    (4 CPU)

Device:            tps    kB_read/s    kB_wrtn/s    kB_read    kB_wrtn
sda               0.49        17.71         4.42     305878      76321
sda1              0.06         1.40         0.12      24105       2048
sda2              0.42        16.26         4.30     280725      74273



每列含意 :

kB_read/s   每秒从磁盘读入的数据量,单位为K

kB_wrtn/s    每秒向磁盘写入的数据量,单位为K

kB_read    读入的数据总量,单位为K

kB_wrtn    写入的数据总量,单位为K

 

给磁盘写入一些内容 , 写入时尽可能不读磁盘



[root@jumpserver ~]# dd if=/dev/zero  of=a.txt bs=10M  count=1000 ;  sync
# 读入的数据用/dev/zero , /dev/zero不会读磁盘
# #把内存中的数据快速写到磁盘上。 只做dd不执行sync,不容易看不出写入效果

[root@jumpserver ~]#  iostat  -p sda -dk
Linux 3.10.0-862.el7.x86_64 (jumpserver)     2018年08月06日     _x86_64_    (4 CPU)

Device:            tps    kB_read/s    kB_wrtn/s    kB_read    kB_wrtn
sda               1.43        36.59       460.93     669406    8432993
sda1              0.06         1.32         0.11      24105       2048
sda2              1.37        35.21       460.82     644253    8430945



查看哪个进程使用磁盘读写最多

iotop命令,查看哪个进程使用磁盘读写最多

安装iotop

参数:

-o, -only 只显示在读写硬盘的程序

-d SEC, -delay=SEC  设定显示时间间隔  刷新时间

退出 ,按q或ctrl+C



[root@jumpserver ~]# yum -y install iotop



[root@jumpserver ~]# iotop -o -d 1  # 显示正在使用磁盘的进程



在另一个终端对磁盘进行大量读操作 ,执行 :



[root@jumpserver ~]# find /



centos CPU性能模式 centos7 cpu频率_ios_04

已经知道怎么找出使用系统的cpu ,内存 ,磁盘最多的进程 

哪怎么找出系统中使用网络最多的进程呢

centos CPU性能模式 centos7 cpu频率_数据_05

windows中有流量显示 ,双击后,可以查到每个进程使用的流量 , Linux有吗

Linux 可以使用nload

找出系统中使用网络最多的进程

1.使用nload监控总体带宽使用情况

2.使用nethogs找出使用带宽最多的进程

安装nload :



[root@jumpserver ~]# yum -y install nload
[root@jumpserver ~]# nload    # 开始监控



然后另一个终端上运行 :



[root@jumpserver ~]# yum -y install httpd
[root@jumpserver ~]# systemctl start httpd
[root@jumpserver ~]# ab -n 1000 -c 2 http://www.baidu.com/index.html    # 产生一些测试数据



查看结果:

centos CPU性能模式 centos7 cpu频率_ios_06

Incoming : 下载   Outgoing  :上传

2.使用nethogs找出使用带宽最多的进程

安装nethogs :



[root@jumpserver ~]# yum -y install nethogs
[root@jumpserver ~]# nethogs



在另一个终端生成一些数据 :



[root@jumpserver ~]# wget http://mirrors.zju.edu.cn/centos/7/isos/x86_64/CentOS-7-x86_64-DVD-1804.iso



centos CPU性能模式 centos7 cpu频率_ios_07

可以看到进程号 , 用户 , 进程都可以看到