<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>

          linux 常用性能優(yōu)化

          共 4825字,需瀏覽 10分鐘

           ·

          2024-05-21 17:49


          1. 優(yōu)化內(nèi)核相關(guān)參數(shù)

          配置文件/etc/sysctl.conf

          配置方法直接將參數(shù)添加進文件每條一行.

          • sysctl -a可以查看默認配置

          • sysctl -p 執(zhí)行并檢測是否有錯誤
            例如設(shè)置錯了參數(shù):

            [root@ossec makeit]# sysctl -p
            net.ipv4.ip_forward = 1
            sysctl: cannot stat /proc/sys/net/core/somaxconn1: 沒有那個文件或目錄

          網(wǎng)絡(luò)相關(guān)

          • net.core.somaxconn=65535
            一個端口最大監(jiān)聽TCP連接隊列的長度

          • net.core.netdev_max_backlog=65535
            數(shù)據(jù)包速率比內(nèi)核處理快時,送到隊列的數(shù)據(jù)包上限

          • net.ipv4.tcp_max_syn_backlog=65535
            TCP syn 隊列的最大長度, 第一次握手的連接參數(shù)過大可能也會遭受syn flood攻擊

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

          • net.ipv4.tcp_tw_reuse=1
            是否允許將TIME-WAIT sockets重新用于新的TCP連接,默認為0 關(guān)閉

          • net.ipv4.tcp_tw_recycle=1
            是否開啟TCP連接中TIME-WAIT sockets的快速回收,默認為0 關(guān)閉

          關(guān)于網(wǎng)絡(luò)參數(shù)調(diào)優(yōu)模板,模板配置為8和16g內(nèi)存[按需調(diào)整]

          參數(shù) 默認配置 調(diào)整配置 說明
          fs.file-max 1048576 9999999 所有進程打開的文件描述符數(shù)
          fs.nr_open 1635590 1635590 單個進程可分配的最大文件數(shù)
          net.core.rmem_default 124928 262144 默認的TCP讀取緩沖區(qū)
          net.core.wmem_default 124928 262144 默認的TCP發(fā)送緩沖區(qū)
          net.core.rmem_max 124928 8388608 默認的TCP最大讀取緩沖區(qū)
          net.core.wmem_max 124928 8388608 默認的TCP最大發(fā)送緩沖區(qū)
          net.ipv4.tcp_wmem 4096 16384 4194304 4096 16384 8388608 TCP發(fā)送緩沖區(qū)
          net.ipv4.tcp_rmem 4096 87380 4194304 4096 87380 8388608 TCP讀取緩沖區(qū)
          net.ipv4.tcp_mem 384657 512877 769314 384657 512877 3057792 TCP內(nèi)存大小
          net.core.netdev_max_backlog 1000 5000 在每個網(wǎng)絡(luò)接口接收數(shù)據(jù)包的速率比內(nèi)核處理這些包的速率快時,允許送到隊列的數(shù)據(jù)包的最大數(shù)目
          net.core.optmem_max 20480 81920 每個套接字所允許的最大緩沖區(qū)的大小
          net.core.somaxconn 128 2048 每一個端口最大的監(jiān)聽隊列的長度,這是個全局的參數(shù)
          net.ipv4.tcp_fin_timeout 60 30 對于本端斷開的socket連接,TCP保持在FIN-WAIT-2狀態(tài)的時間(秒)。對方可能會斷開連接或一直不結(jié)束連接或不可預(yù)料的進程死亡
          net.core.netdev_max_backlog 1000 10000 在每個網(wǎng)絡(luò)接口接收數(shù)據(jù)包的速率比內(nèi)核處理這些包的速率快時,允許送到隊列的數(shù)據(jù)包的最大數(shù)目
          net.ipv4.tcp_max_syn_backlog 1024 2048 對于還未獲得對方確認的連接請求,可保存在隊列中的最大數(shù)目。如果服務(wù)器經(jīng)常出現(xiàn)過載,可以嘗試增加這個數(shù)字
          net.ipv4.tcp_max_tw_buckets 5000 5000 系統(tǒng)在同時所處理的最大timewait sockets數(shù)目
          net.ipv4.tcp_tw_reuse 0 1 是否允許將TIME-WAIT sockets重新用于新的TCP連接
          net.ipv4.tcp_keepalive_time 7200 900 表示TCP鏈接在多少秒之后沒有數(shù)據(jù)報文傳輸時啟動探測報文(發(fā)送空的報文)
          net.ipv4.tcp_keepalive_intvl 75 30 表示前一個探測報文和后一個探測報文之間的時間間隔
          net.ipv4.tcp_keepalive_probes 9 3 表示探測的次數(shù)

          注意:

          * 參數(shù)值并不是設(shè)置的越大越好,有的需要考慮服務(wù)器的硬件配置,參數(shù)對服務(wù)器上其它服務(wù)的影響等。

          本地端口號

          有時候我們修改了文件句柄限制數(shù)后,錯誤日志又會提示 "Can’t assignrequested address"。這是因為TCP 建立連接,在創(chuàng)建 Socket 句柄時,需要占用一個本地端口號(與 TCP 協(xié)議端口號不一樣),相當于一個進程,便于與其它進程進行交互。而Linux內(nèi)核的TCP/IP 協(xié)議實現(xiàn)模塊對本地端口號的范圍進行了限制。當端口號用盡,就會出現(xiàn)這種錯誤了。

          我們可以修改本地端口號的范圍。

          # 查看IP協(xié)議本地端口號限制
          cat /proc/sys/net/ipv4/ip_local_port_range

          #一般系統(tǒng)默認為以下值
          32768 61000

          #修改本地端口號
          vim /etc/sysctl.conf

          #修改參數(shù)
          net.ipv4.ip_local_port_range = 1024 65000

          #保存修改后,需要執(zhí)行sysctl命令讓修改生效
          sysctl -p

          注意:
          1、net.ipv4.ip_local_port_range的最小值為1024,1024以下的端口已經(jīng)規(guī)劃為TCP協(xié)議占用,如果想將 TCP 協(xié)議端口設(shè)置為8080等大端口號,可以將這里的最小值調(diào)大。

          2、如果存在應(yīng)用服務(wù)端口號大于1024的,應(yīng)該將 net.ipv4.ip_local_port_range 的起始值修改為大于應(yīng)用服務(wù)端口號,否則服務(wù)會報錯。

          kernel.shmmax=4294967295
          該參數(shù)定義了共享內(nèi)存段的最大尺寸(以字節(jié)為單位)。

          其值應(yīng)>=sag_max_size初始化參數(shù)的大小,否則SAG由多個內(nèi)存段構(gòu)成,效率降低,
          還要不小于物理內(nèi)存的一半,默認情況下在32位x86系統(tǒng)中,Oracle SGA最大不能超過1.7GB.

          kernel.shmmni=4096
          這個內(nèi)核參數(shù)用于設(shè)置系統(tǒng)范圍內(nèi)共享內(nèi)存段的最大數(shù)量。該參數(shù)的默認值是 4096.

          kernel.shmall = 2097152
          該參數(shù)表示系統(tǒng)任意時刻可以分配的所有共享內(nèi)存段的總和的最大值(以頁為單位).

          其值應(yīng)不小于shmmax/page_size.缺省值就是2097152,如果服務(wù)器上運行的所有實例的
          SGA總和不超過8GB(通常系統(tǒng)可分配的共享內(nèi)存的和最大值為8GB),通常不需要修改.

          vm.swappiness=0

          內(nèi)存分配策略,設(shè)置為0是告訴系統(tǒng)除非虛擬內(nèi)存完全滿了 否則不要使用交換區(qū)

          風險:

          • 降低操作系統(tǒng)性能

          • 在系統(tǒng)資源不足下,容易被OOM kill掉

          2.提高資源限制上限

          配置文件位于 /etc/security/limit.conf

          * soft nofile 65535
          * hard nofile 65535
          • * 對所有用戶有效

          • soft 當前系統(tǒng)生效的設(shè)置

          • hard 系統(tǒng)所能設(shè)定的最大值

          • nofile 打開文件的最大數(shù)目

          • 65535 限制的數(shù)量

          • 需要重啟系統(tǒng)生效

          3.磁盤調(diào)度策略

          參數(shù)路徑:/sys/block/devname/queue/scheduler

          簡介:

          • noop電梯式調(diào)度策略
            實現(xiàn)了一個FIFO隊列 傾向餓死讀而利于寫 對閃存設(shè)備 RAM和嵌入式系統(tǒng)是最好的選擇

          • deadline 截止時間調(diào)度策略
            確保了在一個截止時間內(nèi)服務(wù)請求 這個截止時間是可調(diào)整的 而默認讀期限短于寫期限
            對于數(shù)據(jù)庫類應(yīng)用是最好的選擇

          • anticipatory 預(yù)料IO調(diào)度策略
            本質(zhì)上和deadline一樣 但在最后一次讀操作后 要等待6ms 才能繼續(xù)進行對其他IO請求進行調(diào)度 將一些小寫入流合并成一個大寫入流 用寫入延遲換取最大的寫入吞吐量 適合寫入較多的環(huán)境 比如文件服務(wù)器 對數(shù)據(jù)庫環(huán)境表現(xiàn)很差

          • cfq 絕對公平算法

          內(nèi)核參數(shù)存儲路徑


          文件/目錄 作用
          /proc/sys/abi/* 用于提供對外部二進制的支持,比如在類UNIX系統(tǒng),SCO UnixWare 7、SCO OpenServer和SUN Solaris 2上編譯的軟件。默認情況下是安裝的,也可以在安裝過程中移除。
          /proc/sys/fs/* 設(shè)置系統(tǒng)允許的打開文件數(shù)和配額等。
          /proc/sys/kernel/* 可以啟用熱插拔、操作共享內(nèi)存、設(shè)置最大的PID文件數(shù)和syslog中的debug級別。
          /proc/sys/net/* 優(yōu)化網(wǎng)絡(luò),IPV4和IPV6
          /proc/sys/vm/* 管理緩存和緩沖


          鏈接:https://www.cnblogs.com/lovesKey/p/11509683.html

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

          瀏覽 219
          1點贊
          評論
          收藏
          分享

          手機掃一掃分享

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

          手機掃一掃分享

          分享
          舉報
          <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>
                  色综合88| 柠檬福利第一导航在线 | 中文字幕成人网 | 五月天成人影视 | AV电影亚洲 |