系统内部参数优化
(1)关闭swap以及开启TIME_WAIT回收
vim /etc/sysctl.conf
vm.max_map_count = 655360
vm.swappiness = 1
#net.bridge.bridge-nf-call-iptables=1
net.ipv4.neigh.default.gc_thresh1=4096
net.ipv4.neigh.default.gc_thresh2=6144
net.ipv4.neigh.default.gc_thresh3=8192
net.ipv4.ip_forward=1
net.ipv4.tcp_syncookies = 1
net.ipv4.tcp_tw_reuse = 1
net.ipv4.tcp_tw_recycle = 1
net.ipv4.tcp_fin_timeout = 30
最后,执行 sysctl -p 生效
(2)关闭防火墙及selinx
systemctl stop firewalld
systemctl disable firewalld
setenforce 0
sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config
(3)内核参数优化
vim /etc/security/limits.conf 文件后追加(重启后生效):
* soft nofile 65536
* hard nofile 65536
* soft nproc 16384
* hard nproc 16384
更新yum源
1、备份
cd /etc/yum.repos.d/
mkdir repo_bak
mv *.repo repo_bak/
2、安装wget(若已安装了wget,则跳过此步)
检查
wget -V
安装
yum install wget -y
3、下载新的CentOS-Base.repo 到/etc/yum.repos.d
wget http://mirrors.aliyun.com/repo/Centos-7.repo
4、yum clean all 清除缓存,运行 yum makecache 生成新的缓存
yum clean all
yum makecache
5、安装EPEL(Extra Packages for Enterprise Linux )源
yum install -y epel-release
6、再次运行yum clean all 清除缓存,运行 yum makecache 生成新的缓存
yum clean all
yum makecache
7、查看启用的yum源和所有的yum源
yum repolist enabled
yum repolist all
8、更新yum
yum -y update
为什么在更新了yum源之后需要yum -y update?没看出作用
其实我更推荐用yum upgrade取代yum update,yum update只更新系统中已有的软件包,不会更新内核软件包(kernel-这个包),yum upgrade是更彻底的update,会分析包的废弃关系,可以跨小版本升级(比如从centos 7.1升级到centos 7.4),除了做了yum update完全相同的事之外,还会更新kernel-的包,也会卸载掉已经废弃的包。
新部署系统需要yum update/upgrade是因为yum不会给你解决依赖冲突(但是apt会)。
举个例子,你的系统中已经安装了kernel-2.6.32.500,但是你要安装的某个软件包依赖于kernel-2.6.32.600,此时yum会报错退出,告诉你依赖不满足,并不会升级kernel包(只是举个例子而已,实际上几乎没有软件包直接依赖于kernel包),所以你只能yum update/upgrade一次,把系统中所有的软件包全部更新,这样满足新部署的软件包的依赖。
在debian/ubuntu的系统中,apt会对这种情况自动处理,会自动升级依赖的软件包。
换句话来说,对于新部署的服务器,也是推荐upgrade全部的软件包,已获得最新的安全补丁。即使对于已经上线的服务器,也是推荐定期打安全漏洞补丁,减少漏洞带来的侵害。
删除多余内核
一、声明
因为目前只使用CentOS 7 x64系统,所以本教程将仅适用于CentOS 7 x64系统,不保证在CentOS 8等系统上的效果。
另外卸载系统内核属于危险操作,可能导致VPS无法启动,非必要请勿进行此项操作,也不建议在生产环境下进行此项操作。
二、获取当前使用的内核
执行以下命令可以获取到当前系统正在使用的内核:
uname -r
执行以下命令获取当前系统的全部内核列表(已使用的和未使用的):
rpm -qa | grep kernel
输出结果举例:3.10.0-1160.15.2.el7.x86_64
记一下这个输出结果,也就是正在使用的内核。
三、CentOS 7自动卸载多余内核的教程
首先分享下自动化的方法,命令少,操作少,方便快捷。
- 执行以下命令可以自动获取当前系统中的无用内核(未使用的)并进入卸载
yum remove $(rpm -qa | grep kernel | grep -v $(uname -r))
- 执行上面命令后,会有卸载确认操作。确认下卸载内核列表中没有当前正在使用的内核,然后输入y确认卸载即可。
- 卸载完毕后,可以执行以下命令查看下/boot分区的占用情况
df -h /boot
案例:
[root@7 ~]# df -h /boot
Filesystem Size Used Avail Use% Mounted on
/dev/sda1 197M 105M 93M 54% /boot