zoukankan      html  css  js  c++  java
  • Linux操作系统内核参数

                Linux操作系统内核参数

                                              作者:尹正杰

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

    一./proc目录

    /proc目录:
      
      内核把自己内部状态信息及统计信息,以及可配置参数通过proc伪文件系统加以输出。换句话说,该目录实际上是一个虚拟目录,该目录里面的数据实际上都映射到内存中的,该目录数据均来自于内存。
    
    参数:
      只读:输出信息
      可写:可接受用户指定“新值”来实现对内核某功能或特性的配置
    
    /proc/sys:
      (1)sysctl命令用于查看或设定此目录中诸多参数
          sysctl -w path.to.parameter=VALUE
          sysctl -w kernel.hostname=mail.yinzhengjie.org.cn
      (2)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 = 0                    #定义路由转发为关闭状态
    net.ipv4.conf.default.rp_filter = 1
    net.ipv4.conf.default.accept_source_route = 0
    kernel.sysrq = 0
    kernel.core_uses_pid = 1
    net.ipv4.tcp_syncookies = 1
    kernel.msgmnb = 65536
    kernel.msgmax = 65536
    kernel.shmmax = 68719476736                  #定义程序可以使用的最大共享内存数,单位为字节
    kernel.shmall = 4294967296
    [root@yinzhengjie ~]# 
    [root@yinzhengjie ~]# cat /proc/sys/net/ipv4/ip_forward
    0
    [root@yinzhengjie ~]# 
    [root@yinzhengjie ~]# echo 1 > /proc/sys/net/ipv4/ip_forward    #临时开启路由转发功能
    [root@yinzhengjie ~]# 
    [root@yinzhengjie ~]# cat /proc/sys/net/ipv4/ip_forward
    1
    [root@yinzhengjie ~]#
    [root@yinzhengjie ~]# echo 68719476736/1024/1024/1024 | bc    #我们算出来kernel.shmmax其实就是64G
    64
    [root@yinzhengjie ~]# 
    [root@yinzhengjie ~]# cat /proc/sys/kernel/shmmax          #发现该数字和上面配置文件写的大小一模一样,因此这台服务器最大能共享的内存为64G,生产环境中我们的服务器可能是256G内存大小,因此默认的64G依旧还是太小了,尤其是使用Oracle数据库时应该将其改为256G
    68719476736
    [root@yinzhengjie ~]#

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

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

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

    [root@yinzhengjie ~]# cat /proc/sys/net/ipv4/icmp_echo_ignore_all 
    0
    [root@yinzhengjie ~]# 
    [root@yinzhengjie ~]# echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_all 
    [root@yinzhengjie ~]# 
    [root@yinzhengjie ~]# cat /proc/sys/net/ipv4/icmp_echo_ignore_all 
    1
    [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
  • 相关阅读:
    yaf(3) 正则路由
    yaf(1) 配置文件
    PHP 分页URL设计
    smarty模版目录疑问
    yaf(5) smarty
    yaf(2) layout 自定义目录结构
    php 倒计时出现0的情况
    PHP 单一入口框架设计简析
    利用jquery.load()实现html框架效果
    yaf(4) Yaf_Loader()
  • 原文地址:https://www.cnblogs.com/yinzhengjie/p/11965039.html
Copyright © 2011-2022 走看看