系统调优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,从大到小排序显示所有进程列表
# ps -aux --sort -pcpu | more #按CPU降序排序
注:-pcpu可以显示出进程绝对路径,方便找出木马程序运行路径
系统中使用内存最多的进程
命令:top
运行top,然后按下大写的M,会按内存使用率来排序显示进程
安装实际使用内存,从大到小排序显示所有进程列表
# 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
# netstat -ntu | awk '{print $5}' | cut -d: -f4 | sort | uniq -c | sort -n
cut 截取
sort 排序
uniq 去重
查看最近登录的10个用户
last -a -n 10
top—-按1—能到是几核的CPU
cd /proc/14671
lsof -p PID
磁盘相关
显示当前路径下所有文件夹大小
# du -h --max-depth=0 *
# du -sh * | grep G
查看当前路径大小
# du -sh
查看进程:pstree -p
清理出空间,但磁盘并没有释放空间
https://www.cnblogs.com/xd502djj/p/6668632.html
内存相关
free 可用内存=free + buffers + cached
vmstat
/proc/meminfo
top
htop
# sync
# 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日创建的文件