在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. day09_雷神_模块二

    day09 序列化之json 之前我们学习过用eval内置方法可以将一个字符串转成python对象,不过,eval方法是有局限性的,对于普通的数据类型,json.loads和eval都能用,但遇到特殊 ...

  2. 使用NetHogs监控进程网络使用情况

    Nethogs 是一个终端下的网络流量监控工具,它的特别之处在于可以显示每个进程的带宽占用情况,这样可以更直观获取网络使用情况.它支持 IPv4 和 IPv6 协议.支持本地网卡及 PPP 链接. 使 ...

  3. 64位进程调用32位dll的解决方法

    64位进程调用32位dll的解决方法   最近做在Windows XP X64,VS2005环境下做32位程序编译为64位程序的工作,遇到了一些64位编程中可能遇到的问题:如内联汇编(解决方法改为C/ ...

  4. Delphi IDHTTP控件:GET/POST 请求

    Delphi IDHTTP控件:GET/POST 请求   最近一直在使用IDHTTP,下面是一些关于 GET.POST 请求基本使用方法的代码 一.GET 请求 1 procedure GetDem ...

  5. iOS计算UIWebView的高度和iOS8之后的WKWebView的高度问题

    当我们涉及到webView和自定义控件结合的时候,例如一个资讯详情,上半部分是webView,下面位置想加上我们的自定义控件,可可以计算出webView的高度,在刷新界面. 下边是计算UIWebVie ...

  6. Windows核心编程:第4章 进程

    Github https://github.com/gongluck/Windows-Core-Program.git //第4章 进程.cpp: 定义应用程序的入口点. // #include &q ...

  7. C# 利用VS中的插件来打包并发布winfrom程序

    1.先在VS 的扩展更新中搜索此插件[2015 installer Projects],点击下载,安装需要关闭VS 2.安装完毕之后新建项目 3.选择“application folder”项,然后在 ...

  8. python -猜字小游戏

    代码运行效果如下: 注意: 1.必须要在python3环境想使用 2.QQ:3084276329(一起交流学习) 3.还请大家评论 Guess the word game代码如下: #! /usr/b ...

  9. sublime text3:提示 There are no packages available installation 解决方案

    纯属记录,下次能找到解决. 第一步: 在sublime Text3界面按 ctrl+` 出现一个输入框界面 第二步:在输入框输入: import urllib.request,os,hashlib; ...

  10. sublime text3: markdown 安装及常用语法简介

    自己上传到 github 上的 README.rdm 文件内容显示没有“美化”,所有内容都挤在一块儿了,很不舒服. 原因是:github 的文档 README.rdm 文件使用 markdown 编辑 ...