日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > linux >内容正文

linux

linux内核优化哪些参数,linux内核参数优化 互联网技术圈 互联网技术圈

發布時間:2025/3/12 linux 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 linux内核优化哪些参数,linux内核参数优化 互联网技术圈 互联网技术圈 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

一、修改最大進程數

系統允許創建的最大進程數量即是max user processes 這個參數。 我們可以使用 ulimit -u 65535 修改max user processes的值,但是只能在當前終端的這個session里面生效,重新登錄后仍然是使用系統默認值。

正確的一次性修改是在/etc/security/limits.d/90-nproc.conf文件中, 該文件修改如下:

* soft nproc 65535

root soft nproc unlimited

*代表任意用戶,也可以指定某一個用戶,如root不限制

二、修改文件最大打開數

大家知道linux默認打開的文件數是1024,而實際生產環境中,服務器使用充分的情況下,該值肯定是不夠用,往往有時會報too many open files

正確的一次性修改是在/etc/security/limits.conf,改文件修改如下:

* soft nofile 327680

* hard nofile 327680

三、系統內核修改

系統優化是在/etc/sysctl.conf中

net.core.somaxconn

net.core.somaxconn是Linux中的一個kernel參數,表示socket監聽(listen)的backlog上限。什么是backlog呢?backlog就是socket的監聽隊列,當一個請求(request)尚未被處理或建立時,他會進入backlog。而socket server可以一次性處理backlog中的所有請求,處理后的請求不再位于監聽隊列中。當server處理請求較慢,以至于監聽隊列被填滿后,新來的請求會被拒絕。

我們需要在sysctl.conf中增加如下:

net.core.somaxconn = 32786

net.ipv4.tcp_tw_reuse

開啟重用。允許將TIME-WAIT sockets重新用于新的TCP連接,默認是0,表示關閉

我們需要在sysctl.conf中增加如下:

net.ipv4.tcp_tw_reuse = 1

net.ipv4.tcp_tw_recycle

開啟TCP連接中TIME-WAIT sockets的快速回收,默認為0,表示關閉

我們需要在sysctl.conf中增加如下:

net.ipv4.tcp_tw_recycle=1

net.ipv4.tcp_fin_timeout

對于本端斷開的socket連接,TCP保持在FIN-WAIT-2狀態的時間(秒)。對方可能會斷開連接或一直不結束連接或不可預料的進程死亡。

我們需要在sysctl.conf中增加如下:

net.ipv4.tcp_fin_timeout = 30

net.ipv4.tcp_max_orphans

最大孤兒套接字(orphan sockets)數,單位是個,當cat /proc/net/sockstat看到的orphans數量達到net.ipv4.tcp_max_orphans的約一半時,就會報:Out of socket memory

我們需要在sysctl.conf中增加如下:

net.ipv4.tcp_max_orphans = 327680

fs.file-max

file-max是設置 系統所有進程一共可以打開的文件數量

我們需要在sysctl.conf中增加如下:

fs.file-max = 6553560

net.ipv4.tcp_max_tw_buckets

系統同時保持TIME_WAIT的最大數量,如果超過這個數字,TIME_WAIT將立刻被清除并打印警告信息

我們需要在sysctl.conf中增加如下:

net.ipv4.tcp_max_tw_buckets = 200000

net.ipv4.tcp_syncookies

開啟SYN Cookies。當出現SYN等待隊列溢出時,啟用cookies來處理,可防范少量SYN攻擊,默認為0,表示關閉

我們需要在sysctl.conf中增加如下:

net.ipv4.tcp_syncookies = 1

net.unix.max_dgram_qlen

swoole使用unix socket dgram來做進程間通信,如果請求量很大,需要調整此參數。系統默認為10,可以設置為100或者更大。 或者增加worker進程的數量,減少單個worker進程分配的請求量。 net.core.wmem_max 修改此參數增加socket緩存區的內存大小

我們需要在sysctl.conf中增加如下:

net.unix.max_dgram_qlen = 20000

net.ipv4.tcp_max_syn_backlog

端口最大 backlog 內核限制。此參數限制 服務端應用程序 可以設置的端口最大 backlog 值 (對應于端口的 syn_backlog 和 backlog 隊列長度)。動機是在內存有限的服務器上限制/避免應用程序配置超大 backlog 值而耗盡內核內存。如果應用程序設置 backlog 大于此值,操作系統將自動將之限制到此值。

我們需要在sysctl.conf中增加如下:

net.ipv4.tcp_max_syn_backlog = 8192

net.ipv4.tcp_mem

內核分配給TCP連接的內存,單位是Page,1 Page = 4096 Bytes,該值一般是三個數值。

第一個數字表示,當 tcp 使用的 page 少于 196608 時,kernel 不對其進行任何的干預

第二個數字表示,當 tcp 使用了超過 262144 的 pages 時,kernel 會進入 “memory pressure” 壓力模式

第三個數字表示,當 tcp 使用的 pages 超過 393216 時(相當于1.6GB內存),就會報:Out of socket memory

4G的虛擬機,我們需要在sysctl.conf中增加如下:

net.ipv4.tcp_mem = 196608 ? ? ? 262144 ?393216

8G的虛擬機,我們需要在sysctl.conf中增加如下:

net.ipv4.tcp_mem = 524288 ? ? 699050 ?1048576

net.ipv4.ip_local_port_range

本地可用端口極限值,默認值是32768到61000,說明這臺機器本地能向外連接61000-32768=28232個連接,高并發的服務明顯就不夠用.關于端口的文章,我之前寫過一篇,https://it.baiked.com/system/62.html

我們需要在sysctl.conf中增加如下:

net.ipv4.ip_local_port_range= 1024 65000

綜上所述,sysctl.conf增加完成后,執行:

sysctl -p

ok,到此結束

總結

以上是生活随笔為你收集整理的linux内核优化哪些参数,linux内核参数优化 互联网技术圈 互联网技术圈的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。