计算机系统优化
计算机系统优化
1. 开机启动流程
1. 按下电源
2. BIOS自检
3. MBR主引导分区
4. 进入GRUB菜单
5. 加载内核 Kernel
6. systemd init进程
7. 读取运行级别
[root@web01 yum.repos.d]# cat /etc/systemd/system/default.target
lrwxrwxrwx. 1 root root 37 Mar 20 17:00 /etc/systemd/system/default.target -> /lib/systemd/system/multi-user.target
8. 初始化系统
[root@web01 yum.repos.d]# cat /usr/lib/systemd/system/sysinit.target
-rw-r--r--. 1 root root 518 Feb 3 00:34 /usr/lib/systemd/system/sysinit.target
9. 并行启动开机自启动的服务 串行启动
10. 运行getty文件,显示登陆界面
[root@web01 yum.repos.d]# cat /usr/lib/systemd/system/getty.target
-rw-r--r--. 1 root root 460 Feb 3 00:34 /usr/lib/systemd/system/getty.target
** #显示当前运行级别下开机自启动的服务
[root@qls ~]# systemctl list-unit-files
1、yum源处理与常用软件包安装
vim /etc/yum.conf ===》更改keepcache=1 #开启rpm包安装缓存
在测试环境配置好yum源(默认国外的yum源比较慢,所以换成国内的)
在/etc/yum.repo.d/下
rm -rf ./* #删除所有的源
## 重新安装新的源
163源 、华为源 、阿里云源 、清华大学源
curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
curl -o /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
#.安装基础软件包
yum install net-tools vim tree htop iftop gcc gcc-c++ glibc\
iotop lrzsz sl wget unzip telnet nmap nc psmisc \
dos2unix bash-completion bash-completion-extra sysstat \
rsync nfs-utils httpd-tools -y
yum update -y # 全部更新系统,切记日后就不要轻易更新
2、更改主机名名字
cat /etc/hostname #(临时)
hostnamectl set-hostname +xxx #(永久)
vim /etc/hosts # 编辑好之后,每台机器都发⼀份
10.10.0.8 www.ss.com
3、ssh密钥登录
ssh-keygen #生成密钥兑(私钥和公钥)
ssh-copy-id -i root@IP地址 #将本地的公钥安装到指定的服务器上,私钥不能外泄
示例1:(虚拟机私钥不加密版)
ssh-keygen #生成密钥兑(私钥和公钥)
ssh-copy-id -i root@服务端IP地址 #将客户端的公钥安装到指定的服务器上,私钥不能外泄
ls /root/.ssh #浏览虚拟机2的文件夹下会自动生成一个authorized-keys 的文件是存放公钥的
ssh root@服务端IP地址 #连接服务端===》ifconfig查看虚拟机1的IP地址已经变成虚拟机2的IP地址,表示已经连接成功
示例2:(虚拟机私钥加密版)交互式变成非交互式,安全性更高
ssh-keygen #生成密钥兑(私钥和公钥)生成过程中加入私钥密码123
ssh-copy-id -i root@服务端IP地址 #将客户端的公钥安装到指定的服务器上,私钥不能外泄
ls /root/.ssh #浏览虚拟机2的文件夹下会自动生成一个authorized-keys 的文件是存放公钥的
ssh root@服务端IP地址===》需要输入一次设置的私钥密码 #连接服务端=-==》ip a查看虚拟机1的IP地址已经变成虚拟机2的IP地址,表示已经连接成功
|示例3:(x-shell秘钥版)
工具==》新建用户密钥生成导向==》下一步生成密钥文件可导出桌面rz传入shell,
也可以创建vim /root/.ssh/authorized_keys 这个文件夹把拷到桌面的密码文件内容拷到这个文件里
验证是否创建成功===》用户身份验证:keygen root 主机名输入虚拟机1的IP地址===》登陆成功
ssh root@+虚拟机2IP地址===》可选择密码登陆还是密钥登陆
客户端服务端连接上,修改文件关闭密码登陆:
vim /etc/ssh/sshd_config ===》找到一行:password authentication 的yes改成no
4、关闭seLinux
setenforce 0 #临时关闭seLinux
查看状态 getenforce
sed ‘s#SELINUX=enforcing#SELINUX=disabled#g’ /etc/selinux/config #替换的方式永久关闭
vim /etc/selinux/config ===》SELINUX=enforcing改成SELINUX=disabled
5、关闭防火墙
systemctl stop firewalld #临时关闭
systemctl disable firewalld #永久关闭
6、配置ntp服务,同步系统时间
安装ntpdate软件包
crontab -l 查看定时任务
/etc/crontab 系统定时任务
/var/log/cron/ 用户定时任务
[root@2021 ~]# crontab -e 编辑
#每天每隔三个小时时间同步一次
00 */3 * * * /sbin/ntpdate ntp.aliyun.com
7、ulimit命令介绍(对系统资源的控制分配)
临时配置:
ulimit -u +3 #限制普通用户能同时打开的最大进程数(登录用户的同时开启了一个bash进程就算一个)
ulimit -n +3 #限制普通用户能同时分配到的文件描述符数量
永久配置:
vim /etc/security/limits.conf #修改配置文件
表示要限制的用户
表示可选的资源
表示可选的资源
表示要限制的值
配置内容:soft nofile 102400
hard nofile 102400
soft nproc 102400
hard nproc 102400
重启生效:内核的配置文件需要重启内核 reboot
还有一个配置文件: /etc/security/limits.d/20-nproc.conf 比上个文件优先级高==》可以针对某个用户单独设置
二、网络优化
1、关闭NetwprkManager
在centos系统上,目前有NetworkManager和network两种网络管理工具,如果两种都配置会引起冲突,而且NetworkManager在网络断开的时候,会清理路由,如果一些自定义的路由,没有加入到NetworkManager的配置文件中,路由就被清理掉,网络连接后需要自定义添加上去:
systemctl stop NetworkManager #临时关闭
systemctl disable NetworkManager #永久关闭
2、Jumbo frames(巨型针)
临时 ifconfig eth0 mtu 3000
永久 在网络文件里加一行 MTU="6000" (万兆网卡)
3、调整swappiness
swappiness参数值可设置范围在0-100之间。
临时 cat/proc/sys/vm/swappiness (默认60)
echo “vm.swappiness = 40” | tee -a /etc/sysctl.conf #更改值为40
4、调整Kernel pid max
cat /proc/sys/kernel/pid_max #查看Kernel pid max的值
echo 4194303 > /proc/sys/kernel/pid_max #临时调整 (4194303最大值)
echo “kernel.pid_max= 4194303” | tee -a /etc/sysctl.conf sysctl -p #永久生效
三、安全优化
1.安全优化
2、单用户模式
3、grub加密
4、光盘修复
5、sudo提权
6、更改SSH服务端远程登录设置
四、开机优化
1、设置运行级别为3
systemctl set-default multi-user.target #命令行终端模式
2、精简开机启动项
systemctl list-unit-files #可以查看启动项
systemctl list-unit-files | grep enable #过滤开机启动的启动项
systemctl disable vmtoolsd.service
systemctl 的用法
systemctl status docker.service #显示服务状态
systemctl list-dependencies docker.service #列出服务层级和依赖关系
systemctl start docker.service #启动服务
systemctl stop docker.service #关闭服务
systemctl restart docker.service #重启服务
systemctl enable docker.service #设置服务自启动
systemctl disable docker.service #禁止服务自启动
systemctl is-enabled docker.service #查看服务是否自启动
systemctl list-units --type=service #列出系统所有服务的启动情况
systemctl list-unit-files|grep enabled #列出所有自启动服务
3、名及环境变量优化
echo $PATH
#临时修改变量
[root@mm ~]# export LANG=en_US.UTF-8
[root@mm ~]# echo $LANG
en_US.UTF-8
4、登录欢迎信息
vim /etc/motd #编辑登录前的提示信息
5、#系统日志管理
[root@mm~]# journalctl -xe #查看当前服务的日志
[root@mm ~]# tail /var/log/messages
6、禁用别人Ping自己
echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_all
7、硬盘问题
单块盘做raid0可解决服务器盘符飘逸的问题,按照经验来说,通过1T容量的硬盘要对应1G的内存,可以按照这个比例来购买主机,.xfs文件系统用ssd做日志盘,无须格式化,裸盘就可以
8.网卡名字修改
[root@2021 ~]# cat /etc/sysconfig/grub
GRUB_TIMEOUT=5
GRUB_DISTRIBUTOR="$(sed 's, release .*$,,g' /etc/system-release)"
GRUB_DEFAULT=saved
GRUB_DISABLE_SUBMENU=true
GRUB_TERMINAL_OUTPUT="console"
GRUB_CMDLINE_LINUX="rd.lvm.lv=centos/root rd.lvm.lv=centos/swap biosdevname=0 net.ifnames=0 rhgb quiet" 在rhgb biosdevname=0 net.ifnames=0一行内容
cd /etc/sysconfig/network-scripts/ifcfg-ens3*
把ifcfg-ens3*改为ifcfg-eth0 -->里面内容都改为eth0
重启虚拟机生效 reboot
重启网卡正式生效 systemctl restart network