10.2. 影响数据库应用程序性能的参数
以下内核参数会影响数据库应用程序的性能。
- fs.aio-max-nr
定义系统可在服务器中处理的异步 I/O 操作的最大数目。
注意增加
fs.aio-max-nr
参数不会在增加 aio 限制外产生任何变化。- fs.file-max
定义系统在任何实例上支持的最大文件句柄数(临时文件名或者分配给打开文件的 ID)。
内核会在应用程序请求文件句柄时动态分配文件。但是,当应用程序发布这些文件时,内核不会释放这些文件句柄。相反,内核会回收这些文件的句柄。这意味着,分配的文件句柄总数将随着时间增加,即使当前使用的文件句柄的数量可能较低。
- kernel.shmall
-
定义可用于系统范围的共享内存页面总数。要使用整个主内存,
kernel.shmall
参数的值应当为主内存大小总计。 - kernel.shmmax
- 定义 Linux 进程在其虚拟地址空间中可分配的单个共享内存段的最大字节大小。
- kernel.shmmni
- 定义数据库服务器能够处理的共享内存段的最大数量。
- net.ipv4.ip_local_port_range
- 定义系统可用于希望在无特定端口号的情况下连接到数据库服务器的程序的端口范围。
- net.core.rmem_default
- 通过传输控制协议 (TCP) 定义默认接收套接字内存。
- net.core.rmem_max
- 通过传输控制协议 (TCP) 定义最大接收套接字内存。
- net.core.wmem_default
- 通过传输控制协议 (TCP) 定义默认发送套接字内存。
- net.core.wmem_max
- 通过传输控制协议 (TCP) 定义最大发送套接字内存。
- vm.dirty_bytes / vm.dirty_ratio
-
定义以脏内存百分比为单位的字节/阈值,在该阈值中,生成脏数据的进程会在
write()
函数中启动。
注意
一个 vm.dirty_bytes
或 vm.dirty_ratio
可以在同一时间被指定。
- vm.dirty_background_bytes / vm.dirty_background_ratio
- 定义以脏内存百分比为单位的字节/阈值,达到此阈值时内核会尝试主动将脏数据写入硬盘。
注意
一个 vm.dirty_background_bytes
或 vm.dirty_background_ratio
可以一次指定。
- vm.dirty_writeback_centisecs
定义负责将脏数据写入硬盘的内核线程定期唤醒之间的时间间隔。
这个内核参数以 100 分之一秒为单位。
- vm.dirty_expire_centisecs
定义脏数据足够旧的时间以便写入硬盘。
这个内核参数以 100 分之一秒为单位。