Linux进阶之性能优化与监控
- 一、系统性能监控
- 1、使用 `top` 监控系统性能
- 2、使用 `iotop` 监控 I/O 性能
- 3、使用 `nmon` 进行综合性能监控
- 二、性能调优
- 1、内存优化
- 2、CPU 优化
- 3、I/O 优化
- 三、小结
Linux 提供了多种工具和方法来监控系统性能并进行调优。本章将详细介绍如何使用 top
、iotop
、nmon
等工具监控性能,以及如何优化内存、CPU 和 I/O 性能,帮助系统保持最佳状态。
一、系统性能监控
1、使用 top
监控系统性能
概述
top
是一个实时监控系统性能的工具,显示 CPU、内存使用率以及活跃的进程信息。
基本用法
top
主要信息:
- 第一行:系统运行时间、用户数量、系统负载。
- 第二行:任务数量和状态(运行中、睡眠中等)。
- 第三行:CPU 使用率(用户、系统、空闲)。
- 第四、五行:内存和交换分区使用情况。
常用快捷键
q
:退出。h
:帮助。k
:杀死进程。Shift+p
:按 CPU 使用率排序。Shift+m
:按内存使用率排序。
示例输出
top - 10:12:34 up 2 days, 3:45, 2 users, load average: 0.24, 0.35, 0.45
Tasks: 98 total, 2 running, 96 sleeping, 0 stopped, 0 zombie
%Cpu(s): 5.2 us, 2.1 sy, 0.0 ni, 92.7 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
MiB Mem : 7984.3 total, 5123.4 free, 1874.6 used, 986.3 buff/cache
MiB Swap: 2048.0 total, 2048.0 free, 0.0 used. 5814.5 avail Mem
2、使用 iotop
监控 I/O 性能
概述
iotop
用于监控系统的 I/O 活动,显示每个进程的 I/O 使用情况。
安装
sudo apt install iotop # 对于 Debian/Ubuntu
sudo yum install iotop # 对于 CentOS
用法
sudo iotop
常见选项:
-o
:仅显示有 I/O 活动的进程。-a
:显示累积 I/O 使用。
示例输出
Total DISK READ: 5.0 K/s | Total DISK WRITE: 1.0 M/s
TID PRIO USER DISK READ DISK WRITE COMMAND
1234 be/4 root 0.00 B/s 5.0 K/s some_process
5678 be/4 user 1.0 K/s 1.0 M/s another_process
3、使用 nmon
进行综合性能监控
概述
nmon
是一个交互式性能监控工具,支持监控 CPU、内存、网络、I/O 等多方面的性能。
安装
sudo apt install nmon # 对于 Debian/Ubuntu
sudo yum install nmon # 对于 CentOS
用法
nmon
进入后可以按快捷键查看不同模块:
c
:CPU 使用率。m
:内存使用率。d
:磁盘 I/O。n
:网络使用情况。
示例
按 c
显示的 CPU 信息如下:
CPU Utilisation ---------------------------
CPU User% Sys% Wait% Idle% Steal% Nice%
All 5.0 2.1 0.0 92.7 0.0 0.2
二、性能调优
1、内存优化
优化策略
- 释放缓存内存。
- 调整交换分区的使用策略。
释放缓存
sync; echo 3 > /proc/sys/vm/drop_caches
调整交换分区使用
通过修改 swappiness
参数控制:
echo 10 > /proc/sys/vm/swappiness
解释:
- 值范围为
0-100
,越低表示更倾向于使用物理内存,减少交换分区的使用。
2、CPU 优化
调整 CPU 优先级
使用 nice
和 renice
调整进程优先级。
启动进程时指定优先级:
nice -n 10 ./my_process
修改运行中的进程优先级:
renice 5 -p 1234 # 将 PID 为 1234 的进程优先级设置为 5
3、I/O 优化
使用 ionice
优化磁盘 I/O
ionice
用于调整进程的 I/O 优先级。
设置进程为最小 I/O 优先级:
ionice -c3 -p 5678 # 将 PID 为 5678 的进程设置为 idle
调整 I/O 调度器
Linux 提供多种 I/O 调度器(如 CFQ、deadline、noop)。
查看当前调度器:
cat /sys/block/sda/queue/scheduler
设置调度器为 deadline
:
echo deadline > /sys/block/sda/queue/scheduler
三、小结
通过本章学习,你掌握了以下内容:
-
系统性能监控:
- 使用
top
、iotop
和nmon
等工具实时监控系统性能。
- 使用
-
性能调优:
- 内存优化:释放缓存、调整交换分区。
- CPU 优化:调整优先级。
- I/O 优化:使用
ionice
和 I/O 调度器优化磁盘性能。
通过定期监控系统性能并采取适当的调优措施,可以确保系统高效稳定运行,为应用和服务提供强大的支持。