在Linux上进行内核参数调整

在Solaris上,使用工具mdb就可以直接修改内核内存里的内容。而在Linux上,则通常使用命令sysctl(8)做类似的事情。 本文以Fedora为例,介绍如何在Linux上进行内核参数调整。 常见的方法有两种:

  • 修改配置文件/etc/sysctl.conf, 然后使用sysctl -p装载修改的参数使之生效
  • 直接使用sysctl(8)命令对内核参数进行修改

第一种方法修改内核参数后,重启后仍然有效;而后一种方法修改内核参数后,重启则失效。 下面介绍后一种方法。

$ man sysctl
NAME
       sysctl - configure kernel parameters at runtime
...<snip>...

1. 读取所有的内核参数

$ sysctl -a

2. 修改一个内核参数

2.1 使用systcl

READ:  sysctl -n <key>
WRITE: sysctl -w <key>=<value>

e.g.

root@ThinkCentre:~# hostname
ThinkCentre

root@ThinkCentre:~# sysctl -a | egrep -i 'hostname ='
kernel.hostname = ThinkCentre

root@ThinkCentre:~# sysctl -w kernel.hostname=ThinkCentreXXX
kernel.hostname = ThinkCentreXXX

root@ThinkCentre:~# sysctl -n kernel.hostname
ThinkCentreXXX

root@ThinkCentre:~# hostname
ThinkCentreXXX

2.2 直接修改文件

  • 通过strace(1)找出对应的文件,例如:
 1 root@ThinkCentre:~# strace sysctl -w kernel.hostname=ThinkCentreXXX
 2 execve("/sbin/sysctl", ["sysctl", "-w", "kernel.hostname=ThinkCentreXXX"], 0x7ffe201b30b0 /* 37 vars */) = 0
 3 brk(NULL)                               = 0x557df65e4000
 4 ...<snip>.......................................................................
 5 stat("/proc/sys/kernel/hostname", {st_mode=S_IFREG|0644, st_size=0, ...}) = 0
 6 openat(AT_FDCWD, "/proc/sys/kernel/hostname", O_WRONLY|O_CREAT|O_TRUNC, 0666) = 3
 7 fstat(3, {st_mode=S_IFREG|0644, st_size=0, ...}) = 0
 8 write(3, "ThinkCentreXXX\n", 15)        = 15
 9 close(3)                                = 0
10 fstat(1, {st_mode=S_IFCHR|0620, st_rdev=makedev(136, 1), ...}) = 0
11 write(1, "kernel.hostname = ThinkCentreXXX"..., 33kernel.hostname = ThinkCentreXXX
12 ) = 33
13 close(1)                                = 0
14 close(2)                                = 0
15 exit_group(0)                           = ?
16 +++ exited with 0 +++

从第5,6行可以看出,操作的文件是 /proc/sys/kernel/hostname

  • 直接写文件,例如:
root@ThinkCentre:~# hostname
ThinkCentreXXX
root@ThinkCentre:~# echo "ThinkCentre" > /proc/sys/kernel/hostname
root@ThinkCentre:~# hostname
ThinkCentre

 

参考资料:

转载于:https://www.cnblogs.com/idorax/p/9141153.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值