<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          優(yōu)化 Linux 服務器的 9 個小技巧,讓 Linux 服務器效率起來

          共 5458字,需瀏覽 11分鐘

           ·

          2023-09-20 14:22




          正常使用環(huán)境下的Linux服務器有精準、穩(wěn)定、高效、安全等需求,其優(yōu)化也是有著很多的竅門。本文分享了九條平時進行Linux服務器優(yōu)化的經(jīng)驗,內(nèi)容涉及郵件服務器、Web服務器、網(wǎng)絡配置、內(nèi)存管理等方面





          1
          時間同步
          正常使用環(huán)境下的服務器對時間的要求是精準的,我的郵件服務器的dovecot服務,以前經(jīng)常因為時間問題自動停止服務,建議編輯
          vim /etc/crontab
          至今每天跟ntp時間服務器自動對時一次:
          14 04 * * * root /usr/sbin/ntpdate ntp.api.bz > /dev/null 2>&1


          2
          啟用內(nèi)核中的SYN cookie保護
          echo "1" > /proc/sys/net/ipv4/tcp_syncookies
          執(zhí)行以下命令使內(nèi)核配置立馬生效:
          /sbin/sysctl -p


          3
          Squid服務器變慢的解決方法
          如果自己的生產(chǎn)服務器是squid緩存服務器,當發(fā)現(xiàn)系統(tǒng)變慢或打開網(wǎng)頁變慢時可輸入下列命令:
          netstat -n | awk '/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}'
          這條命令可以把當前系統(tǒng)的網(wǎng)絡連接狀態(tài)分類匯總,由此分析出系統(tǒng)變慢的原因。

          Linux下高并發(fā)的Squid服務器,TCP TIME_WAIT套接字數(shù)量經(jīng)常達到兩、三萬,服務器很容易被拖死。通過修改Linux內(nèi)核參數(shù),可以減少Squid服務器的TIME_WAIT套接字數(shù)量。
          vim /etc/sysctl.conf

          增加以下幾行:
          net.ipv4.tcp_fin_timeout = 30 net.ipv4.tcp_keepalive_time = 1200 net.ipv4.tcp_tw_reuse = 1 net.ipv4.tcp_tw_recycle = 1 net.ipv4.ip_local_port_range = 1024 65000 net.ipv4.tcp_max_syn_backlog = 8192 net.ipv4.tcp_max_tw_buckets = 5000

          說明:
          net.ipv4.tcp_tw_reuse = 1 表示開啟重用。允許將TIME-WAIT sockets重新用于新的TCP連接,默認為0,表示關閉;

          net.ipv4.tcp_tw_recycle = 1 表示開啟TCP連接中TIME-WAIT sockets的快速回收,默認為0,表示關閉。

          net.ipv4.tcp_fin_timeout = 30 表示如果套接字由本端要求關閉,這個參數(shù)決定了它保持在FIN-WAIT-2狀態(tài)的時間。

          net.ipv4.tcp_keepalive_time = 1200 表示當keepalive啟用的時候,TCP發(fā)送keepalive消息的頻度。缺省是2小時,改為20分鐘。

          net.ipv4.ip_local_port_range = 1024 65000 表示用于向外連接的端口范圍。缺省情況下很小,改為1024到65000。

          net.ipv4.tcp_max_syn_backlog = 8192 表示SYN隊列的長度,默認為1024,加大隊列長度為8192,可以容納更多等待連接的網(wǎng)絡連接數(shù)。

          net.ipv4.tcp_max_tw_buckets = 5000表示系統(tǒng)同時保持TIME_WAIT套接字的最大數(shù)量,如果超過這個數(shù)字,TIME_WAIT套接字將立刻被清除并打印警告信息。默認為180000,改為5000。對于Apache、Nginx等服務器,上幾行的參數(shù)可以很好地減少TIME_WAIT套接字數(shù)量,但是對于Squid,效果卻不大。此項參數(shù)可以控制TIME_WAIT套接字的最大數(shù)量,避免Squid服務器被大量的TIME_WAIT套接字拖死。

          執(zhí)行以下命令使內(nèi)核配置立馬生效:
          /sbin/sysctl -p




          4
          Nginx服務器的情況
          如果服務器是Nginx負載均衡器或用于Nginx+PHP5的web服務器,此二項也必須打開:
          net.ipv4.tcp_tw_reuse = 1 #允許將TIME-WAIT sockets重新用于新的TCP連接
          net.ipv4.tcp_tw_recycle = 1 #開啟TCP連接中TIME-WAIT sockets的快速回收

          執(zhí)行以下命令使內(nèi)核配置立馬生效:
          /sbin/sysctl -p


          5
          調(diào)整Linux的最大文件打開數(shù)
          Linux最大文件打開數(shù)的默認值很低,必須修改的高一些,否則squid服務器在高負載時執(zhí)行性能將很低。
          vim /etc/security/limit.conf 

          在最后一行添加
          * soft nofile 60000 * hard nofile 65535

          值得注意的是,通過命令ulimit -SHn是改變不了linux系統(tǒng)的最大文件打開數(shù)的,寫進/etc/rc.d/rc.local也是不行的。


          6
          只開啟必須的服務
          只開啟必須的服務,其它均可關閉。以下列出的服務可開啟:
          crond irqbalance microcode_ctl network random sshd syslog
          iptables這個待定。如果前端有硬件防火墻;這個也可以關閉,反之不行。

          下面的命令可檢查運行在5級別的服務,3級以此類推
          chkconfig -- list | awk '{print $1 " " $7}' | grep 5:on
          檢查下打印服務,此服務經(jīng)常成漏網(wǎng)之魚,關掉它。

          service cups stop chkconfig cups off
          chkconfig這條命令會關掉3和5級別的服務。


          7
          停止ipv6
          線上跑的Linux服務器,絕大多數(shù)是64位的CentOS。CentOS默認的狀態(tài)下,ipv6是被啟用的狀態(tài)。因為我們不使用ipv6,所以,停止ipv6能夠以最大限度保證安全和快速。
          vim /etc/modprobe.conf

          修改此配置文件,添加如下行到文尾:
          alias net-pf-10 off alias ipv6 off echo "IPV6INIT=no" >> /etc/sysconfig/network-scripts/ifcfg-eth0


          8
          開啟RHEL的網(wǎng)卡激活模式
          如果服務器的系統(tǒng)是RHEL,就需要開啟RHEL默認的網(wǎng)卡激活模式為ONBOOT。
          vim /etc/sysconfig/network-scripts/ifcfg-eth0,eth1

          eth1為第二網(wǎng)卡,其它依此類推。
          ONBOOT=YES

          然后重啟網(wǎng)絡服務生效
          service network restart


          9
          Linux內(nèi)存管理
          Linux內(nèi)存管理模式跟windows不一樣,它的原則是有多少就用多少。很多Linux新手喜歡用命令free -m觀察,發(fā)現(xiàn)free所剩無余后想辦法去優(yōu)化內(nèi)存;

          其實就走進了一個誤區(qū),linux本身的內(nèi)存模式就很好了,為了提高磁盤存取效率,Linux做了一些精心的設計,除了對dentry進行緩存(用于VFS,加速文件路徑名到inode的轉換),還采取了兩種主要Cache方式:Buffer Cache和Page Cache。

          前者針對磁盤塊的讀寫,后者針對文件inode的讀寫。這些Cache有效縮短了 I/O系統(tǒng)調(diào)用(比如read,write,getdents)的時間。所以,建議,內(nèi)存管理這塊順其自然吧。

          END

          鏈接:https://zhuanlan.zhihu.com/p/649836503

          (版權歸原作者所有,侵刪)



          瀏覽 1365
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          評論
          圖片
          表情
          推薦
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  大尺度一区二区 | 一级A片60分钟免费看 | 色婷婷国产精品免费视频 | 精品人妻无码一区二区三区四川人 | 夜夜骑青青草夜夜嗨 |