生产环境PostgreSQL数据库操作系统参数探究
生产环境PostgreSQL数据库操作系统参数探究
操作系统参数
序号 | 参数名称 | 参数值 | 参数意义 | 参数值分析 |
---|---|---|---|---|
1 | fs.aio-max-nr | 1048576 | 系统允许的异步I/O最大请求数,用于支持高并发I/O操作。 | 值较高,适合高并发环境,如数据库系统大规模读写操作场景。 |
2 | fs.file-max | 76724600 | 系统允许打开的最大文件描述符数量,影响文件和网络连接数量的上限。 | 值非常高,支持大量并发连接和文件访问,适合数据库服务器场景。 |
3 | kernel.sem | 4096 2147483647 2147483646 512000 | 系统信号量参数,分别表示:每组信号量最大值、系统信号量最大值、单个信号量集最大值、信号量集合的数量上限。 | 非常高的配置,确保在高并发环境下信号量不会成为瓶颈。 |
4 | kernel.shmall | 92274688 | 共享内存的总页数限制。 | 值较高,支持大型共享内存使用需求(如数据库)。 |
5 | kernel.shmmni | 819200 | 系统中共享内存段的最大数量。 | 值较高,适合需要大量共享内存段的应用程序,如数据库。 |
6 | net.core.netdev_max_backlog | 10000 | 网络设备接收队列的最大长度。 | 增大此值减少网络拥堵,提高网络处理能力,适合高流量环境。 |
7 | net.core.rmem_default | 262144 | 套接字默认的接收缓冲区大小。 | 默认值适中,适合普通流量的接收操作。 |
8 | net.core.rmem_max | 4194304 | 套接字最大接收缓冲区大小。 | 值较大,适合高带宽、高延迟的网络环境。 |
9 | net.core.wmem_default | 262144 | 套接字默认的发送缓冲区大小。 | 默认值适中,适合普通流量的发送操作。 |
10 | net.core.wmem_max | 4194304 | 套接字最大发送缓冲区大小。 | 值较大,适合高带宽的发送场景。 |
11 | net.core.somaxconn | 16384 | 允许监听队列的最大长度(即listen 函数的backlog 参数上限)。 |
非常高的值,有助于处理大量的并发连接请求。 |
12 | net.ipv4.tcp_max_syn_backlog | 16384 | 未完成连接请求队列的最大长度。 | 高值有助于应对大量的SYN请求,减少连接失败的可能性。 |
13 | net.ipv4.tcp_keepalive_intvl | 20 | TCP保持活动探测的间隔时间(秒)。 | 值较短,适合快速探测空闲连接的有效性。 |
14 | net.ipv4.tcp_keepalive_probes | 3 | TCP保持活动探测的最大重试次数。 | 默认值,适合检测连接存活。 |
15 | net.ipv4.tcp_keepalive_time | 60 | TCP保持活动时间,连接空闲多久后开始发送探测包(秒)。 | 值较短,有助于及时发现失效连接。 |
16 | net.ipv4.tcp_mem | 8388608 12582912 16777216 | TCP栈使用的内存范围,分别表示:最小、默认、最大内存分配量(单位页)。 | 高值配置,适合高流量、大并发场景。 |
17 | net.ipv4.tcp_fin_timeout | 5 | TCP连接关闭时FIN-WAIT-2 状态的超时时间(秒)。 |
值短,可快速释放连接资源。 |
18 | net.ipv4.tcp_synack_retries | 2 | SYN-ACK重试次数。 | 较低值减少资源浪费,但可能对高延迟网络产生一定影响。 |
19 | net.ipv4.tcp_syncookies | 1 | 是否启用SYN Cookie以防范SYN攻击。 | 开启防护机制,适合公共网络场景。 |
20 | vm.dirty_background_ratio | 0 | 内存脏页异步回写的阈值(占总内存百分比)。 | 配置为0,实际控制通过dirty_background_bytes 。 |
22 | vm.dirty_expire_centisecs | 3000 | 脏页写入到磁盘的超时时间(单位10ms)。 | 较长的时间延迟,有助于减少磁盘IO压力。 |
23 | vm.dirty_ratio | 95 | 内存脏页同步回写的阈值(占总内存百分比)。 | 高值允许更多的脏页留存于内存中,适合大内存环境。 |
24 | vm.nr_hugepages | 256 | 系统保留的大页内存数量。 | 适合内存密集型应用(如数据库),可提高性能。 |
25 | vm.min_free_kbytes | 2097152 | 系统预留的最小空闲内存(字节)。 | 高值确保内存分配时系统有足够的可用空间,减少OOM风险。 |
数据库参数
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 Chan Revival Sky!
评论