Linux系统性能优化全攻略
立即解锁
发布时间: 2025-08-12 00:20:52 阅读量: 1 订阅数: 9 


Linux系统管理核心技能指南
### Linux系统性能优化全攻略
#### 1. 内核相关文件设置
- **/proc/sys/vm/bdflush文件**:该文件决定了bdflush内核守护进程的行为。此守护进程负责确定何时将“脏”缓冲区写入磁盘。当内存不足时,可调整缓冲区缓存中“脏”缓冲区的最大数量,以及bdflush一次可写入磁盘的“脏”缓冲区最大数量。高值会使磁盘写入频率降低但持续时间变长,低值则使磁盘写入在频率和持续时间上更均匀。其他设置可控制空闲缓冲区的分配,可按需调整。
- **/proc/sys/vm/kswapd文件**:包含控制内核交换的设置。可控制kswapd一次尝试释放的页面数量和一次写入的页面数量(交换簇)。应合理设置交换簇大小,使其进行大块I/O操作,减少磁盘寻道次数,但设置过高会导致系统因长时间交换而变慢。Red Hat的默认设置适用于使用频率不高的服务器,可自行尝试调整。
- **/proc/sys/vm/pagetable_cache文件**:包含两个数字,代表每个处理器的最小和最大缓存大小。在内存较低的单CPU系统(尤其是RAM小于16MB)中,应将这些值设为0以节省内存。在SMP系统中,这些设置可使系统在不获取内核内存锁的情况下快速进行页表分配。Red Hat 7.3的默认设置为25和50。
#### 2. 串口调优
Linux中的串口默认值较为保守,可使用`setserial`命令重置这些值,以提高调制解调器吞吐量等性能指标。`setserial`用于设置和/或报告指定串口的配置信息,包括I/O端口和IRQ设置。
若串口速度设置合适但仍较慢,可根据连接质量调整数据包大小。若电话线噪音大,选择较小的数据包大小;若线路质量高且安静,可尝试较大的数据包大小。可使用`pppd`实用程序的`mru`和`mtu`参数进行设置。
#### 3. 文件系统调优
文件系统设置通常较为保守,以避免用户系统面临风险。许多设置可进行调整以优化文件系统。由于许多Linux发行版使用ext3文件系统,下面将介绍提高ext3文件系统性能的方法。
##### 3.1 分区问题
在调整文件系统之前,需了解分区位置对其性能的影响。硬盘由高速旋转的圆形薄盘片组成,盘片外边缘的移动速度比内边缘快,因此最外侧磁道的数据读写速度更快。硬盘从外向内写入数据,所以分区时,第一个分区的速度会比最后一个快。一般建议将交换分区和`/tmp`分区放在硬盘最快的部分,即靠近开头的位置。若硬盘柱面数超过1024,且打算使用21.4.2之前版本的LILO,则`/boot`分区需位于前1024柱面内,否则系统无法启动。
##### 3.2 tune2fs工具
**注意**:切勿在以读写方式挂载的文件系统上使用`tune2fs`更改参数,某些更改可能会破坏数据,应先卸载分区再进行更改。
`tune2fs`工具可调整ext3文件系统的某些方面:
- **-c max - mount - counts参数**:用于调整文件系统自动执行检查前的最大挂载次数。Red Hat 7.3使用日志文件系统,默认值为 -1,表示文件系统不会被标记为脏。例如,将其设置为20的命令如下:
```bash
# /sbin/tune2fs -c 20 /dev/hdb3
```
- **-i interval - between - checks参数**:确定强制文件系统检查之间的最大时间间隔。Red Hat 7.3的默认值为0,表示不强制检查,而非日志文件系统的发行版可能设置为15,552,000秒(6个月)。例如,将其设置为9个月的命令如下:
```bash
# /sbin/tune2fs -i 23328000 /dev/hdb3
```
对于很少写入或只读挂载的文件系统,可适当增大这些值,避免不必要的检查;对于写入频繁的文件系统,不建议增大这些值,以便尽早发现问题,避免数据丢失。
此外,还可使用该工具调整为root用户保留的文件系统块数和百分比。Red Hat 7.3的默认值为5%。设置块数的命令如下:
```bash
# /sbin/tune2fs -r 50000
```
设置保留百分比的命令如下:
```bash
# /sbin/tune2fs -m 10
```
为root用户保留块可在用户填满文件系统时提供修复机会,但应谨慎使用。关键文件系统(如`/`、`/var`和`/etc`)的保留块尤为重要,可适当降低可移动磁盘(如Iomega Zip磁盘、软盘)和单独`/home`分区的保留块百分比。
##### 3.3 hdparm工具
`hdparm`工具用于检索并可选地设置硬盘参数,适用于内核版本1.2.13及更高版本,某些选项在2.0.10之前的内核中不支持。
**提示**:`hdparm`工具专为IDE硬盘设计,SCSI硬盘由SCSI主机适配器处理,其驱动程序会自动使用最佳设置,不过仍可使用`hdparm`测试SCSI硬盘的性能。
对于I/O负载高的磁盘,将IDE驱动程序设置为使用直接内存访问(DMA)和32位传输可显著提高性能。默认内核设置较为保守,有调整空间。
以下命令指定第一个IDE磁盘通过PCI总线进行32位I/O:
```bash
# /sbin/hdparm -c 1 /dev/hda
```
某些芯片组需要特殊的同步序列,可将`-c 1`替换为`-c 3`,该值适用于几乎所有32位IDE芯片组,但会增加一些开销。使用`-c 0`可禁用32位传输。
启用`/dev/hda`设备的DMA使用的命令如下:
```bash
# /sbin/hdparm -d 1 /dev/hda
```
DMA可使数据直接从硬盘传输到内存,绕过CPU。要启用DMA,主板芯片组的支持必须编译到内核中。使用`-d 0`可关闭DMA,某些驱动器的DMA实现可能存在问题,导致文件系统损坏,若出现此类问题,可尝试禁用DMA。
可通过运行`hdparm`的性能测试模式来测试更改结果,该测试应运行两到三次以获得准确测量值:
```bash
# /sbin/hdparm -t /dev/hda
```
结果示例如下:
```
/dev/hda:
Timing buffered disk reads: 64 MB in 5.81 seconds = 12.36 MB/sec
```
进行调整并重新运行`hdparm`测试命令,直到找到最佳设置。若要使更改永久生效,可使用以下命令:
```bash
# /sbin/hdparm -k 1 /dev/hda
```
通过设置`-m`选项更改每次中断传输的扇区数可能会带来轻微性能提升,但实际效果可能不明显。
##### 3.4 mke2fs命令
`mke2fs`命令用于在磁盘分区或其他设备上创建ext2文件系统。若Linux机器通常处理非常大
0
0
复制全文
相关推荐










