查看和修改Linux实例内核参数
发布时间:2021-03-30 点击数:470
在修改内核参数前,需要注意以下几点:
- 从实际需求出发,尽量有相关数据的支撑,不建议随意调整内核参数。
- 了解参数的具体作用,需注意同类型或版本的环境中,内核参数可能有所不同。
- 备份ECS实例中的重要数据。关于如何备份数据请参见创建快照。
本文提供以下两种修改Linux实例内核参数的方法。
方法一:通过/proc/sys/目录查看和修改内核参数
/proc/sys/目录是Linux内核在启动后生成的伪目录,其目录下的net文件夹中存放了当前系统中开启的所有内核参数,目录树结构与参数的完整名称相关,如net.ipv4.tcp_tw_recycle,它对应的文件是/proc/sys/net/ipv4/tcp_tw_recycle文件,文件的内容就是参数值。方法一中修改的参数值仅在当前运行中生效,系统重启后会回滚到历史值,一般用于临时性验证修改的效果。若需要永久性修改,请参见方法二。
-
查看内核参数:使用cat命令查看对应文件的内容,执行以下命令,查看net.ipv4.tcp_tw_recycle的值。
cat /proc/sys/net/ipv4/tcp_tw_recycle
-
修改内核参数:使用echo命令修改内核参数对应的文件,执行以下命令,将net.ipv4.tcp_tw_recycle的值修改为0。
echo "0" > /proc/sys/net/ipv4/tcp_tw_recycle
方法二:通过sysctl.conf文件查看和修改内核参数
-
查看内核参数:执行sysctl -a命令,查看当前系统中生效的所有参数,系统显示类似如下。
net.ipv4.tcp_app_win = 31 net.ipv4.tcp_adv_win_scale = 2 net.ipv4.tcp_tw_reuse = 0 net.ipv4.tcp_frto = 2 net.ipv4.tcp_frto_response = 0 net.ipv4.tcp_low_latency = 0 net.ipv4.tcp_no_metrics_save = 0 net.ipv4.tcp_moderate_rcvbuf = 1 net.ipv4.tcp_tso_win_divisor = 3 net.ipv4.tcp_congestion_control = cubic net.ipv4.tcp_abc = 0 net.ipv4.tcp_mtu_probing = 0 net.ipv4.tcp_base_mss = 512 net.ipv4.tcp_workaround_signed_windows = 0 net.ipv4.tcp_challenge_ack_limit = 1000 net.ipv4.tcp_limit_output_bytes = 262144 net.ipv4.tcp_dma_copybreak = 4096 net.ipv4.tcp_slow_start_after_idle = 1 net.ipv4.cipso_cache_enable = 1 net.ipv4.cipso_cache_bucket_size = 10 net.ipv4.cipso_rbm_optfmt = 0 net.ipv4.cipso_rbm_strictvalid = 1
-
通过以下两种方式,修改内核参数。
说明:调整内核参数后,内核处于不稳定状态,请务必重启实例。
-
执行以下命令,临时修改内核参数。
/sbin/sysctl -w kernel.parameter="[$Example]"说明:[$Example]为参数值,如sysctl -w net.ipv4.tcp_tw_recycle="0"命令,将参数值改为0。
-
通过修改配置文件的方式修改内核参数。
-
执行以下命令,修改/etc/sysctl.conf文件中的参数。
vi /etc/sysctl.conf -
执行以下命令,使配置生效。
/sbin/sysctl -p
-
执行以下命令,修改/etc/sysctl.conf文件中的参数。
-
执行以下命令,临时修改内核参数。