CentOS内核参数优化是一个复杂但重要的任务,它直接关系到系统的性能、稳定性和安全性,以下是对CentOS内核参数的详细解析,包括内存管理、TCP/IP网络、文件系统以及其他关键参数的说明:
一、内存管理参数
参数 | 默认值 | 说明 |
vm.admin_reserve_kbytes | min(free_page * 0.03, 8MB) | 给有cap_sys_admin权限的用户保留的内存数量。 |
vm.block_dump | 0 | 如果设置非零值,则启用块I/O调试。 |
vm.compact_memory | 0 | 进行内存压缩,仅在启用CONFIG_COMPACTION时有效。 |
vm.dirty_background_bytes | 0 | 当脏页所占内存超过此值时,内核开始回写脏页。 |
vm.dirty_background_ratio | 10 | 脏页所占百分比达到此值时,内核开始回写脏页数据。 |
vm.dirty_bytes | 0 | 当脏页所占内存达到此值时,进程开始回写脏数据。 |
vm.dirty_expire_centisecs | 3000 | 脏数据过期时间(百分之一秒)。 |
vm.dirty_writeback_centisecs | 500 | Flusher线程唤醒间隔(百分之一秒)。 |
vm.drop_caches | 0/1/2/3 | 释放不同类型的缓存。 |
vm.extfrag_threshold | 0 | 外部碎片整理阈值。 |
vm.hugepages_treat_as_movable | 0 | 控制是否可以从ZONE_MOVABLE域分配大页面。 |
vm.hugetlb_shm_group | 0 | SySV共享内存段组ID。 |
vm.laptop_mode | 0 | 开启或关闭Laptop模式以延长电池续航。 |
vm.legacy_va_layout | 0 | 地址空间布局模式(经典/新)。 |
vm.lowmem_reserve_ratio | 256 | 低端内存保护强度。 |
vm.max_map_count | 65530 | 一个进程能拥有的最大内存区域数。 |
vm.memory_failure_early_kill | 0 | 内存错误处理机制。 |
vm.memory_failure_recovery | 0 | 是否开启内存错误恢复机制。 |
vm.min_free_kbytes | 65536 | 每个内存区保留的最小内存大小(KB)。 |
vm.min_slab_ratio | 5 | Numa系统中可回收slab页面的最小百分比。 |
vm.min_unmapped_ratio | 5 | 允许回收状态内存页的最小百分比。 |
vm.mmap_min_addr | 0 | 用户进程通过mmap使用的最小虚拟内存地址。 |
vm.nr_hugepages | 0 | 大页的最小数目。 |
vm.nr_overcommit_hugepages | 0 | 保留的大页数。 |
vm.nr_pdflush_threads | 0 | Pdflush线程数量。 |
二、TCP/IP网络参数
参数 | 默认值 | 说明 |
net.ipv4.tcp_fin_timeout | 60 | 决定套接字保持在FINWAIT2状态的时间。 |
net.ipv4.tcp_keepalive_time | 7200s (2 hours) | Keepalive探测的时间间隔。 |
net.ipv4.tcp_keepalive_intvl | 75s | Keepalive探测的初始间隔。 |
net.ipv4.tcp_keepalive_probes | 9 | Keepalive探测的最大次数。 |
net.ipv4.tcp_max_syn_backlog | 1024 | SYN包的最大挂起连接队列。 |
net.ipv4.tcp_max_tw_buckets | 180000 | 同时保持TIMEWAIT套接字的最大数量。 |
net.ipv4.tcp_rmem | [4096 87380 6291456] | TCP接收缓冲区的最小、默认和最大值。 |
net.ipv4.tcp_wmem | [4096 65536 4194304] | TCP写入缓冲区的最小、默认和最大值。 |
net.ipv4.tcp_mem | [786432 1048576 1572864] | TCP内存管理的三个阈值。 |
net.ipv4.tcp_retries2 | 永久重试次数(默认15) | TCP数据包重传次数。 |
net.ipv4.tcp_syncookies | 0 | 是否开启SYN Cookies。 |
net.ipv4.tcp_tw_reuse | 0 | 是否开启TIMEWAIT套接字重用。 |
net.ipv4.tcp_tw_recycle | 0 | 是否快速回收TIMEWAIT套接字。 |
net.ipv4.tcp_timestamps | 1 | 是否开启TCP时间戳。 |
net.ipv4.tcp_window_scaling | 1 | 是否开启窗口缩放。 |
net.ipv4.ip_local_port_range | 32768 60999 | 用于向外连接的端口范围。 |
net.core.somaxconn | 128 | listen()的挂起请求的最大数量。 |
net.ipv4.route.gc_elasticity | 16 | 路由缓存弹性因子。 |
net.ipv4.route.gc_thresh | 64 | 路由缓存垃圾回收阈值。 |
net.ipv4.route.gc_min_interval | 5 | 路由缓存垃圾回收最小时间间隔(秒)。 |
net.ipv4.route.gc_timeout | 60 | 路由缓存条目超时时间(秒)。 |
net.ipv4.route.max_size | 4096 | 路由表的最大尺寸。 |
三、文件系统参数
参数 | 默认值 | 说明 |
fs.filemax | 100000 | 系统允许的最大文件描述符数量。 |
fs.aiomaxnr | 65536 | AIO的最大异步I/O操作数。 |
fs.inotify.max_user_watches | 8192 | inotify的最大监控对象数量。 |
fs.inotify.max_user_instances | 128 | inotify的最大用户实例数量。 |
fs.inotify.max_queued_events = 16384 | inotify的最大排队事件数。 |
fs.inotify.max_watched_objects = 8192 | inotify的最大被监控对象数量。 |