Linux缓冲区大小优化实践(linux缓冲大小)

随着计算机硬件设备性能的不断提升,Linux的皮肤高级应用也在不断变得广泛,尤其是在大型的存储和网络领域,系统极大的响应是系统的基础性能,这关乎到操作系统的性能。系统内核缓冲区设置的大小是调整系统相应的关键因素,其大小的设置能够极大的影响系统的吞吐量,本文应用系统内核缓冲区参数理论,介绍Linux系统缓冲区大小优化实践能够带来的性能提升,使Linux系统在对大型网络下有着更加充分的表现。

Linux 缓冲区设置的最佳大小是由读写次数、文件大小、缓冲区类型等因素决定的。比如,在发出请求读取文件后,文件内容将作为字节流读入Linux缓冲区,数据保存在缓冲区,直到缓冲区满为止。此时就出现一个读写次数的问题,每次系统请求文件的量必须小于缓冲区的大小,它的反映就是,缓冲区设置过小,则受系统缓冲区限制,读写次数增加,即造成磁盘的多实际读写操作,磁盘性能会降低;若设置缓冲区过大,则系统进行大量缓存,会增加内存和服务器的负担,降低系统性能,如果在调整内核缓冲区大小时,需要通过测量来查看每秒读写次数,看系统运行时CPU及I/O的占用情况,逐步调整缓冲区大小,调出最佳的性能敍呈。

Linux 操作系统,可以通过一些参数调整来进行性能优化,本文主要介绍如何优化 Linux 缓冲区大小实现性能提升。首先,找出 Linux 内核各种缓冲区调节参数 ,可以在/proc/sys/vm下面查看到:

![图片]

(https://papi.qpic.cn/rpic_new/0/285_0021_1792_15248_1/0)

用户可以用指令来查询当前系统缓冲区使用情况,通过free -m 可以看到系统当前内存使用量,内存不少于1G,缓冲区大小可以调整到性能最佳状态:

=> free -m
total used free shared buffers cached
Mem: 993 885 108 0 205 166

紧接着,调整内核缓冲区大小,按照上面的参数比例设置:

 => sysctl -w vm.dirty_ratio=50
=> sysctl -w vm.dirty_background_ratio=10

可以在/proc/sys/vm/中查看曾经的调整项:

![图片]

(https://papi.qpic.cn/rpic_new/0/285_0021_1792_15248_2/0)

上面参数控制内存页保留在系统缓冲区中,而不被写入磁盘,调整了缓冲区大小之后,就可以检查操作系统I/O 情况,查看系统是否性能提升:

=> vmstat 1
procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----
r b swpd free buff cache si so bi bo in cs us sy id wa st
0 0 268 21212 2044 43568 0 0 8 104 20 15 1 0 97 1 0

性能优化需要根据具体情况逐步调整,不但可以调整缓冲区大小,而且可以考虑其他的内核参数,使用vmstat -I等命令,如查看CPU事件,查看磁盘读写等,以使Linux系统表现出更优秀的性能。

本文主要介绍了 Linux 内核缓冲区


数据运维技术 » Linux缓冲区大小优化实践(linux缓冲大小)