色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

Linux之性能優化

馬哥Linux運維 ? 來源:馬哥Linux運維 ? 2024-12-06 10:15 ? 次閱讀

一、優化內核相關參數

配置文件/etc/sysctl.conf
配置方法直接將參數添加進文件每條一行

sysctl -a 可以查看默認配置
sysctl -p 執行并檢測是否有錯誤

1、網絡相關

net.core.somaxconn=65535
一個端口最大監聽TCP連接隊列的長度

net.core.netdev_max_backlog=65535
數據包速率比內核處理快時,送到隊列的數據包上限

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

net.ipv4.tcp_fin_timeout=10
fin超時時間,表示如果套接字由本端要求關閉,這個參數決定了它保持在FIN-WAIT-2狀態的時間

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

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

關于網絡參數調優模板,主機配置為8G和16G內存【按需調整】

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

注意:
參數值并不是設置的越大越好,有的需要考慮服務器的硬件配置,參數對服務器上其它服務的影響等。

2、本地端口號

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

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

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

#一般系統默認為以下值
32768    61000

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

#修改參數
net.ipv4.ip_local_port_range = 1024 65000

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

注意:
1、net.ipv4.ip_local_port_range的最小值為1024,1024以下的端口已經規劃為TCP協議占用,如果想將 TCP 協議端口設置為8080等大端口號,可以將這里的最小值調大。
2、如果存在應用服務端口號大于1024的,應該將 net.ipv4.ip_local_port_range 的起始值修改為大于應用服務端口號,否則服務會報錯。

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

其值應>=sag_max_size初始化參數的大小,否則SAG由多個內存段構成,效率降低,
還要不小于物理內存的一半,默認情況下在32位x86系統中,Oracle SGA最大不能超過1.7GB.

kernel.shmmni=4096
這個內核參數用于設置系統范圍內共享內存段的最大數量。該參數的默認值是 4096.

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

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

vm.swappiness=0

內存分配策略,設置為0是告訴系統除非虛擬內存完全滿了 否則不要使用交換區

風險:

降低操作系統性能
在系統資源不足下,容易被OOM kill掉

二、提高資源限制上限

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

* soft nofile 65535
* hard nofile 65535

" * "對所有用戶有效

soft 當前系統生效的設置

hard 系統所能設定的最大值

nofile 打開文件的最大數目

65535 限制的數量

需要重啟系統生效

案例

一次nginx在早高峰時段大量用戶同時請求驗證出現連接緩慢問題,問題是由于資源限制問題導致

日志信息

2024/04/25 0823 [crit] 37451#0: accept4() failed (24: Too many open files)
2024/04/25 0824 [crit] 37451#0: accept4() failed (24: Too many open files)
2024/04/25 0824 [crit] 37451#0: accept4() failed (24: Too many open files)
2024/04/25 0825 [crit] 37451#0: accept4() failed (24: Too many open files)
2024/04/25 0825 [crit] 37451#0: accept4() failed (24: Too many open files)
2024/04/25 0826 [crit] 37451#0: accept4() failed (24: Too many open files)
2024/04/25 0826 [crit] 37451#0: accept4() failed (24: Too many open files)
2024/04/25 0827 [crit] 37451#0: accept4() failed (24: Too many open files)
2024/04/25 0827 [crit] 37451#0: accept4() failed (24: Too many open files)

報錯原因
通過ulimit -a命令查詢,發現主機最初設置系統文件最大打開數(open files )過于保守,致使早高峰時段大量用戶同時請求驗證出現連接緩慢問題。

core file size          (blocks, -c) 0
data seg size           (kbytes, -d) unlimited
scheduling priority             (-e) 0
file size               (blocks, -f) unlimited
pending signals                 (-i) 127886
max locked memory       (kbytes, -l) 64
max memory size         (kbytes, -m) unlimited
open files                      (-n) 1024
pipe size            (512 bytes, -p) 8
POSIX message queues     (bytes, -q) 819200
real-time priority              (-r) 0
stack size              (kbytes, -s) 8192
cpu time               (seconds, -t) unlimited
max user processes              (-u) 127886
virtual memory          (kbytes, -v) unlimited
file locks                      (-x) unlimited

進一步查看nginx進程的limit限制,發現nginx主進程軟限制是1024,硬限制是4096。

c4d2b36c-afde-11ef-93f3-92fbcf53809c.png

解決方式
修改配置文件/etc/security/limits.conf,增加配置以下配置并重啟Nginx主進程:

root soft nofile 65535
root hard nofile 65535
* soft nofile 65535
* hard nofile 65535

Nginx配置文件增加配置:

worker_rlimit_nofile 65535;

驗證
nginx進程最大文件打開數已設置成功

c4e3c008-afde-11ef-93f3-92fbcf53809c.png

三、磁盤調度策略

參數路徑:/sys/block/devname/queue/scheduler

簡介:

noop電梯式調度策略
實現了一個FIFO隊列 傾向餓死讀而利于寫 對閃存設備 RAM嵌入式系統是最好的選擇

deadline 截止時間調度策略
確保了在一個截止時間內服務請求 這個截止時間是可調整的 而默認讀期限短于寫期限
對于數據庫類應用是最好的選擇

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

cfq 絕對公平算法

內核參數存儲路徑

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

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • Linux
    +關注

    關注

    87

    文章

    11292

    瀏覽量

    209323
  • 主機
    +關注

    關注

    0

    文章

    993

    瀏覽量

    35114

原文標題:Linux之性能優化

文章出處:【微信號:magedu-Linux,微信公眾號:馬哥Linux運維】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    Linux性能優化大全!

    高并發和響應快對應著性能優化的兩個核心指標:吞吐和延時
    發表于 11-21 11:23 ?677次閱讀

    HBase性能優化方法總結

    HBase是Hadoop生態系統中的一個組件,是一個分布式、面向列的開源數據庫,可以支持數百萬列、超過10億行的數據存儲,因此,對HBase性能提出了一定的要求,那么如何進行HBase性能優化
    發表于 04-20 17:16

    Linux系統的性能優化策略

    近年來,世界上許多大軟件公司紛紛推出各種Linux服務器系統及Linux下的應用軟件。目前,Linux 已可以與各種傳統的商業操作系統分庭抗禮,在服務器市場,占據了相當大的份額。本文分別從磁盤調優,文件系統,內存管理以及編譯
    發表于 07-16 06:23

    Linux和Android系統故障和優化性能的方法和流程探討

    作為一名Linux 或 Android 平臺的系統工程師,在開發系統新功能外,主要工作就是優化系統性能,使系統上以最優的狀態運行,但是由于硬件問題、軟件問題、網絡環境等的復雜性和多變性,導致對系統
    發表于 07-22 06:48

    css的性能優化重點

    網站前端性能優化javascript和css
    發表于 10-21 09:12

    MySQL優化查詢性能優化查詢優化器的局限性與提示

    MySQL優化三:查詢性能優化查詢優化器的局限性與提示
    發表于 06-02 06:34

    談一談Linux基礎Makfile文件

    Linux基礎Makfile文件Linux基礎Makfile文件編譯流程Makefile的介紹Makefile簡單的練習Makefile的組成Makefile的組成Makefile
    發表于 12-15 08:58

    基于Linux的Socket網絡編程的性能優化

    基于Linux的Socket網絡編程的性能優化 隨著Intenet的日益發展和普及,網絡在嵌入式系統中應用非常廣泛,越來越多的嵌入式設備采用Linux操作系統。
    發表于 10-22 20:48 ?1084次閱讀
    基于<b class='flag-5'>Linux</b>的Socket網絡編程的<b class='flag-5'>性能</b><b class='flag-5'>優化</b>

    Linuxchardev_buttom_linux_struc

    Linuxchardev_buttom_linux_struct_poll教程,很好的Linux資料,快來學習吧
    發表于 04-15 17:49 ?7次下載

    Linuxtasklet教程

    Linuxtasklet教程,很好的Linux自學資料,快來學習吧。
    發表于 04-15 17:59 ?5次下載

    Linuxchardev_buttom_linux_struc

    Linuxchardev_buttom_linux_struct_timer_debounce教程,很好的Linux自學資料,快來學習吧。
    發表于 04-15 17:59 ?5次下載

    Linux CPU的性能應該如何優化

    Linux系統中,由于成本的限制,往往會存在資源上的不足,例如 CPU、內存、網絡、IO 性能。本文,就對 Linux 進程和 CPU 的原理進行分析,總結出 CPU 性能
    的頭像 發表于 01-18 08:52 ?3375次閱讀

    影響Linux性能的因素與優化方法

    ,那么linux作為一個開源平臺,最終要實現的是通過這些開源軟件的支持,以最低廉的成本,達到應用最優的性能。因此,談到性能問題,主要實現的是linux操作系統和應用程序的最佳結合。
    的頭像 發表于 04-12 09:18 ?817次閱讀

    Linux內核slab性能優化的核心思想

    今天分享一篇內存性能優化的文章,文章用了大量精美的圖深入淺出地分析了Linux內核slab性能優化的核心思想,slab是
    的頭像 發表于 11-13 11:45 ?621次閱讀
    <b class='flag-5'>Linux</b>內核slab<b class='flag-5'>性能</b><b class='flag-5'>優化</b>的核心思想

    如何優化Linux服務器的性能

    優化Linux服務器的性能是一個綜合性的任務,涉及硬件、軟件、配置、監控等多個方面。以下是一個詳細的指南,旨在幫助系統管理員和運維人員提升Linux服務器的
    的頭像 發表于 09-29 16:50 ?297次閱讀
    主站蜘蛛池模板: 动漫女主被扒开双腿羞辱| 国产GV无码A片在线观看| 解开美女胸衣2破解版| 石原莉奈rbd806中文字幕| sao虎影院桃红视频在线观看| 恋夜直播午夜秀场最新| 浴室里强摁做开腿呻吟的漫画男男| 国产亚洲精品V在线观看一| 天海翼精品久久中文字幕| yellow在线中文| 青柠在线视频| youjizz怎么看| 热久久2018亚洲欧美| CHINESE熟女老女人HD视频| 欧美16一17sex性hd| 99精彩视频在线观看| 免费毛片播放| 91视频18| 欧美国产日韩久久久| 97色伦图区97色伦综合图区 | 快播电影网站大全| 中国xxxxxx片免费播放| 久久久久综合| 中文字幕伊人香蕉在线| 麻豆高清免费国产一区| 岛国大片在线观看完整版| 亚洲国产中文字幕在线视频综合| 国产精品久久久久婷婷五月色婷婷| 天美传媒果冻传媒入口视频| 国产 日韩 欧美 高清 亚洲| 天天影视网网色色欲| 国产精品私人玩物在线观看 | 古风一女N男到处做高H| 色欲人妻无码AV专区| 国产精品XXXXX免费A片| 校花爽好大快深点h| 国产三级在线免费| 亚洲色图p| 老色69久久九九精品高潮| 99久久夜色精品国产亚洲AV卜| 欧美午夜精品A片一区二区HD|