CentOS7.2最小化安装后系统优化
系統初始化技術的演變
1、sysvinit技術
? ? ? ? (1)Linux系統的第一個進程(pid=1)為init:
? ? ? ? ? ? ? ? ? ? Linux 操作系統的啟動首先從 BIOS 開始,接下來進入 boot loader,由 bootloader 載入內核,進行內核初始化。內核初始化的最后一步就是啟動 pid 為 1 的 init 進程。這個進程是系統的第一個進程。它負責產生其他所有用戶進程。
? ? ? ? (2)init進程是所有進程的祖先,不可以kill(也kill不掉)
? ? ? ? ? ? ? ? ? ?init 以守護進程方式存在,是所有其他進程的祖先。init 進程非常獨特,能夠完成其他進程無法完成的任務。Init 系統能夠定義、管理和控制 init 進程的行為。它負責組織和運行許多獨立的或相關的始化工作(因此被稱為 init 系統),從而讓計算機系統進入某種用戶預訂的運行模式。
? ? ? ? (3)大多數linux發行版的init系統是和systemV相兼容的,被稱為sysvinit
? ? ? ? ? ? ? ? ? ?sysvinit 就是 system V 風格的 init 系統,顧名思義,它源于 System V 系列 UNIX。它提供了比 BSD 風格 init 系統更高的靈活性。是已經風行了幾十年的 UNIX init 系統,一直被各類 Linux 發行版所采用。
1.1、sysvinit代表系統
? ? ? ? (1)CentOS 5
? ? ? ? (2)CentOS 6
1.2、sysvinit系統的優缺點
? ? ? ? (1)優點
? ? ? ? ? ? ? ? ? ? ? ??sysVinit運行非常良好,概念簡單清晰,它主要依賴于shell腳本。
? ? ? ? (2)缺點
? ? ? ? ? ? ? ? ? ? ? ? 按照一定的順序執行-->啟動太慢、很容易夯(hang)住,fstab與nfs掛載問題
2、upstart技術
? ? ? ? 說明:CentOS6采用了Upstart技術代替sysvinit進行引導,Upstart對rc.sysinit腳本做了大量的優化,縮短了系統初始化時的啟動時間,但是CentOS6為了簡便管理員的操作,Upstart的很多特性并沒有凸顯或者直接不支持,因此在CentOS6中的服務啟動腳本還是以原來的sysv的形式提供的,
2.1、upstart的代表系統
? ? ? ? (1)CentOS6
? ? ? ? (2)Ubuntu14
3、systemd技術
? ? ? ? 說明:systemd技術的設計目標是克服sysvinit固有的缺點,提高系統的啟動速度,和sysvinit兼容,降低遷移成本,
? ? ? ? 做主要的優點:并行啟動
3.1、systemd技術的代表系統
? ? ? ? (1)RedHat 7/CentOS 7
? ? ? ? (2)Ubuntu 15
4、三種技術運行的對比圖
?
? CentOS 7.2系統優化
1、將網卡名稱修改為eth0
方法1(在裝系統時修改):
在安裝系統的時候配置,修改內核選項:net.ifnames=0 biosdevname=0
方法2(裝系統時忘記修改,裝系統后修改):
(1)編輯網卡
# cd /etc/sysconfig/network-scripts/ # mv ifcfg-ens160 ifcfg-eth0 # mv ifcfg-ens192 ifcfg-eth1 # vim ifcfg-eth0 TYPE=Ethernet BOOTPROTO=none DEFROUTE=yes IPV4_FAILURE_FATAL=no IPV6INIT=yes IPV6_AUTOCONF=yes IPV6_DEFROUTE=yes IPV6_FAILURE_FATAL=no IPV6_ADDR_GEN_MODE=stable-privacy NAME=eth0 #網卡名稱改為eth0 DEVICE=eth0 #設備名稱改為eth0 ONBOOT=yes IPADDR=xxx.xxx.x.xx PREFIX=24 GATEWAY=xxx.xxx.x.x DNS1=xxx.xxx.x.x IPV6_PEERDNS=yes IPV6_PEERROUTES=yes IPV6_PRIVACY=no 注:刪掉網卡內的UUID=176582f7-d198-4e4f-aab0-34ab10d17247 通用唯一識別碼和HWADDR=00:0c:29:a5:3f:39 MAC地址 這兩行。 所有網卡都需要修改(2)編輯grub文件
[root@localhost network-scripts]# cp -a /etc/sysconfig/grub /etc/sysconfig/grub.bak #備份文件 [root@localhost network-scripts]# vim /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="crashkernel=auto net.ifnames=0 biosdevname=0 rhgb quiet" #這行添加net.ifnames=0 biosdevname=0 GRUB_DISABLE_RECOVERY="true"(3)生成啟動菜單
[root@localhost network-scripts]# grub2-mkconfig -o /boot/grub2/grub.cfg Generating grub configuration file ... Found linux image: /boot/vmlinuz-3.10.0-514.el7.x86_64 Found initrd image: /boot/initramfs-3.10.0-514.el7.x86_64.img Found linux image: /boot/vmlinuz-0-rescue-7d9a96ac2162427d937e06ede5350e9e Found initrd image: /boot/initramfs-0-rescue-7d9a96ac2162427d937e06ede5350e9e.img done 然后重啟服務器:reboot,重啟服務器后查看網卡信息,2、下載必要軟件包?
再安裝操作系統的時候使用的最小化安裝,有很多包沒有安裝,使用時發現好多命令沒有如{vim、wget、tree...等},下面就安裝命令,可以根據需求自行調整。
yum -y install wget net-tools screen lsof tcpdump nc mtr openssl-devel vim bash-completion lrzsz nmap telnet tree ntpdate iptables-services3、使用aliyun的repo源
rpm -ivh http://mirrors.aliyun.com/epel/epel-release-latest-7.noarch.rpm4、給/etc/rc.d.rc.local添加執行權限
需要開機自啟動的腳本或者配置,可以放在/etc/rc.local里,但是發現并沒有執行,下面我們看一下原因。
# ll /etc/rc.local lrwxrwxrwx 1 root root 13 Jan 5 23:31 /etc/rc.local -> rc.d/rc.local #發現是個軟連接文件 # ls -l /etc/rc.d/rc.local -rw-r--r-- 1 root root 473 Oct 20 11:07 /etc/rc.d/rc.local #問題在這里,沒有執行權限 # chmod +x /etc/rc.d/rc.local #添加執行權限 # ls -l /etc/rc.d/rc.local -rwxr-xr-x 1 root root 473 Oct 20 11:07 /etc/rc.d/rc.local 注:這樣添加在rc.local里的開機自啟動配置就可以執行了。5、修改ssh默認端口及進制root用戶遠程登陸
linux系統下都有一個默認的超級管理員root,ssh服務的默認端口是22,圈內都知道,那么接下來我們可以修改一下我們的默認端口和禁止root用戶遠程登錄,初步提高一下服務器的安全
1、首先修改ssh的默認端口 # sed -i "s#\#Port 22#Port 53226#g" /etc/ssh/sshd_config #端口可以改成1-65535之間任意端口,建議改成較大的端口,因為一萬以內的端口常用的服務有占用,防止沖突(需要注意的是:這個端口要記住,否則連接不上服務器) 2、禁止root用戶遠程登陸a):添加一個普通用戶并設置密碼(注:這一步必須執行,否則將造成遠程連接不上服務器) # useradd xxx #添加xxx用戶 # echo "pass" | passwd --stdin xxx #給xxx用戶設置密碼為passb):修改ssh服務配置文件并撐起服務 # sed -i 's/#PermitRootLogin yes/PermitRootLogin no/' /etc/ssh/sshd_config # systemctl restart sshd此時斷開當前連接或者新開一個連接就會發現使用root用戶連接不上服務器了,莫慌,使用xxx用戶連接然后切換到root用戶即可
6、關閉selinux
SELinux(Security-Enhanced Linux) 是美國國家安全局(NSA)對于強制訪問控制的實現,說白了就是安全機制,當然如果會配置的話建議配置更好,這里就介紹一下如何關閉吧,哈哈哈。
# sed -i.bak 's#SELINUX=enforcing#SELINUX=disabled#g' /etc/selinux/config #修改配置文件需要重啟服務器配置才會生效,如何立即生效那? # setenforce 0 #關閉SELinux立即生效,重啟服務器后配置失效。7、關閉防火墻
防火墻,不解釋,內網服務建議關掉,對外開放的服務器需要配置規則,這里先關掉,關于防火墻配置規則等待后續更新。
# systemctl stop firewalld #臨時關閉 # systemctl disable firewalld #永久關閉8、修改主機名并設置本地hosts文件
裝機后主機名默認為localhost,這里個人想更改自己的主機名,在不搭建內網DNS的情況,能通過主機名找到本機的IP地址。
# hostnamectl set-hostname web01 #設置主機名為web01,這樣設置連配置文件里都修改了# echo "192.168.6.6 web01" >>/etc/hosts #192.168.6.6為本機IP
9、解決ssh遠程連接慢的問題
如果是云服務器,這步優化基本都被作了,如果是物理機需要執行此步
# sed -i.bak 's@#UseDNS yes@UseDNS no@g;s@^GSSAPIAuthentication yes@GSSAPIAuthentication no@g' /etc/ssh/sshd_config # systemctl restart sshd說明:GSSAPIAuthentication參數是用于Kerberos驗證的,而對于絕大多數人來說,不可能使用這種驗證機制的,所以要注意把他們停掉。然后重啟服務會發現遠程連接速度有明顯提升
10、設置字符集
設置服務器字符集,國際通用utf-8,根據自身業務來定
# localectl status #查看當前字符集System Locale: LANG=en_US.UTF-8VC Keymap: usX11 Layout: us # localectl set-locale LANG=zh_CN.UTF-8 #修改字符集為zh_CN.UTF-8,命令行和配置文件都生效 # cat /etc/locale.conf #查看配置文件 LANG=zh_CN.UTF-811、加大打開文件數的限制
CentOS 7.2系統默認最大打開文件限制為1024,每建立一個TCP連接既浪費一個限制(這里不細講,后續會更新詳細說明),為了提升服務器性能,所以我們要增加打開文件的最大限制
# ulimit -n #默認大小 1024 # echo "* soft nofile 65536" >> /etc/security/limits.conf #xi修改最大限制為65535 # echo "* hard nofile 65536" >> /etc/security/limits.conf12、時間同步
時間同步,這里不多說了,向OpenStack的所有節點的時間不一致會導致創建不了虛擬機,也會有其他的問題,不多說,我們生產上所有服務器時間都是同步的。
# yun install -y ntpdate #前面已經裝過了 # ntpdate ntp1.aliyun.com #這里同步的是aliyun的時間,公司內部建議自己搭建時間服務器(減少流量、廣播等),然后加入crontab即可,內網時間服務器等待后續更新。13、開啟快速回收
TCP斷開連接時會有一個等待時間為2msl(60秒)對應的狀態為TIME_WAIT,如果業務并發較大的話會有很多的TIME_WAIT狀態(詳細等待后續更新),如何來解決那?
# cat /proc/sys/net/ipv4/tcp_timestamps #時間戳,默認是開啟的 # cat /proc/sys/net/ipv4/tcp_tw_reuse # 連接復用,tcp_timestamps是開啟的狀態下是可以開啟的,1為開啟,默認是關閉的狀態。 # cat /proc/sys/net/ipv4/tcp_tw_recycle #socket快速回收,net網絡狀態下不可以開啟,負載均衡上不可以打開,讀者根據自身情況開啟或關閉,默認為關閉狀態。好了,服務器優化就介紹到這里,以上優化不分先后順序!!
轉載于:https://www.cnblogs.com/hei-ma/p/9506623.html
總結
以上是生活随笔為你收集整理的CentOS7.2最小化安装后系统优化的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【转】msyql使用-用户创建/权限配置
- 下一篇: 远程访问ubuntu下mysql的问题