系统调优4大子系统:

系统中使用CPU最多的进程:top -》 P 或 ps -axu —sort -pcpu

系统中使用内存最多的进程:top -》 M 或 ps -axu —sort -rss

系统中对磁盘读写最多的进程: iostat 和 iotop

系统中使用网络最多的进程:nload , iptraf ,nethogs

1.查看CPU负载相关工具

uptime命令:当前时间,系统运行时间,当前登录用户数,系统负载,既任务队列的平均长度,三个数值分别是1分钟、5分钟、15分钟前到现在的平均值

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

理论上:单核心,1分钟的系统平均负载不要超过3

查看CPU信息:cat /proc/cpuinfo

系统中使用CPU最多的进程

命令:top

运行top,然后按下数字键1,可以看到有几个CPU正在运行,按下大写P,会按CPU使用率来排序显示进程

按q退出top

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

  1. # ps -aux --sort -pcpu | more #按CPU降序排序

注:-pcpu可以显示出进程绝对路径,方便找出木马程序运行路径

系统中使用内存最多的进程

命令:top

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

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

  1. # ps -aux --sort -rss | more 内存降序排序(去掉减号就是升序)

第一行:系统当前时间、系统开机到现在运行时间、当前用户数、系统CPU负载信息(1分钟、5分钟、15分钟)

第二行:当前任务数、正在运行任务数、处于睡眠状态进程数、停止的进程数、僵死的进程数

第三行:

0.0%us:用户态进程占用CPU时间百分比

0.0%sy:内核占用CPU时间百分比

0.0%ni:renice值为负的任务的用户态进程的CPU时间百分比。nice是优先级的意思

100.0%id:空闲CPU时间百分比

0.0%wa:等待I/O的CPU时间百分比

0.0%hi:CPU硬中断时间百分比

0.0%si:CPU软中断时间百分比

第四行:

Mem: 2054588k total, 815752k used, 1238836k free, 102272k buffers

2054588k total:物理内存总数

815752k used: 使用的物理内存

1238836k free:空闲的物理内存

102272k buffers:用作缓存的内存

第五行:

Swap: 4128760k total, 0k used, 4128760k free, 488684k cached

4128760k total:交换空间的总量

0k used: 使用的交换空间

4128760k free:空闲的交换空间

488684k cached:缓存的交换空间

常用操作指令:

q:退出top命令

:立即刷

s:设置刷新时间间隔

c:显示命令完全模式

t::显示或隐藏进程和CPU状态信息

m:显示或隐藏内存状态信息

l:显示或隐藏uptime信息

f:增加或减少进程显示标志

S:累计模式,会把已完成或退出的子进程占用的CPU时间累计到父进程的MITE+

P:按%CPU使用率排行

T:按MITE+排行

M:按%MEM排行

u:指定显示用户进程

r:修改进程renice值

kkill:进程

i:只显示正在运行的进程

W:保存对top的设置到文件~/.toprc,下次启动将自动调用toprc文件的设置。

系统中对磁盘读写最多的进程

I/O调优相关查看工具

命令iostat:可以显示CPU和I/O系统负载情况及每个磁盘分区的读写状态信息

常用参数:

-d 仅显示磁盘统计信息

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

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

kB_read/s 每秒从驱动器读入的数据量,单位为K.

kB_wrtn/s 每秒向驱动器写入的数据量,单位为K.

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

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

-bash: iostat: command not found

yum install -y sysstat ## sysstat包中包括iostat,mpstat,sar,sa

avg-cpu段:

%user: 在用户级别运行所使用的CPU的百分比.

%nice: nice操作所使用的CPU的百分比.

%sys: 在系统级别(kernel)运行所使用CPU的百分比.

%iowait: CPU等待硬件I/O时,所占用CPU百分比.

%idle: CPU空闲时间的百分比.

Device段:

tps: 每秒钟发送到的I/O请求数.

Blk_read /s: 每秒读取的block数.

Blk_wrtn/s: 每秒写入的block数.

Blk_read: 读入的block总数.

Blk_wrtn: 写入的block总数.

进程

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

比如服务器很卡,查看CPU使用率不高,内存也够用,但就是卡,就可以查看此时使用最多磁盘读写的进程

命令iotop,常用参数:

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

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

退出,按q或者crtl+c

iotop -o -d 1 显示正在使用磁盘的进程

查看系统中使用网络最多的进程

使用nload监控总体带宽使用网络情况

yum install nload -y

nload 开始监控

Incoming 下载

Outgoing 上传

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

nethogs是一款小巧的“net top”工具,可以显示每个进程所使用的带宽,并对列表排序,会按耗用带宽降序排序

查看恶意访问服务器次数最多的IP并封掉

命令netstat:查看网络连接数,如果一个IP地址对服务器建立很多连接数(比如1分钟100个连接),就认为发生了DDOS

  1. # netstat -ntu | awk '{print $5}' | cut -d: -f4 | sort | uniq -c | sort -n
  2. cut 截取
  3. sort 排序
  4. uniq 去重

查看最近登录的10个用户

last -a -n 10

top—-按1—能到是几核的CPU

cd /proc/14671

lsof -p PID

磁盘相关

  1. 显示当前路径下所有文件夹大小
  2. # du -h --max-depth=0 *
  3. # du -sh * | grep G
  4. 查看当前路径大小
  5. # du -sh
  6. 查看进程:pstree -p

清理出空间,但磁盘并没有释放空间

https://www.cnblogs.com/xd502djj/p/6668632.html

内存相关

free 可用内存=free + buffers + cached
vmstat
/proc/meminfo
top
htop

  1. # sync
  2. # echo 1 > /proc/sys/vm/drop_caches

find ./ -type f -name “*.log” -newermt ‘2021-02-21’ ! -newermt ‘2021-02-25’ | xargs ls -lhrt —full-time

Linux找到特定时间创建的文件怎么找?比如去年1月1日- 1月5日创建的文件