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

歡迎訪問 生活随笔!

生活随笔

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

linux

(转) Linux 内核运行参数修改——sysctl命令

發布時間:2023/12/2 linux 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 (转) Linux 内核运行参数修改——sysctl命令 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

原文:https://blog.csdn.net/u012707739/article/details/78254241

sysctl命令被用于在內核運行時動態地修改內核的運行參數,可用的內核參數在目錄/proc/sys中。它包含一些TCP/ip堆棧和虛擬內存系統的高級選項,用sysctl可以讀取設置超過五百個系統變量。

sysctl命令

用法:?
sysctl [options] [variable[=value] …]

常用選項:?
-n:打印時只打印值,不打印參數名稱;?
-e:忽略未知關鍵字錯誤;?
-N:打印時只打印參數名稱,不打印值;?
-w:設置參數的值(不過好像不加這個選項也可以直接設置);?
-p:從配置文件“/etc/sysctl.conf”加載內核參數設置;?
-a:打印所有內核參數變量;?
-A:以表格方式打印所有內核參數變量。

示例

1、 設置socket接收緩沖最大值(rmem_max)為212992字節

sudo sysctl -w net.core.rmem_max=212992
  • 1

2、查看socket接收緩沖最大值(rmem_max)

sysctl net.core.rmem_max
  • 1

sysctl可以設置查看的內核參數都在目錄/proc/sys中,每個文件都記錄了一個參數,sysctl命令中其實也記錄了參數的相對路徑,只要將 . 換成 / 就是文件路徑,比如記錄net.core.rmem_max的文件就是/proc/sys/net/core/rmem_max,所以也可以直接查看文件內容來讀取參數的值

cat /proc/sys/net/core/rmem_max
  • 1

如果不知道參數路徑也可以這么做:

sysctl -a | grep rmem_max
  • 1

配置sysctl

編輯此文件vi /etc/sysctl.conf?
如果該文件為空,則輸入以下內容,否則請根據情況自己做調整(復制自http://man.linuxde.net/sysctl):

# Controls source route verification # Default should work for all interfaces net.ipv4.conf.default.rp_filter = 1 # net.ipv4.conf.all.rp_filter = 1 # net.ipv4.conf.lo.rp_filter = 1 # net.ipv4.conf.eth0.rp_filter = 1 # Disables IP source routing # Default should work for all interfaces net.ipv4.conf.default.accept_source_route = 0 # net.ipv4.conf.all.accept_source_route = 0 # net.ipv4.conf.lo.accept_source_route = 0 # net.ipv4.conf.eth0.accept_source_route = 0 # Controls the System Request debugging functionality of the kernel kernel.sysrq = 0 # Controls whether core dumps will append the PID to the core filename. # Useful for debugging multi-threaded applications. kernel.core_uses_pid = 1 # Increase maximum amount of memory allocated to shm # Only uncomment if needed! # kernel.shmmax = 67108864 # Disable ICMP Redirect Acceptance # Default should work for all interfaces net.ipv4.conf.default.accept_redirects = 0 # net.ipv4.conf.all.accept_redirects = 0 # net.ipv4.conf.lo.accept_redirects = 0 # net.ipv4.conf.eth0.accept_redirects = 0 # Enable Log Spoofed Packets, Source Routed Packets, Redirect Packets # Default should work for all interfaces net.ipv4.conf.default.log_martians = 1 # net.ipv4.conf.all.log_martians = 1 # net.ipv4.conf.lo.log_martians = 1 # net.ipv4.conf.eth0.log_martians = 1 # Decrease the time default value for tcp_fin_timeout connection net.ipv4.tcp_fin_timeout = 25 # Decrease the time default value for tcp_keepalive_time connection net.ipv4.tcp_keepalive_time = 1200 # Turn on the tcp_window_scaling net.ipv4.tcp_window_scaling = 1 # Turn on the tcp_sack net.ipv4.tcp_sack = 1 # tcp_fack should be on because of sack net.ipv4.tcp_fack = 1 # Turn on the tcp_timestamps net.ipv4.tcp_timestamps = 1 # Enable TCP SYN Cookie Protection net.ipv4.tcp_syncookies = 1 # Enable ignoring broadcasts request net.ipv4.icmp_echo_ignore_broadcasts = 1 # Enable bad error message Protection net.ipv4.icmp_ignore_bogus_error_responses = 1 # Make more local ports available # net.ipv4.ip_local_port_range = 1024 65000 # Set TCP Re-Ordering value in kernel to ‘5′ net.ipv4.tcp_reordering = 5 # Lower syn retry rates net.ipv4.tcp_synack_retries = 2 net.ipv4.tcp_syn_retries = 3 # Set Max SYN Backlog to ‘2048′ net.ipv4.tcp_max_syn_backlog = 2048 # Various Settings net.core.netdev_max_backlog = 1024 # Increase the maximum number of skb-heads to be cached net.core.hot_list_length = 256 # Increase the tcp-time-wait buckets pool size net.ipv4.tcp_max_tw_buckets = 360000 # This will increase the amount of memory available for socket input/output queues net.core.rmem_default = 65535 net.core.rmem_max = 8388608 net.ipv4.tcp_rmem = 4096 87380 8388608 net.core.wmem_default = 65535 net.core.wmem_max = 8388608 net.ipv4.tcp_wmem = 4096 65535 8388608 net.ipv4.tcp_mem = 8388608 8388608 8388608 net.core.optmem_max = 40960
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58
  • 59
  • 60
  • 61
  • 62
  • 63
  • 64
  • 65
  • 66
  • 67
  • 68
  • 69
  • 70
  • 71
  • 72
  • 73
  • 74

如果希望屏蔽別人 ping 你的主機,則加入以下代碼:

# Disable ping requests net.ipv4.icmp_echo_ignore_all = 1
  • 1
  • 2

編輯完成后,請執行以下命令使變動立即生效:

/sbin/sysctl -p /sbin/sysctl -w net.ipv4.route.flush=1
  • 1
  • 2

TCP/IP參數

所有的TCP/IP參數都位于/proc/sys/net目錄下(請注意,對/proc/sys/net目錄下內容的修改都是臨時的,任何修改在系統重啟后都會丟失),例如下面這些重要的參數:

參數(路徑+文件)描述
/proc/sys/net/core/rmem_default默認的TCP數據接收窗口大小(字節)。
/proc/sys/net/core/rmem_max最大的TCP數據接收窗口(字節)。
/proc/sys/net/core/wmem_default默認的TCP數據發送窗口大小(字節)。
/proc/sys/net/core/wmem_max最大的TCP數據發送窗口(字節)。
/proc/sys/net/core/netdev_max_backlog在每個網絡接口接收數據包的速率比內核處理這些包的速率快時,允許送到隊列的數據包的最大數目。
/proc/sys/net/core/somaxconn定義了系統中每一個端口最大的監聽隊列的長度,這是個全局的參數。
/proc/sys/net/core/optmem_max表示每個套接字所允許的最大緩沖區的大小。
/proc/sys/net/ipv4/tcp_mem確定TCP棧應該如何反映內存使用,每個值的單位都是內存頁(通常是4KB)。第一個值是內存使用的下限;第二個值是內存壓力模式開始對緩沖區使用應用壓力的上限;第三個值是內存使用的上限。在這個層次上可以將報文丟棄,從而減少對內存的使用。對于較大的BDP可以增大這些值(注意,其單位是內存頁而不是字節)。
/proc/sys/net/ipv4/tcp_rmem為自動調優定義socket使用的內存。第一個值是為socket接收緩沖區分配的最少字節數;第二個值是默認值(該值會被rmem_default覆蓋),緩沖區在系統負載不重的情況下可以增長到這個值;第三個值是接收緩沖區空間的最大字節數(該值會被rmem_max覆蓋)。
/proc/sys/net/ipv4/tcp_wmem為自動調優定義socket使用的內存。第一個值是為socket發送緩沖區分配的最少字節數;第二個值是默認值(該值會被wmem_default覆蓋),緩沖區在系統負載不重的情況下可以增長到這個值;第三個值是發送緩沖區空間的最大字節數(該值會被wmem_max覆蓋)。
/proc/sys/net/ipv4/tcp_keepalive_timeTCP發送keepalive探測消息的間隔時間(秒),用于確認TCP連接是否有效。
/proc/sys/net/ipv4/tcp_keepalive_intvl探測消息未獲得響應時,重發該消息的間隔時間(秒)。
/proc/sys/net/ipv4/tcp_keepalive_probes在認定TCP連接失效之前,最多發送多少個keepalive探測消息。
/proc/sys/net/ipv4/tcp_sack啟用有選擇的應答(1表示啟用),通過有選擇地應答亂序接收到的報文來提高性能,讓發送者只發送丟失的報文段,(對于廣域網通信來說)這個選項應該啟用,但是會增加對CPU的占用。
/proc/sys/net/ipv4/tcp_fack啟用轉發應答,可以進行有選擇應答(SACK)從而減少擁塞情況的發生,這個選項也應該啟用。
/proc/sys/net/ipv4/tcp_timestampsTCP時間戳(會在TCP包頭增加12個字節),以一種比重發超時更精確的方法(參考RFC 1323)來啟用對RTT 的計算,為實現更好的性能應該啟用這個選項。
/proc/sys/net/ipv4/tcp_window_scaling啟用RFC 1323定義的window scaling,要支持超過64KB的TCP窗口,必須啟用該值(1表示啟用),TCP窗口最大至1GB,TCP連接雙方都啟用時才生效。
/proc/sys/net/ipv4/tcp_syncookies表示是否打開TCP同步標簽(syncookie),內核必須打開了CONFIG_SYN_COOKIES項進行編譯,同步標簽可以防止一個套接字在有過多試圖連接到達時引起過載。
/proc/sys/net/ipv4/tcp_tw_reuse表示是否允許將處于TIME-WAIT狀態的socket(TIME-WAIT的端口)用于新的TCP連接 。
/proc/sys/net/ipv4/tcp_tw_recycle能夠更快地回收TIME-WAIT套接字。
/proc/sys/net/ipv4/tcp_fin_timeout對于本端斷開的socket連接,TCP保持在FIN-WAIT-2狀態的時間(秒)。對方可能會斷開連接或一直不結束連接或不可預料的進程死亡。
/proc/sys/net/ipv4/ip_local_port_range表示TCP/UDP協議允許使用的本地端口號
/proc/sys/net/ipv4/tcp_max_syn_backlog對于還未獲得對方確認的連接請求,可保存在隊列中的最大數目。如果服務器經常出現過載,可以嘗試增加這個數字。
/proc/sys/net/ipv4/tcp_low_latency允許TCP/IP棧適應在高吞吐量情況下低延時的情況,這個選項應該禁用。
/proc/sys/net/ipv4/tcp_westwood啟用發送者端的擁塞控制算法,它可以維護對吞吐量的評估,并試圖對帶寬的整體利用情況進行優化,對于WAN 通信來說應該啟用這個選項。
/proc/sys/net/ipv4/tcp_bic為快速長距離網絡啟用Binary Increase Congestion,這樣可以更好地利用以GB速度進行操作的鏈接,對于WAN通信應該啟用這個選項。

轉載于:https://www.cnblogs.com/liujiacai/p/9314822.html

創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎

總結

以上是生活随笔為你收集整理的(转) Linux 内核运行参数修改——sysctl命令的全部內容,希望文章能夠幫你解決所遇到的問題。

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