Linux操作系统内核参数

                                          作者:尹正杰

版权声明:原创作品,谢绝转载!否则将追究法律责任。

一./proc目录

/proc目录:
  
  内核把自己内部状态信息及统计信息,以及可配置参数通过proc伪文件系统加以输出。换句话说,该目录实际上是一个虚拟目录,该目录里面的数据实际上都映射到内存中的,该目录数据均来自于内存。 参数:
  只读:输出信息
  可写:可接受用户指定“新值”来实现对内核某功能或特性的配置 /proc/sys:
  ()sysctl命令用于查看或设定此目录中诸多参数
      sysctl -w path.to.parameter=VALUE
      sysctl -w kernel.hostname=mail.yinzhengjie.org.cn
  ()echo命令通过重定向方式也可以修改大多数参数的值
      echo "VALUE" > /proc/sys/path/to/parameter
      echo “websrv” > /proc/sys/kernel/hostname
sysctl命令:
  默认配置文件:/etc/sysctl.conf(保存着"/proc/sys"目录下所有的内核参数)
  (1)设置某参数
      sysctl -w parameter=VALUE
  (2)通过读取配置文件设置参数
      sysctl -p [/path/to/conf_file]
  (3)查看所有生效参数
      sysctl -a

1>."/proc/sys"的内核参数和"/etc/sysctl.conf"一一对应

[root@yinzhengjie ~]# egrep -v "^#|^$" /etc/sysctl.conf
net.ipv4.ip_forward =                     #定义路由转发为关闭状态
net.ipv4.conf.default.rp_filter =
net.ipv4.conf.default.accept_source_route =
kernel.sysrq =
kernel.core_uses_pid =
net.ipv4.tcp_syncookies =
kernel.msgmnb =
kernel.msgmax =
kernel.shmmax =                  #定义程序可以使用的最大共享内存数,单位为字节
kernel.shmall =
[root@yinzhengjie ~]#
[root@yinzhengjie ~]# cat /proc/sys/net/ipv4/ip_forward [root@yinzhengjie ~]#
[root@yinzhengjie ~]# echo > /proc/sys/net/ipv4/ip_forward    #临时开启路由转发功能
[root@yinzhengjie ~]#
[root@yinzhengjie ~]# cat /proc/sys/net/ipv4/ip_forward [root@yinzhengjie ~]#
[root@yinzhengjie ~]# echo /// | bc    #我们算出来kernel.shmmax其实就是64G [root@yinzhengjie ~]#
[root@yinzhengjie ~]# cat /proc/sys/kernel/shmmax          #发现该数字和上面配置文件写的大小一模一样,因此这台服务器最大能共享的内存为64G,生产环境中我们的服务器可能是256G内存大小,因此默认的64G依旧还是太小了,尤其是使用Oracle数据库时应该将其改为256G [root@yinzhengjie ~]#

2>.修改"vm.drop_caches"(清空缓冲区)参数

[root@yinzhengjie ~]# free -h
total used free shared buffers cached
Mem: .7G 844M .9G 3.9M 68M 423M
-/+ buffers/cache: 352M .4G
Swap: .9G 0B .9G
[root@yinzhengjie ~]#
[root@yinzhengjie ~]# dd if=/dev/zero of=bigfile bs=1M count=
+ records in
+ records out
bytes (1.1 GB) copied, 5.60672 s, MB/s
[root@yinzhengjie ~]#
[root@yinzhengjie ~]# free -h
total used free shared buffers cached
Mem: .7G .9G .9G 3.9M 68M 1.4G
-/+ buffers/cache: 381M .4G
Swap: .9G 0B .9G
[root@yinzhengjie ~]#
[root@yinzhengjie ~]# cat /proc/sys/vm/drop_caches [root@yinzhengjie ~]#
[root@yinzhengjie ~]# echo > /proc/sys/vm/drop_caches       #立即释放缓冲区的数据
[root@yinzhengjie ~]#
[root@yinzhengjie ~]# cat /proc/sys/vm/drop_caches [root@yinzhengjie ~]#
[root@yinzhengjie ~]# free -h
total used free shared buffers cached
Mem: .7G 407M .3G 3.9M 488K 57M
-/+ buffers/cache: 348M .4G
Swap: .9G 0B .9G
[root@yinzhengjie ~]#

3>.修改"net.ipv4.icmp_echo_ignore_all"(禁ping)参数

[root@yinzhengjie ~]# cat /proc/sys/net/ipv4/icmp_echo_ignore_all 

[root@yinzhengjie ~]#
[root@yinzhengjie ~]# echo > /proc/sys/net/ipv4/icmp_echo_ignore_all
[root@yinzhengjie ~]#
[root@yinzhengjie ~]# cat /proc/sys/net/ipv4/icmp_echo_ignore_all [root@yinzhengjie ~]#

4>.总结

  以上的修改均为临时修改的方法,会立即生效,但缺点就是重启操作系统后又会恢复到默认模式。

  因此,为了持久化保存文件内容到磁盘上,我们推荐将修改写入"/etc/sysctl.conf",可以通过system命令修改也可以手动写入。

二./sys目录

/sys目录:
  sysfs:
    为用户使用的伪文件系统,输出内核识别出的各硬件设备的相关属性信息,也有内核对硬件特性的设定信息;有些参数是可以修改的,用于调整硬件工作特性
  
  udev通过此路径下输出的信息动态为各设备创建所需要设备文件,udev是运行用户空间程序   专用工具:udevadmin, hotplug

  udev为设备创建设备文件时,会读取其事先定义好的规则文件,一般在/etc/udev/rules.d及/usr/lib/udev/rules.d目录下   该目录主要是管理硬件的,但是我们运维对它有所了解即可,因为硬件信息一半都交由操作系统来管理。

三.大数据集群内核参数优化案例

博主推荐阅读:
  https://www.cnblogs.com/yinzhengjie/p/10367447.html

Linux操作系统内核参数的更多相关文章

  1. 专家解读Linux操作系统内核中的GCC特性

    专家解读Linux操作系统内核中的GCC特性   Linux内核使用GNU Compiler Collection (GCC)套件的几个特殊功能.这些功能包括提供快捷方式和简化以及向编译器提供优化提示 ...

  2. Linux操作系统内核编译之NTFS文件系统模块支持案例

    Linux操作系统内核编译之NTFS文件系统模块支持案例 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.内核编译概述 单内核体系设计.但充分借鉴了微内核设计体系的优点,为内核引 ...

  3. DBA不可不知的操作系统内核参数

    背景 操作系统为了适应更多的硬件环境,许多初始的设置值,宽容度都很高. 如果不经调整,这些值可能无法适应HPC,或者硬件稍好些的环境. 无法发挥更好的硬件性能,甚至可能影响某些应用软件的使用,特别是数 ...

  4. 【Linux基础】Unix与Linux操作系统介绍

    一.Unix和Linux操作系统概述 1.Unix是什么 UNIX是一个计算机操作系统,一个用来协调.管理和控制计算机硬件和软件资源的控制程序. 2.Unix特点 (1)多用户:在同一时刻可以有多个用 ...

  5. Linux云计算-01_介绍以及Linux操作系统安装

    1 学习目的 兴趣爱好 技能提升 找到满意的工作 2 什么是云计算 云计算(cloud computing)是分布式计算的一种,指的是通过网络"云"将巨大的数据计算处理程序分解成无 ...

  6. Linux查看版本当前操作系统内核信息

    1. # uname -a (Linux查看版本当前操作系统内核信息) 输出 Linux xxx --generic #~-Ubuntu SMP Wed Jul :: UTC x86_64 x86_6 ...

  7. Linux系统内核参数优化

    Linux服务器内核参数优化 cat >> /etc/sysctl.conf << EOF # kernel optimization net.ipv4.tcp_fin_tim ...

  8. 操作系统内核Hack:(四)内核雏形

    操作系统内核Hack:(四)内核雏形 在本系列的前一篇文章<操作系统内核Hack:(三)BootLoader制作>中,我们制作出了一个两阶段引导BootLoader,并进入了一个内核的空壳 ...

  9. 操作系统内核Hack:(三)引导程序制作

    操作系统内核Hack:(三)引导程序制作 关于本文涉及到的完整源码请参考MiniOS的v1_bootloader分支. 1.制作方法 现在我们已经了解了关于BootLoader的一切知识,让我们开始动 ...

随机推荐

  1. nuxtjs如何通过路由meta信息控制路由查看权限

    我们知道NUXTJS可以通过路由中间件进行路由鉴权,中间件允许您定义一个自定义函数运行在一个页面或一组页面渲染之前. 但是我在实际使用过程中发现,中间件只有在路由跳转到路由中时才会进入,而在强制刷新网 ...

  2. Java 读取和写入文本文件

    package test_java; import java.io.BufferedReader; import java.io.File; import java.io.FileOutputStre ...

  3. Linux下的串口编程(转)

    https://blog.csdn.net/tigerjibo/article/details/6179291 #include<stdio.h> /*标准输入输出定义*/ #includ ...

  4. Unity开发:5.0+版本标准资源包无内置问题

    一.问题如下: 在Unity中,一般都会内置有基础的资源包,可以在Assets->Import Package中,点击其下的子项进行导入: 但是我发现,5.0版本与之前的4.x版本相比,安装包变 ...

  5. Gamma展示

    团队成员简介 团队成员 角色 个人博客地址 刘峻辰 后端开发 刘峻辰 焦云鹏 后端开发 焦云鹏 赵智源 测试&服务器部署 赵智源 肖萌威 前端开发 肖萌威 杨亦鑫 前端开发 杨亦鑫 戴荣 UI ...

  6. 微信公众平台开发(150)——从新浪云SAE上传图片到图文消息

    从新浪云SAE上传图片到图文消息,只能用于图文消息中, 没有个数限制 if (!empty($_FILES['qrcode']['name'])){ $filename = time()." ...

  7. 1-7docke的网络模式

    1.Bridge模式 bridge 模式是 docker 的默认⽹络模式,不写 –net 参数,就是 bridge 模式.比如使⽤ docker run - p 时 工作模式从网上找了一个,如下 例子 ...

  8. Linux简介和各发行版介绍

    一.Linux 简介 Linux 内核最初只是由芬兰人李纳斯·托瓦兹(Linus Torvalds)在大学上学时出于个人爱好而编写的. Linux 是一套免费使用和自由传播的类 Unix 操作系统,是 ...

  9. IO流一些问题的总结

    字节流的继承体系 字符流的继承体系 字符编码是什么?常见的字符编码表有哪些? 字符编码(英语:Character encoding)也称字集码,是把字符集中的字符编码为指定集合中某一对象,以便文本在计 ...

  10. ssh密码登录+ Google Authenticator 实现双向认证

    通常我们直接通过ssh输入密码连接服务器,但这样很容易出现暴力破解情况,所以我们可以结合google的动态认证+ssh密码,这样能够大大的提升登陆的安全. 简单来说,就是当用户通过ssh登陆系统时,先 ...