在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)找出对应的文件,例如:
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上进行内核参数调整的更多相关文章
- 安装ORACLE时在Linux上设置内核参数的含义
前两天看到一篇Redhat官方的Oracle安装文档,对于Linux内核参数的修改描述的非常清晰. 安装Oracle之前,除了检查操作系统的硬件和软件是否满足安装需要之外,一个重点就是修改内核参数,其 ...
- Sysctl命令及linux内核参数调整
一.Sysctl命令用来配置与显示在/proc/sys目录中的内核参数.如果想使参数长期保存,可以通过编辑/etc/sysctl.conf文件来实现. 命令格式: sysctl [-n ...
- 理解 Linux backlog/somaxconn 内核参数
https://jaminzhang.github.io/linux/understand-Linux-backlog-and-somaxconn-kernel-arguments/ 各参数的含义:h ...
- Linux之TCPIP内核参数
/proc/sys/net目录 参考1.Linux之TCPIP内核参数优化 所有的TCP/IP参数都位于/proc/sys/net目录下(请注意,对/proc/sys/net目录下内容的修改都是临时的 ...
- TCP三次握手与Linux的TCP内核参数优化
感谢各位技术大佬的资料分享,这里我把我理解的内容做一个整理 一:TCP的三次握手 1.TCP简述 TCP是一个面向连接的协议,在连接双方发送数据之前,首先需要建立一条连接.TCP建立连接可以简单称为: ...
- nginx的linux服务器内核参数调整【转】
概述 由于默认的linux内核参数考虑的是最通用场景,这明显不符合用于支持高并发访问的Web服务器的定义,所以需要修改Linux内核参数,让Nginx可以拥有更高的性能: 在优化内核时,可以做的事情很 ...
- Linux 下 Oracle 内核参数优化
数据库的性能优化涉及到整个数据库运行环境的方方面面,诸如操作系统,Oracle自身,存储,网络等等几个大块.而操作系统则是Oracle稳定运行与最大化性能的基石.本文主要描述基于Linux系统下 Or ...
- Linux oracle安装 内核参数讲解
在安装Oracle的时候需要调整linux的内核参数,但是各参数代表什么含义呢,下面做详细解析. Linux安装文档中给出的最小值: fs.aio-max-nr = 1048576 fs.file-m ...
- linux 内核参数调整优化网络
Linux系统内核设置优化tcp网络,# vi /etc/sysctl.conf,添加以下内容 net.ipv4.tcp_syncookies = 1 表示开启SYN Cookies.当出现SYN等待 ...
随机推荐
- 初始kafka
kafka 简介 Kafka是Linkedin于2010年12月份开源的消息系统 一种分布式的.基于发布/订阅的消息系统 ,另外提供数据分布式缓存功能 特点 消息持久化:通过O(1)的磁盘数据结构提供 ...
- D3_book 11.2 stack
<!-- book :interactive data visualization for the web 11.2 stack 一个堆叠图的例子 --> <!DOCTYPE htm ...
- My first paper is now available online
A two-grid discretization scheme of non-conforming finite elements for transmission eigenvalues
- poj2828 线段树单点更新
Buy Tickets Time Limit: 4000 MS Memory Limit: 65536 KB 64-bit integer IO format: %I64d , %I64u Java ...
- [NewCoder 7] 用两个栈实现队列
题目描述 用两个栈来实现一个队列,完成队列的Push和Pop操作. 队列中的元素为int类型. 水题,直接上代码: class Solution { public: void push(int nod ...
- Rabbit MQ 入门指南
rabbitMQ是一个在AMQP协议标准基础上完整的,可服用的企业消息系统.他遵循Mozilla Public License开源协议.采用 Erlang 实现的工业级的消息队列(MQ)服务器. Ra ...
- CefSharp访问需要认证网页或接口(在Request的Headers中添加认证Token)
public class MyRequestHandler : DefaultRequestHandler { public static readonly string VersionNumberS ...
- Grid++repor报表连接事件
//定义报表模板 private GridppReport Report = new GridppReport(); //载入报表模板数据 Report.LoadFromFile(GridppRepo ...
- openvSwitch 基本命令
建立ovs接口连接两个namespace组成二层网络 环境搭建拓扑 br0 +--------------------------------------+ +--+ +--+ +---+ | tap ...
- Flask系列07--Flask中的CBV, 蓝图的CBV
一.CBV使用 class base view 和django中类似 class Login(views.MethodView): # methods=["POST"," ...