CentOS 7 系统优化

淺唱寂寞╮ 提交于 2020-01-09 23:44:11

系统调优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中的数字  >=3  负载过高,如果服务器的CPU为4核心,则load average中的数字  >=12  负载过高

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

 

使用top命令

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

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

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

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

使用top命令

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

[root@jumpserver ~]# top

 

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

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

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 /

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

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

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    # 产生一些测试数据
  

查看结果:

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

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

 

 

 

 

 

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!