Linux系统调优——实战

Posted xuegodsvip

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux系统调优——实战相关的知识,希望对你有一定的参考价值。

1、关闭Selinux

2、清空防火墙并设置基本规则

3、添加user用户并进行Sudo授权管理(根据需求添加自己的用户)

4、禁用Root远程登录

5、禁用不使用的自启动服务

6、删除不使用的系统用户

7、关闭重启组合键(ctl-alt-delete)

8、调整文件描述符大小

9、修改系统显示信息

10、修改历史记录

11、同步系统时间

12、内核参数优化

[root@localhost ~]# vi optimizing.sh

#!/bin/bash

cat << EOF

+---------------------------------------+

|      Start Optimize ......            |

+---------------------------------------+

EOF

########## Shut selinux ##########

sed -i "s/SELINUX=enforcing/SELINUX=disabled/g" /etc/selinux/config

echo "Shut selinux.                            [ OK ]"

########## Set firewall ##########

/sbin/iptables -F

/sbin/iptables -I INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT

/sbin/iptables -A INPUT -p tcp --dport 80 -j ACCEPT

/sbin/iptables -A INPUT -p tcp --dport 22 -j ACCEPT

/sbin/iptables -A INPUT -p tcp --dport 53 -j ACCEPT

/sbin/iptables -A INPUT -p udp --dport 53 -j ACCEPT

/sbin/iptables -A INPUT -p udp --dport 123 -j ACCEPT

/sbin/iptables -A INPUT -p icmp -j ACCEPT

/sbin/iptables -P INPUT DROP

/etc/init.d/iptables save > /dev/null 2>&1

echo "Set firewall.                            [ OK ]"

########## Auth and add user ##########

/usr/sbin/useradd user > /dev/null 2>&1 #添加user用户并设置密码123.com

if [[ $? -eq 0 ]];then

echo "123.com" | passwd --stdin user > /dev/null 2>&1

sed -i "99 s/^/user    ALL=(ALL)       ALL/" /etc/sudoers

echo "Auth and add user.                       [ OK ]"

else

echo "User already exist!                [Fail]"

fi

########## Shut root login ##########

sed -i "s/#PermitRootLogin yes/PermitRootLogin no/g" /etc/ssh/sshd_config

sed -i "s/#PermitEmptyPasswords no/PermitEmptyPasswords no/g" /etc/ssh/sshd_config

sed -i "s/#UseDNS yes/UseDNS no/g" /etc/ssh/sshd_config

echo "Shut root login.                         [ OK ]"

########## Forbidden not use service ##########

/sbin/chkconfig auditd off

/sbin/chkconfig blk-availability off

/sbin/chkconfig ip6tables off

/sbin/chkconfig lvm2-monitor off

/sbin/chkconfig netfs off

/sbin/chkconfig udev-post off

echo "Forbidden not use service.               [ OK ]"

########## Delete not use user ##########

/usr/sbin/userdel adm > /dev/null 2>&1

/usr/sbin/userdel lp > /dev/null 2>&1

/usr/sbin/userdel shutdown > /dev/null 2>&1

/usr/sbin/userdel halt > /dev/null 2>&1

/usr/sbin/userdel uucp > /dev/null 2>&1

/usr/sbin/userdel operator > /dev/null 2>&1

/usr/sbin/userdel games > /dev/null 2>&1

/usr/sbin/userdel gopher > /dev/null 2>&1

if [[ $? -eq 0 ]];then

echo "Delete not use service.                  [ OK ]"

else

echo "Not use user already deleted!          [Fail]"

fi

########## Shut reboot combination key ##########

sed -i \'s#exec /sbin/shutdown -r now#\\#exec /sbin/shutdown -r now#\' /etc/init/control-alt-delete.conf

echo "Shut reboot combination key.               [ OK ]"

########## Modify file descriptor size ##########

echo "*                soft    nofile         102400" >> /etc/security/limits.conf

echo "*                hard    nofile         102400" >> /etc/security/limits.conf

echo "Modify file descriptor size.             [ OK ]"

########## Modify system show message ##########

echo "Welcome to Server." >/etc/issue

echo "Welcome to Server." >/etc/redhat-release

echo "Modify system show message.              [ OK ]"

########## Modify history ##########

sed -i "s/HISTSIZE=1000/HISTSIZE=10/g" /etc/profile

source /etc/profile

echo "Modify history.                          [ OK ]"

########## Sync timezone ##########

yum install ntp -y > /dev/null 2>&1

cp -rf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime

/usr/sbin/ntpdate cn.pool.ntp.org > /dev/null 2>&1

/sbin/hwclock -w

echo "0 * * * * /usr/sbin/ntpdate cn.pool.ntp.org ; hwclock -w" >> /etc/crontab

echo "Sync timezone.                     [ OK ]"

########## Kernel optimize ##########

cat >> /etc/sysctl.conf << EOF

net.ipv4.tcp_fin_timeout = 2      

net.ipv4.tcp_syncookies = 1       

net.ipv4.tcp_tw_reuse = 1       

net.ipv4.tcp_tw_recycle = 1       

net.ipv4.ip_local_port_range = 4096 65000

net.ipv4.tcp_max_tw_buckets = 5000

net.ipv4.tcp_max_syn_backlog = 4096

net.core.netdev_max_backlog =  10240

net.core.somaxconn = 2048         

net.core.wmem_default = 4096000   

net.core.rmem_default = 4096000   

net.core.rmem_max = 4096000       

net.core.wmem_max = 4096000       

net.ipv4.tcp_synack_retries = 2   

net.ipv4.tcp_syn_retries = 2      

net.ipv4.tcp_tw_recycle = 1       

net.ipv4.tcp_max_orphans = 3276800

net.ipv4.tcp_mem = 94500000 915000000 927000000

EOF

echo "Kernel optimize.                         [ OK ]"

cat << EOF

+---------------------------------------+

|      Optimize the end ......          |

|      Please reboot your system !      |

+---------------------------------------+

EOF

13、禁止使用Ctrl+Alt+Del快捷键重启服务器

cp /etc/inittab  /etc/inittabbak

vi /etc/inittab    #注释掉下面这一行

#ca::ctrlaltdel:/sbin/shutdown -t3 -r now

14、使用yum update更新系统时不升级内核,只更新软件包

注意:由于系统与硬件的兼容性问题,有可能升级内核后导致服务器不能正常启动,这是非常可怕的,没有特别的需要,建议不要随意升级内核。

cp /etc/yum.conf    /etc/yum.confbak

修改yum的配置文件 vi /etc/yum.conf  在的最后添加 exclude=kernel*

直接在yum的命令后面加上如下的参数:

yum --exclude=kernel* update

查看系统版本  cat /etc/issue

查看内核版本  uname –a

15、关闭Centos自动更新

chkconfig --list yum-updatesd  #显示当前系统状态

yum-updatesd    0:关闭  1:关闭  2:启用  3:启用  4:启用  5:启用  6:关闭    

service yum-updatesd stop      #关闭  开启参数为start

停止 yum-updatesd:                                        [确定]

service yum-updatesd status   #查看是否关闭

yum-updatesd 已停

chkconfig --level 35 yum-updatesd off  #禁止开启启动(系统模式为3、5)

chkconfig yum-updatesd off  #禁止开启启动(所有启动模式全部禁止)  

chkconfig --list yum-updatesd  #显示当前系统状态

yum-updatesd    0:关闭  1:关闭  2:启用  3:关闭  4:启用  5:关闭  6:关闭

15、关闭多余的虚拟控制台

我们知道从控制台切换到 X 窗口,一般采用 Alt-F7 ,为什么呢?因为系统默认定义了 6 个虚拟控制台,

所以 X 就成了第7个。实际上,很多人一般不会需要这么多虚拟控制台的,修改/etc/inittab ,注释掉那些你不需要的。

 

cp  /etc/inittab  /etc/inittabbak

vi /etc/inittab

# Run gettys in standard runlevels

1:2345:respawn:/sbin/mingetty tty1

#2:2345:respawn:/sbin/mingetty tty2

#3:2345:respawn:/sbin/mingetty tty3

#4:2345:respawn:/sbin/mingetty tty4

#5:2345:respawn:/sbin/mingetty tty5

#6:2345:respawn:/sbin/mingetty tty6

16、修改history命令记录

cp /etc/profile   /etc/profilebak

vi /etc/profile

找到 HISTSIZE=1000 改为 HISTSIZE=50

17、隐藏服务器系统信息

在缺省情况下,当你登陆到linux系统,它会告诉你该linux发行版的名称、版本、内核版本、服务器的名称。

为了不让这些默认的信息泄露出来,我们要进行下面的操作,让它只显示一个"login:"提示符。

删除/etc/issue和/etc/issue.net这两个文件,或者把这2个文件改名,效果是一样的。

 

mv  /etc/issue /etc/issuebak

mv  /etc/issue.net   /etc/issue.netbak

17、服务器禁止ping

cp  /etc/rc.d/rc.local  /etc/rc.d/rc.localbak     

vi  /etc/rc.d/rc.local        #在文件末尾增加下面这一行

echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_all

参数0表示允许   1

18、CPU占用最高的10个进程

ps axww -o user,pid,pcpu,pmem,start,time,comm | head -1;ps axww -o user,pid,pcpu,pmem,start,time,comm  | grep -v PID |  sort -nr -k 3 | head

ps aux|head -1;ps aux|grep -v PID|sort -rn -k +3|head

ps auxw|head -1;ps auxw|sort -rn -k3|head -10

19、内存占用最高的10个进程

ps axww -o user,pid,pcpu,pmem,start,time,comm | head -1 ;ps axww -o user,pid,pcpu,pmem,start,time,comm  | grep -v PID |  sort -nr -k 4 | head

ps aux|head -1;ps aux|grep -v PID|sort -rn -k +4|head

ps auxw|head -1;ps auxw|sort -rn -k4|head -10

20、虚拟内存使用最多的前10个进程

ps auxw|head -1;ps auxw|sort -rn -k5|head -10

21、查看系统负载

dstat --top-mem --top-io --top-cpu --nocolor 1 10

22、统计当前连接数

ss -an | grep -v "State" | awk \'{++S[$1]} END {for(a in S) print a, S[a]}\'

netstat -tan  | awk \'/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}\'

23、当前连接数最多的10个进程

ss -tnp | grep -v "State" | awk \'{print $6}\' | awk -F \'"\' \'{print $2}\' | awk \'{++S[$1]} END {for(a in S) print a, S[a]}\' | sort -nr -k2 | head

netstat -tnp | grep -v "Active" | grep -v "TIME_WAIT" | grep -v "State" | awk -F \'/\' \'{print $NF}\' | awk \'{++S[$1]} END {for(a in S) print a, S[a]}\' | sort -nr -k2 | head

24、LVM日常使用

LVM在日常运维工作当中占据着很大的比重,在此我列举LVM常见的日常操作及步骤。

1. 添加一个磁盘到OS,格式化文件系统使用,参考如下:

扫描磁盘

pvcreate  /dev/sdb

vgcreate -s 8M datavg /dev/sdb

lvcreate -L 10G -n datalv datavg

mkfs.ext3 /dev/datavg/datalv

mount /dev/datavg/datalv /data

lvextend -L 20G /dev/datavg/datalv

resize2fs /dev/datavg/datavlv

以上是关于Linux系统调优——实战的主要内容,如果未能解决你的问题,请参考以下文章

Linux技术专题「系统性能调优实战」终极关注应用系统性能调优及原理剖析(上册)

Linux系统调优2——实战

Linux性能优化从入门到实战:16 文件系统篇:磁盘 I/O 指标/工具总结问题定位和调优

关于linux系统调优这一篇文章就够了

关于linux系统调优这一篇文章就够了

优化技术专题「系统性能调优实战」终极关注应用系统性能调优及原理剖析(下册)