精华内容
下载资源
问答
  • 修改Linux内核参数

    2015-12-10 14:19:27
    设置Linux内核参数 /etc/sysctl.conf Linux如何在系统运行时修改内核参数(/proc/sys与/etc/sysctl.conf)    RedHat提供了非常好的方法,使我们可以在系统运行时更改内核参数,而不需要重新引导系统。这是通过/...

    设置Linux内核参数 /etc/sysctl.conf

    Linux如何在系统运行时修改内核参数(/proc/sys与/etc/sysctl.conf)  

     

    RedHat提供了非常好的方法,使我们可以在系统运行时更改内核参数,而不需要重新引导系统。这是通过/proc虚拟文件系统实现的。

     

    /proc/sys目录下存放着大多数的内核参数,并且设计成可以在系统运行的同时进行更改, 不过重新启动机器后会失效,可以通过更改/proc/sys中内核参数对应的文件 /etc/sysctl.conf 的内核参数来永久更改。

     

    下面我们以打开内核的 ip转发功能为例说明在系统运行时修改内核参数的两种方法。IP转发是指允许系统对来源和目的地都不是本机的数据包通过网络,RedHat默认屏蔽此功能,在需要用本机作为路由器、NAT等情况下需要开启此功能。

    方法一:修改/proc下内核参数文件内容

    直接修改内核参数ip_forward对应在/proc下的文件/proc/sys/net/ipv4/ip_forward。用下面命令查看ip_forward文件内容:
    # cat /proc/sys/net/ipv4/ip_forward
    该文件默认值0是禁止ip转发,修改为1即开启ip转发功能。修改命令如下:
    # echo 1 >/proc/sys/net/ipv4/ip_forward
    修改过后就马上生效,即内核已经打开ip转发功能。但如果系统重启后则又恢复为默认值0,如果想永久打开需要通过修改/etc/sysctl.conf文件的内容来实现。

    方法二:修改/etc/sysctl.conf文件

    默认sysctl.conf文件中有一个变量是
    net.ipv4.ip_forward = 0
    将后面值改为1,然后保存文件。因为每次系统启动时初始化脚本/etc/rc.d/rc.sysinit会读取/etc/sysctl.conf文件 的内容,所以修改后每次系统启动时都会开启ip转发功能。但只是修改sysctl文件不会马上生效,如果想使修改马上生效可以执行下面的命令:
    # sysctl –p
    在修改其他内核参数时可以向/etc/sysctl.conf文件中添加相应变量即可,

     

    下面介绍/proc/sys下内核文件与配置文件 sysctl.conf中变量的对应关系

     

    由于可以修改的内核参数都在/proc/sys目录下,所以sysctl.conf的变量名省略了目录的前面部分(/proc/sys)。

    将/proc/sys中的文件转换成sysctl中的变量依据下面两个简单的规则:
    1. 去掉前面部分/proc/sys
    2. 将文件名中的斜杠变为点
    这两条规则可以将/proc/sys中的任一文件名转换成sysctl中的变量名。
    例如:
    /proc/sys/net/ipv4/ip_forward =》 net.ipv4.ip_forward
    /proc/sys/kernel/hostname =》 kernel.hostname

    可以使用下面命令查询所有可修改的变量名
    # sysctl –a
    下面例举几个简单的内核参数:
    1. /proc/sys/kernel/shmmax:该文件指定内核所允许的最大共享内存段的大小。
    2. /proc/sys/kernel/threads-max:该文件指定内核所能使用的线程的最大数目。
    3. /proc/sys/kernel/hostname:该文件允许您配置网络主机名。
    4. /proc/sys/kernel/domainname:该文件允许您配置网络域名
    展开全文
  • 修改Linux内核参数提高Nginx服务器在高的时候的性能 并发 Linux下高并发的Nginx服务器,当TCP TIME_WAIT套接字数量经常达到两、三万,服务器很容易被拖死。通过修改Linux内核参数,可以减少Nginx服务器的TIME_WAIT套...

    修改Linux内核参数提高Nginx服务器在高的时候的性能
    并发 Linux下高并发的Nginx服务器,当TCP TIME_WAIT套接字数量经常达到两、三万,服务器很容易被拖死。通过修改Linux内核参数,可以减少Nginx服务器的TIME_WAIT套接字数量。

    vi /etc/sysctl.conf


    增加以下几行:
    引用
    net.ipv4.tcp_fin_timeout = 30
    net.ipv4.tcp_keepalive_time = 1200
    net.ipv4.tcp_syncookies = 1
    net.ipv4.tcp_tw_reuse = 1
    net.ipv4.tcp_tw_recycle = 1
    net.ipv4.ip_local_port_range = 1024    65000
    net.ipv4.tcp_max_syn_backlog = 8192
    net.ipv4.tcp_max_tw_buckets = 5000


    简单说明:
    net.ipv4.tcp_syncookies = 1 表示开启SYN Cookies。当出现SYN等待队列溢出时,启用cookies来处理,可防范少量SYN攻击,默认为0,表示关闭;
    net.ipv4.tcp_tw_reuse = 1 表示开启重用。允许将TIME-WAIT sockets重新用于新的TCP连接,默认为0,表示关闭;
    net.ipv4.tcp_tw_recycle = 1 表示开启TCP连接中TIME-WAIT sockets的快速回收,默认为0,表示关闭。
    net.ipv4.tcp_fin_timeout = 30 表示如果套接字由本端要求关闭,这个参数决定了它保持在FIN-WAIT-2状态的时间。
    net.ipv4.tcp_keepalive_time = 1200 表示当keepalive起用的时候,TCP发送keepalive消息的频度。缺省是2小时,改为20分钟。
    net.ipv4.ip_local_port_range = 1024    65000 表示用于向外连接的端口范围。缺省情况下很小:32768到61000,改为1024到65000。
    net.ipv4.tcp_max_syn_backlog = 8192 表示SYN队列的长度,默认为1024,加大队列长度为8192,可以容纳更多等待连接的网络连接数。
    net.ipv4.tcp_max_tw_buckets = 5000 表示系统同时保持TIME_WAIT套接字的最大数量,如果超过这个数字,TIME_WAIT套接字将立刻被清除并打印警告信息。默认为180000,改为5000。对于Apache、Nginx等服务器,上几行的参数可以很好地减少TIME_WAIT套接字数量,但是对于Squid,效果却不大。此项参数可以控制TIME_WAIT套接字的最大数量,避免Squid服务器被大量的TIME_WAIT套接字拖死。

    echo “====================== 执行以下命令使配置生效:=========================”#http://jimmyli.jimmyli.jimmyli.blog.51cto.com 更改linux内核参数后,立即生效的命令!

    /sbin/sysctl -p

    Nginx优化

    使用FastCGI 缓存
    fastcgi_cache TEST
    开启FastCGI 缓存并且为其制定一个名称。个人感觉开启缓存非常有用,可以有效降低CPU 负载,并且防止502 错误。

    fastcgi_cache_path /usr/local/nginx/fastcgi_cache levels=1:2
    keys_zone=TEST:10m
    inactive=5m;
    这个指令为FastCGI 缓存指定一个路径,目录结构等级,关键字区域存储时间和非活动删除时间。


    压力测试,用 webbench ,测试结果只能做为参考。
    后续还有其他之前做过的参数修改,有空一起分享下。欢迎朋友一起交流,讨论。扣扣:柒⑥柒陆叁⑤叁伍






         本文转自jimmy_lixw 51CTO博客,原文链接:http://blog.51cto.com/jimmyli/600839,如需转载请自行联系原作者



    展开全文
  • 事实上,我们可以简单的通过修改Linux内核参数,可以减少Nginx服务器 的TIME_WAIT套接字数量,进而提高Nginx服务器并发性能。 vi /etc/sysctl.conf 增加以下几行: net.ipv4.tcp_fin_timeout = 30 n...

    当linux下Nginx达到并发数很高,TCP TIME_WAIT套接字数量经常达到两、三万,这样服务器很容易被拖死。事实上,我们可以简单的通过修改Linux内核参数,可以减少Nginx服务器 的TIME_WAIT套接字数量,进而提高Nginx服务器并发性能。
     
    vi /etc/sysctl.conf
     
    增加以下几行:
    net.ipv4.tcp_fin_timeout = 30
    net.ipv4.tcp_keepalive_time = 1200

    net.ipv4.tcp_syncookies = 1
    net.ipv4.tcp_tw_reuse = 1
    net.ipv4.tcp_tw_recycle = 1
    net.ipv4.ip_local_port_range = 1024    65000
    net.ipv4.tcp_max_syn_backlog = 8192
    net.ipv4.tcp_max_tw_buckets = 5000简单说明:
    net.ipv4.tcp_syncookies = 1 表示开启SYN Cookies。当出现SYN等待队列溢出时,启用cookies来处理,可防范少量SYN攻击,默认为0,表示关闭;
    net.ipv4.tcp_tw_reuse = 1 表示开启重用。允许将TIME-WAIT sockets重新用于新的TCP连接,默认为0,表示关闭;
    net.ipv4.tcp_tw_recycle = 1 表示开启TCP连接中TIME-WAIT sockets的快速回收,默认为0,表示关闭。
    net.ipv4.tcp_fin_timeout = 30 表示如果套接字由本端要求关闭,这个参数决定了它保持在FIN-WAIT-2状态的时间。
    net.ipv4.tcp_keepalive_time = 1200 表示当keepalive起用的时候,TCP发送keepalive消息的频度。缺省是2小时,改为20分钟。
    net.ipv4.ip_local_port_range = 1024    65000 表示用于向外连接的端口范围。缺省情况下很小:32768到61000,改为1024到65000。
    net.ipv4.tcp_max_syn_backlog = 8192 表示SYN队列的长度,默认为1024,加大队列长度为8192,可以容纳更多等待连接的网络连接数。
    net.ipv4.tcp_max_tw_buckets = 5000 表示系统同时保持TIME_WAIT套接字的最大数量,如果超过这个数字,TIME_WAIT套接字将立刻被清除并打印警告信息。默认为180000,改 为5000。对于Apache、Nginx等服务器,上几行的参数可以很好地减少TIME_WAIT套接字数量,但是对于Squid,效果却不大。此项参 数可以控制TIME_WAIT套接字的最大数量,避免Squid服务器被大量的TIME_WAIT套接字拖死。
     
    echo “====================== 执行以下命令使配置生效:=========================”
    #更改linux内核参数后,立即生效的命令!
     
    /sbin/sysctl -p
     
    Nginx优化
     
    使用FastCGI 缓存
    fastcgi_cache TEST
    开启FastCGI 缓存并且为其制定一个名称。个人感觉开启缓存非常有用,可以有效降低CPU 负载,并且防止502 错误。
     
    fastcgi_cache_path /usr/local/nginx/fastcgi_cache levels=1:2
    keys_zone=TEST:10m
    inactive=5m;
    这个指令为FastCGI 缓存指定一个路径,目录结构等级,关键字区域存储时间和非活动删除时间

    其它说明

    Nginx 是由 Igor Sysoev 为俄罗斯访问量第二的 Rambler.ru 站点开发的,它已经在该站点运行超过两年半了。Igor 将源代码以类BSD许可证的形式发布。

    在高并发连接的情况下,Nginx是Apache服务器不错的替代品。Nginx同时也可以作为7层负载均衡服务器来使用。根据我的测试结 果,Nginx 0.6.31 + PHP 5.2.6 (FastCGI) 可以承受3万以上的并发连接数,相当于同等环境下Apache的10倍。

      根据我的经验,4GB内存的服务器+Apache(prefork模式)一般只能处理3000个并发连接,因为它们将占用3GB以上的内存,还 得为系统预留1GB的内存。我曾经就有两台Apache服务器,因为在配置文件中设置的MaxClients为4000,当Apache并发连接数达到 3800时,导致服务器内存和Swap空间用满而崩溃。

      而这台 Nginx 0.6.31 + PHP 5.2.6 (FastCGI) 服务器在3万并发连接下,开启的10个Nginx进程消耗150M内存(15M*10=150M),开启的64个php-cgi进程消耗1280M内存 (20M*64=1280M),加上系统自身消耗的内存,总共消耗不到2GB内存。如果服务器内存较小,完全可以只开启25个php-cgi进程,这样 php-cgi消耗的总内存数才500M。

    转载于:https://www.cnblogs.com/wpjamer/articles/7379612.html

    展开全文
  • 修改Linux内核参数vm.swappiness

    千次阅读 2019-04-15 16:53:47
    vm.swappiness的值越大,表示越积极使用swap分区,越小表示越积极使用物理内存。默认值swappiness=60。 1、查看: cat /proc/sys/vm/swappiness 2、临时调整: sysctl vm.swappiness = 10 ...修改vm.sw...

    内核参数vm.swappiness控制换出运行时内存的相对权重,参数值大小对如何使用swap分区有很大联系。值越大,表示越积极使用swap分区,越小表示越积极使用物理内存。默认值swappiness=60,表示内存使用率超过100-60=40%时开始使用交换分区。swappiness=0的时候表示最大限度使用物理内存,然后才是 swap空间;swappiness=100的时候表示积极使用swap分区,并把内存上的数据及时搬运到swap空间。(网上有的说,对于3.5以后的内核和RedHat 2.6.32之后的内核,设置为0会禁止使用swap,从而引发out of memory,这种情况可以设置为1。)

    需要根据服务器运行的程序类型,来设置不同的参数值。例如,对于Oracle一般设置为10;对于MySQL一般设置为1,尽可能不用swap分区。

    调整vm.swappiness的方法:

    1、查看参数值:

    cat /proc/sys/vm/swappiness
    

    2、临时调整:

    sysctl vm.swappiness = 10 
    cat /proc/sys/vm/swappiness
    

    3、永久调整:

    vi /etc/sysctl.conf 
    

    修改vm.swappiness=10

    然后加载参数:

    sysctl -p
    

    完毕。

    展开全文
  • 安装ORACLE时在Linux上设置内核参数的含义kernel.shmall = 2097152kernel.shmmax = 2147483648 kernel.shmmni = 4096kernel.sem = 250 32000 100 128 ...
  • 在节省成本的情况下,可以考虑修改Linux 的内核TCP/IP参数来部分实现;如果通过修改内核参数也无法解决的负载问题,也只能考虑升级服务器了。 Linux系统下,TCP/IP连接断开后,会以TIME_WAIT状态保留...
  • 1.参数设置 查看相关的参数 sysctl -a|grep tcp_keepalive net.ipv4.tcp_keepalive_intvl = 30 net.ipv4.tcp_keepalive_probes = 2 net.ipv4.tcp_keepalive_time = 160 设置相关的参数 sysctl -w ...
  • 编辑/etc/sysctl.conf文件,添加一下内容net.ipv4.tcp_fin_timeout = 30 net.ipv4.tcp_keepalive_time = 1200 net.ipv4.tcp_syncookies = 1 net.ipv4.tcp_tw_reuse = 1 net.ipv4.tcp_tw_recycle = 1 ...
  • 新增的一组Apache服务器上线以来,我用netstat -an命令发现服务器中有大量状态为TIME-WAIT的TCP连接,于是用/sbin/sysctl -a查看了一下Linux的各项内核参数,并翻阅有关资料,决定修改其中的两项参数,以达到减少TCP...
  • 最近网站流量有些上升,感觉到访问速度有些慢...修改了/etc/sysctl.conf中一些内核参数;解决了TCP连接中TIME-WAIT sockets的问题。 编辑/etc/sysctl.conf文件,增加如下内容: #vi /etc/sysctl.conf net.ipv4.tcp_fi
  • lang=zhipcs -l #该命令可以看到内核参数的值(共享内存段,信号量,消息...
  • [文章作者:张宴 本文版本:v1.0 最后修改:2007.07.24 转载请注明出处:http://blog.s135.com] 新增的一组...a查看了一下Linux的各项内核参数,并翻阅有关资料,决定修改其中的两项参数,以达到减少TCP连接中TI...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,764
精华内容 705
关键字:

修改linux内核参数

linux 订阅