在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)找出对应的文件,例如:
 root@ThinkCentre:~# strace sysctl -w kernel.hostname=ThinkCentreXXX
execve("/sbin/sysctl", ["sysctl", "-w", "kernel.hostname=ThinkCentreXXX"], 0x7ffe201b30b0 /* 37 vars */) =
brk(NULL) = 0x557df65e4000
...<snip>.......................................................................
stat("/proc/sys/kernel/hostname", {st_mode=S_IFREG|, st_size=, ...}) =
openat(AT_FDCWD, "/proc/sys/kernel/hostname", O_WRONLY|O_CREAT|O_TRUNC, ) =
fstat(, {st_mode=S_IFREG|, st_size=, ...}) =
write(, "ThinkCentreXXX\n", ) =
close() =
fstat(, {st_mode=S_IFCHR|, st_rdev=makedev(, ), ...}) =
write(, "kernel.hostname = ThinkCentreXXX"..., 33kernel.hostname = ThinkCentreXXX
) =
close() =
close() =
exit_group() = ?
+++ exited with +++

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

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

参考资料:

在Linux上进行内核参数调整的更多相关文章

  1. 安装ORACLE时在Linux上设置内核参数的含义

    前两天看到一篇Redhat官方的Oracle安装文档,对于Linux内核参数的修改描述的非常清晰. 安装Oracle之前,除了检查操作系统的硬件和软件是否满足安装需要之外,一个重点就是修改内核参数,其 ...

  2. Sysctl命令及linux内核参数调整

        一.Sysctl命令用来配置与显示在/proc/sys目录中的内核参数.如果想使参数长期保存,可以通过编辑/etc/sysctl.conf文件来实现.    命令格式:  sysctl [-n ...

  3. 理解 Linux backlog/somaxconn 内核参数

    https://jaminzhang.github.io/linux/understand-Linux-backlog-and-somaxconn-kernel-arguments/ 各参数的含义:h ...

  4. Linux之TCPIP内核参数

    /proc/sys/net目录 参考1.Linux之TCPIP内核参数优化 所有的TCP/IP参数都位于/proc/sys/net目录下(请注意,对/proc/sys/net目录下内容的修改都是临时的 ...

  5. TCP三次握手与Linux的TCP内核参数优化

    感谢各位技术大佬的资料分享,这里我把我理解的内容做一个整理 一:TCP的三次握手 1.TCP简述 TCP是一个面向连接的协议,在连接双方发送数据之前,首先需要建立一条连接.TCP建立连接可以简单称为: ...

  6. nginx的linux服务器内核参数调整【转】

    概述 由于默认的linux内核参数考虑的是最通用场景,这明显不符合用于支持高并发访问的Web服务器的定义,所以需要修改Linux内核参数,让Nginx可以拥有更高的性能: 在优化内核时,可以做的事情很 ...

  7. Linux 下 Oracle 内核参数优化

    数据库的性能优化涉及到整个数据库运行环境的方方面面,诸如操作系统,Oracle自身,存储,网络等等几个大块.而操作系统则是Oracle稳定运行与最大化性能的基石.本文主要描述基于Linux系统下 Or ...

  8. Linux oracle安装 内核参数讲解

    在安装Oracle的时候需要调整linux的内核参数,但是各参数代表什么含义呢,下面做详细解析. Linux安装文档中给出的最小值: fs.aio-max-nr = 1048576 fs.file-m ...

  9. linux 内核参数调整优化网络

    Linux系统内核设置优化tcp网络,# vi /etc/sysctl.conf,添加以下内容 net.ipv4.tcp_syncookies = 1 表示开启SYN Cookies.当出现SYN等待 ...

随机推荐

  1. Linux服务器数据备份恢复策略

    一.Linux 备份恢复基础 1.什么是备份 最简单的讲,备份数据的过程就是拷贝重要的数据到其他的介质之上(通常是可移动的),以保证在原始数据丢失的情况下可以恢复数据.一次备份可能是简单的 cp命令, ...

  2. SSM_CRUD新手练习(6)分页后台控制器编写

    经过测试基础环境已经搭建好了,现在我们开始编写CRUD. 我们来看一下查询的逻辑该怎么写: 1.访问index.jsp页面 2.index.jsp页面发送查询员工的请求 3.EmployeeContr ...

  3. hdu 5047 大数找规律

    http://acm.hdu.edu.cn/showproblem.php?pid=5047 找规律 信kuangbin,能AC #include <stdio.h> #include & ...

  4. [ 9.12 ]CF每日一题系列—— 960B暴力数组

    Description: 给你两个数组,顺序一定,问你第一个数组连续的几个值等于下一个数组连续的几个值,然后寻找这个值得最大值,也就是满足就换 Solution: 用两个变量索引,判断即可 #incl ...

  5. nodeclub route

    这里是把web_router.js放在根目录下,也可以放在routes文件件下,其实都可以. 这里就是一些url与controller和middleware对应

  6. sqlserver 自动创建作业执行备份数据库

    declare @name varchar(250)set @name='I:\dydb_n\dydb_n'+convert(varchar(50),getdate(),112)+ left(righ ...

  7. spring mvc 的请求流程

    SpringMVC核心处理流程: 1.DispatcherServlet前端控制器接收发过来的请求,交给HandlerMapping处理器映射器 2.HandlerMapping处理器映射器,根据请求 ...

  8. 搭建一台deeplearning的服务器

    在计算机时代的早期,一名极客的满足感很大程度上来源于能DIY一台机器.到了深度学习的时代,前面那句话仍然是对的. 缘起在2013年,MIT科技评论将深度学习列为当年十大科技突破之首.其原因在于,模型有 ...

  9. jzoj3086 [分層圖最短路]

    分層圖最短路即可 #include<bits/stdc++.h> using namespace std; #define N 1000010 int n,m,v[N*2],nxt[N*2 ...

  10. 大脸猫讲逆向之ARM汇编中PC寄存器详解

    i春秋作家:v4ever 近日,在研究一些开源native层hook方案的实现方式,并据此对ARM汇编层中容易出问题的一些地方做了整理,以便后来人能有从中有所收获并应用于现实问题中.当然,文中许多介绍 ...