Linux系统访问卡顿、慢
- 1、查看磁盘使用情况
- 2、查看内存使用情况
- 3、查看磁盘IO使用情况
- 4、查看CPU使用情况
- 5、iostat的查询
1、查看磁盘使用情况
[root@localhost ~]# df -h
当发现磁盘使用率很高时,那就要释放磁盘空间了,删除一些不必要的文件
查看各个目录占用磁盘空间
查看指定目录的磁盘占用情况:du -sh /home/zzt
查看当前目录下的所有一级子目录和文件的磁盘使用情况:du -sh *
2、查看内存使用情况
[root@localhost ~]# free -g
当观察到free栏已为0的时候,表示内存基本被吃完了,那就需要释放内存
libux释放内存
sync
echo 3 > /proc/sys/vm/drop_caches
sync表示将内存缓存区内容立即同步到磁盘,为了保证安全可以多执行几次
Linux命令之sync命令详细
3、查看磁盘IO使用情况
[root@localhost ~]# iostat -x 1 #1表示1秒刷新一次
当发现最右侧%util很高时,表示IO就很高了,若想看哪个进程占用IO,执行iotop命令查看
CPU值说明:
%user | CPU处在用户模式下的时间百分比 |
---|---|
%nice | CPU处在带NICE值的用户模式下的时间百分比 |
%system | CPU处在系统模式下的时间百分比 |
%iowait | IO等待所占用的cup时间(重要) <30% (不同功能的服务器不同) |
%steal | 管理程序维护另一个虚拟处理器时,虚拟CPU的无意识等待时间百分比 |
%idle | CPU空闲时间百分比 |
注:
如果%iowait的值过高,表示硬盘存在I/O瓶颈,%idle值高,表示CPU较空闲,如果%idle值高但系统响应慢时,有可能是CPU等待分配内存,此时应加大内存容量。%idle值如果持续低于10,那么系统的CPU处理能力相对较低,表明系统中最需要解决的资源是CPU。
devicd值说明:
device | 磁盘名称 |
---|---|
tps | 每秒钟发送到的I/O请求数 |
kB_read/s | 每秒读取的block数 |
kB_wrtn/s | 每秒写入的block数 |
kB_read | 读入的block总数 |
kB_wrtn | 写入的block总数 |
4、查看CPU使用情况
[root@localhost ~]# top
下图中粉色框里表是cpu使用情况,最右侧的id表示剩余,若很低,则表示cpu被吃完了,在top界面按shift+p对进程使用cpu排序,能看到哪些进程占用cpu较多
5、iostat的查询
iostat -m 以m为单位显示所有信息
[root@localhost ~]# iostat -m
iostat -d sda 显示指定硬盘信息
[root@localhost ~]# iostat -d sda
iostat -t 报告每秒向终端读取和写入的字符数
[root@localhost ~]# iostat -t 2
iostat -d -k 2 1 查看TPS和吞吐量信息
[root@localhost ~]# iostat -d -k 2 1
说明:
tps: 该设备每秒的传输次数(Indicate the number of transfers per second that were issued to the device.)。
“一次传输”意思是“一次I/O请求”。
多个逻辑请求可能会被合并为“一次I/O请求”。“一次传输”请求的大小是未知的。
kB_read/s:每秒从设备(drive expressed)读取的数据量;
kB_wrtn/s: 每秒向设备(drive expressed)写入的数据量;
kB_read: 读取的总数据量;kB_wrtn:写入的总数量数据量;
iostat -d -x -k 1 1 查看设备使用率(%util)、响应时间(await)
[root@localhost ~]# iostat -d -x -k 1 1
注:
如果 %util 接近 100%,说明产生的I/O请求太多,
I/O系统已经满负荷,该磁盘可能存在瓶颈。
如果 svctm 比较接近 await,说明 I/O 几乎没有等待时间;
如果 await 远大于 svctm,说明I/O 队列太长,io响应太慢,则需要进行必要优化。
如果avgqu-sz比较大,也表示有当量io在等待。