根据当前机器配置实现内核参数初始化脚本

#对一台新机器根据当前机器配置实现内核参数的初始化
#将脚本加入计划任务后,若机器配置出现更改可根据配置的更改修改内核参数
#!/bin/bash 
Mem=$(free | grep Mem | awk ‘{print $2}‘) #获取系统当前内存大小 
parameter=$(expr $Mem / 64) #计算内核参数配置 
#echo $Mem $parameter 
conf=(net.ipv4.tcp_tw_recycle net.ipv4.tcp_tw_reuse net.ipv4.tcp_syncookies net.ipv4.tcp_syncookies net.ipv4.tcp_synack_retries net.ipv4.tcp_syn_retries net.ipv4.tcp_fin_timeout) 
for i in ${conf[@]} 
do
        determine=$(cat /etc/sysctl.conf | grep $i) 
        if [ -z "$determine" ]; then
                echo "$i = 1" >> /etc/sysctl.conf 
        fi        
done
determine=$(cat /etc/sysctl.conf | grep net.ipv4.tcp_max_tw_buckets) 
if [  -z "$determine" ]; then
        echo "net.ipv4.tcp_max_tw_buckets = 6000" >> /etc/sysctl.conf 
fi
determine=$(cat /etc/sysctl.conf | grep net.ipv4.tcp_keepalive_time) 
if [  -z "$determine" ]; then
        echo "net.ipv4.tcp_keepalive_time = 30" >> /etc/sysctl.conf 
fi
Mem_conf=(net.ipv4.tcp_max_orphans net.ipv4.tcp_max_syn_backlog net.core.somaxconn net.core.netdev_max_backlog) 
for mem_conf in ${Mem_conf[@]} 
do
        determine=$(cat /etc/sysctl.conf | grep $mem_conf) 
        if [ -z "$determine" ]; then
                echo "$mem_conf = $parameter" >> /etc/sysctl.conf 
        else
                sed -i ‘s/‘‘‘$mem_conf‘‘‘ = [0-9]*/‘‘‘$mem_conf‘‘‘ = ‘‘‘$parameter‘‘‘/‘ /etc/sysctl.conf 
        fi
done
sysctl -p 
determine=$(cat /etc/security/limits.d/90-nproc.conf | grep "65535") 
if [  -z "$determine" ]; then
        echo "*               hard    nproc           65535" >> /etc/security/limits.d/90-nproc.conf 
fi
determine=$(cat /etc/security/limits.conf | grep "*               hard    nofile          65535") 
if [  -z "$determine" ]; then
        sed -i ‘/End of file/i\*               hard    nofile          65535‘ /etc/security/limits.conf 
fi
determine=$(cat /etc/security/limits.conf | grep "*               soft    nofile          65535") 
if [  -z "$determine" ]; then
        sed -i ‘/End of file/i\*               soft    nofile          65535‘ /etc/security/limits.conf 
fi
determine=$(cat /etc/security/limits.conf | grep "*               hard    nproc          65535") 
if [  -z "$determine" ]; then
        sed -i ‘/End of file/i\*               hard    nproc          65535‘ /etc/security/limits.conf 
fi
determine=$(cat /etc/security/limits.conf | grep "*               soft    nproc          65535") 
if [  -z "$determine" ]; then
        sed -i ‘/End of file/i\*               soft    nproc          65535‘ /etc/security/limits.conf 
fi
determine=$(cat /etc/profile | grep "export HISTFILESIZE=100000") 
if [ -z "$determine" ]; then
        echo "export HISTFILESIZE=100000" >> /etc/profile
fi
determine=$(cat /etc/profile | grep "export HISTTIMEFORMAT=\"%Y-%m-%d %H:%M:%S \"") 
if [ -z "$determine" ]; then
        echo "export HISTTIMEFORMAT=\"%Y-%m-%d %H:%M:%S \"" >> /etc/profile
fi
source /etc/profile
时间: 2024-07-31 04:49:31

根据当前机器配置实现内核参数初始化脚本的相关文章

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

设置Linux内核参数 /etc/sysctl.conf   配置 Linux 内核参数修改后不用重启动更新: /sbin/sysctl -p 打开/etc/sysctl.conf 复制如下内容kernel.shmall = 2097152kernel.shmmax = 2147483648kernel.shmmni = 4096kernel.sem = 250 32000 100 128fs.file-max = 65536net.ipv4.ip_local_port_range = 1024

nginx 高并发参数配置及linux内核参数优化

一.一般来说nginx 配置文件中对优化比较有作用的为以下几项: 1.  worker_processes 8; nginx 进程数,建议按照cpu 数目来指定,一般为它的倍数 (如,2个四核的cpu计为8). 2.  worker_cpu_affinity 00000001 0000001000000100 00001000 00010000 00100000 01000000 10000000; 为每个进程分配cpu,上例中将8 个进程分配到8 个cpu,当然可以写多个,或者将一个进程分配到

Oracle Study之案例--安装Oracle内核参数配置

Oracle Study之案例--安装Oracle内核参数配置 在Linux系统下,安装Oracle之前,除了检查操作系统的硬件和软件是否满足安装需要之外,一个重点就是修改内核参数,其中最主要的是和内存相关的参数设置. 案例分析: 查看当前系统的内核参数配置: [[email protected] ~]# sysctl -p net.ipv4.ip_forward = 0 net.ipv4.conf.default.rp_filter = 1 net.ipv4.conf.default.acce

配置sysctl.conf文件修改内核参数

sysctl.conf文件 linux系统中/proc/sys目录下存放的内核参数,可以在系统运行时进行更改,不过重启机器后配置就会失效. 由于/proc/sys下内核文件与配置文件sysctl.conf中变量存在着对应关系,在/etc/sysctl.conf文件中修改配置内核参数可以实现永久生效,以下是本人整理的常用参数配置 # Controls source route verification net.ipv4.conf.default.rp_filter = 1 net.ipv4.ip_

查看linux机器配置&内核版本

[[email protected] bin]# uname  -a   Linux hadoop1 2.6.32-431.el6.x86_64 #1 SMP Fri Nov 22 03:15:09 UTC 2013 x86_64 x86_64 x86_64 GNU/Linux [[email protected] bin]#  cat /proc/version Linux version 2.6.32-431.el6.x86_64 ([email protected].bsys.dev.ce

linux内核参数优化

from: http://apps.hi.baidu.com/share/detail/15652067 http://keyknight.blog.163.com/blog/static/3663784020104152407759/ http://blog.sina.com.cn/s/blog_6e2aeba30100uve3.html sysctl.conf 优化 The sysctl.conf of a server is something that is seldom optimiz

TCP/IP及内核参数优化调优

Linux下TCP/IP及内核参数优化有多种方式,参数配置得当可以大大提高系统的性能,也可以根据特定场景进行专门的优化,如TIME_WAIT过高,DDOS攻击等等.如下配置是写在sysctl.conf中,可使用sysctl -p生效,相关参数仅供参考,具体数值还需要根据机器性能,应用场景等实际情况来做更细微调整. net.core.netdev_max_backlog = 400000#该参数决定了,网络设备接收数据包的速率比内核处理这些包的速率快时,允许送到队列的数据包的最大数目. net.c

linux 内核参数优化

linux 内核参数优化 Sysctl命令及linux内核参数调整 一.Sysctl命令用来配置与显示在/proc/sys目录中的内核参数.如果想使参数长期保存,可以通过编辑/etc/sysctl.conf文件来实现. 命令格式: sysctl [-n] [-e] -w variable=value sysctl [-n] [-e] -p (default /etc/sysctl.conf) sysctl [-n] [-e] –a 常用参数的意义: -w  临时改变某个指定参数的值,如 # sy

linux内核参数优化调优

TCP/IP及内核参数优化调优 Linux下TCP/IP及内核参数优化有多种方式,参数配置得当可以大大提高系统的性能,也可以根据特定场景进行专门的优化,如TIME_WAIT过高,DDOS攻击等等.如下配置是写在sysctl.conf中,可使用sysctl -p生效,相关参数仅供参考,具体数值还需要根据机器性能,应用场景等实际情况来做更细微调整. net.core.netdev_max_backlog = 400000#该参数决定了,网络设备接收数据包的速率比内核处理这些包的速率快时,允许送到队列