Liunx 系統調優

Sysctl命令用來配置與顯示在/proc/sys目錄中的內核參數.如果想使參數長期保存,可以通過編輯/etc/sysctl.conf文件來實現。

命令格式:
sysctl [-n] [-e]
-w ?# 臨時改變某個指定參數的值,如sysctl -w net.ipv4.ip_forward=1
-a? ?# 顯示所有的系統參數
-p? ?# 從指定的文件加載系統參數,默認從/etc/sysctl.conf 文件中加載
# echo 1 > /proc/sys/net/ipv4/ip_forward
# sysctl -w net.ipv4.ip_forward=1
以上兩種方法都可能立即開啟路由功能,臨時修改,重啟失效

一丶CPU和中斷調優

SMP(symmetrical mulit-processing):對稱多處理器,在對稱多處理器系統中,所有處理器的地位都是相同的,所有的資源,特別是存儲器、中斷及I/O空間,都具有相同的可訪問性,消除了結構上的障礙
NUMA(Non Uniform Memory Access Architecture):非一致性內存訪問,是一種用于多處理器的電腦記憶體設計,內存訪問時間取決于處理器的內存位置。 在NUMA下,處理器訪問它自己的本地存儲器的速度比非本地存儲器(存儲器的地方到另一個處理器之間共享的處理器或存儲器)快一些
CPU親緣性分為軟親緣性和硬親緣性Linux 內核進程調度器天生就具有CPU 軟親緣性(soft affinity),這意味著進程通常不會在處理器之間頻繁遷移。但不代表不會進行小范圍的遷移。CPU 硬親緣性是指通過Linux提供的相關CPU親緣性設置接口,顯示的指定某個進程固定的某個處理器上運行。可以通過taskset或者glibc庫中的sched_getaffinity接口設置。
IO設備和進程之間的數據傳送方式主要有4種,(程序直接控制方式、中斷控制方式、DMA方式和通道方式)。對于Linux系統而言第2,3種IO控制方式是主流采用的,通道控制方式雖然更高效,但是由于需要添加專門的通道協處理器,故而成本較高,常用于專用場景
  • 程序控制方式:又被稱為“忙等”模式,即當要在內存和IO設備之間進行信息傳輸時,由CPU向相應的設備發出命令,由設備控制器控制IO設備進行實際操作。在IO設備工作時,CPU執行一段循環測試程序,不斷測試IO設備的完成狀況,根據完成狀況決定下一步操作。在此期間,CPU只能等待IO設備完成所有的數據傳輸,CPU和設備只能串行工作,并不能進行其他操作。?
  • 中斷控制方式:CPU向相應的IO設備發出讀寫命令后,不必等待而轉向執行其他進程,由設備控制器控制IO設備完成所有的實際操作,然后當前進程放棄對CPU的占用,進入休眠等待狀態。IO設備完成單次數據傳輸并會主動出發一次中斷信號(單次傳輸數據量是設備控制器的數據緩沖寄存器的容量,如磁盤單次讀取容量便是一個扇區,如果一次要讀入一個磁盤塊的大小數據,則需要中斷2次…),通知CPU本次IO完成,然后CPU會將控制權轉向中斷處理程序,讓其對此情況作出相應反應
  • DMA(direct memory access)工作方式:當某一進程提出一次單次大批量數據請求,則首先CPU規劃好這批數據在進程的虛擬空間的位置,并事先完成虛擬內存到實際內存的映射關系(虛擬內存那端肯定是連續的堆空間,而實際內存這段操作系統一般也會盡可能在DMA區中劃分出連續的實際內存空間以匹配),然后CPU將規劃好的內存起始地址和size發送給DMA控制器中的內存地址寄存器和size計數器,然后由DMA控制器驅動硬盤驅動程序完成本次全部的IO請求,直到輸入完成后,DMA控制器才發出中斷信號告知CPU激活中斷程序完成中斷處理。
  • 通道控制方式便是引入一個功能較為簡單的協處理機,它可以接受CPU發來的IO命令,通道作為處理機也有自己的一套指令集,可以獨立執行通道程序,對IO設備進行控制。通道的引入CPU可以專心計算,而把IO任務完全交給通道完成,二者各負其責。二者分工使得計算和IO操作可以并行,即CPU和設備并行工作,從而提高資源的利用率
IRQ(Interrupt Request):中斷請求,IRQ的作用就是在我們所用的電腦中,執行硬件中斷請求的動作,比如我們需要讀取硬盤中的一段數據時,當數據讀取完畢,硬盤就通過IRQ來通知系統,相應的數據已經寫到指定的內存中了
ISR:中斷服務路由
中斷向量:是指早期的微機系統中將由硬件產生的中斷標識碼,當中斷發生后,CPU就根據中斷向量表來決定應該跳轉到哪里
大異常:內存中未找到數據,需要到磁盤查找
小異常:內存中未找到數據,但在共享內存中存在,可以直接在共享內存中查找
Buffer(緩沖區)是系統兩端處理速度平衡(從長時間尺度上看)時使用的。它的引入是為了減小短期內突發I/O的影響,起到流量整形的作用。比如生產者——消費者問題,他們產生和消耗資源的速度大體接近,加一個buffer可以抵消掉資源剛產生/消耗時的突然變化。
Cache(緩存)則是系統兩端處理速度不匹配時的一種折衷策略。因為CPU和memory之間的速度差異越來越大,所以人們充分利用數據的局部性(locality)特征,通過使用存儲系統分級(memory hierarchy)的策略來減小這種差異帶來的影響。
調優
isolcpus=2,3 ????????????#調整參數,系統啟動后將不使用CPU2和3,參數在/etc/grup.conf文件中root=LABEL=/后面添加isolcpus=cpu號列表,cpu號從0開始,多個cpu號之間用“,”分隔
taskset -pc cpu?列表?pid?????? #將進程綁定到cpu,例taskset -pc 1,2 pid
ps axo pid,psr ????????????#查看進程運行在第幾顆CPU
cat /proc/interraps ????????? #查看中斷對應的CPU
echo “cpu” >/proc/irq/中斷號/smp_affinity #綁定中斷到某CPU

二丶進程

知識簡介
進程分為實時進程和普通進程,實時進程具有一定程度上的緊迫性,要求對外部事件做出非常快的響應;而普通進程則沒有這種限制。所以通常,實時進程要比普通進程優先運行
實時進程的優先級為1-99,越大優先級越高,調度策略如下
1,SCHED_FIFO 實時調度策略,先到先服務,一直運行直到有更高優先級任務到達或自己放棄
2,SCHED_RR 實時調度策略,時間片輪轉,進程的時間片用完,系統將重新分配時間片,并置于就緒隊列尾
普通進程的優先級為100-139,越小優先級越高,調度策略如下
1,SCHED_OTHER?分時調度策略,當實時進程準備就緒后,如果當前cpu正在運行非實時進程,則實時進程立即搶占非實時進程
調優
nice -n num CMD #調整nice值,-n范圍-20到19,越小越容易執行,內核
會自動調整
renice priority [[-p] pid ...] [[-g] pgrp ...] [[-u] user ...]
  • -p pid pid 的,例如:renice +15 785
  • -g pgrp 組的
  • -u user 用戶的
chrt -p -r(rr策略)優先級 pid #調整進程調度策略,例chrt -p -f 10 1234 修改調度策略為SCHED_FIFO,并且優先級為10
三丶內存
更加詳細的介紹可以看https://blog.csdn.net/Celeste7777/article/details/49560401
linux 系統中內存地址分為虛擬地址和物理地址,虛擬地址必須通過mmu映射成物理地址。為了完成虛擬地址到物理地址的映射,linux內核中必須為每一個用戶態進程維護一個頁目錄和相應的頁表項。一般系統中頁表中一頁大小為4K,利用getconf PAGESIZE可以獲取系統中頁大小。
Zone的buddy (linux伙伴系統):為了將系統中的內存頁做相應的管理,linux內核將系統中內存為分為不同的node,zone. 系統將不同cpu訪問速率的內存歸納為不同的node.zone表示同一個node不同內存區域,一般分問DMA, NORMAL, HIGHMEM.為了連續分配內存頁創建
Slab Allocator:主要管理小內存分配
bdflush:刷寫,流程:bio(block io buffer) 調用bdflush,io scheduler 排序,device driver驅動寫入到disk
kswapd內核線程:用來處理頁面的交換,它可以在內存不足時,將一些進程的頁面交換到swap空間之中。
PAE:物理地址擴展,用于32位擴展尋址,即在地址總線外加四根線
回寫就是先寫到內存在寫到磁盤,通寫就是寫到磁盤之后返回完成
oom_killer:它會在系統內存耗盡的情況下,啟用自己算法有選擇性的kill 掉一些進程
在x86_32位Linux系統內存中,0-3G為用戶空間,3G~4G為內核空間,內核空間分為3部分,ZONE_DMA,ZONE_NORMAL,ZONE_HIGHMEME。?
  • ZONE_DMA,0-16M,直接內存訪問。該區域的物理頁面專門供I/O設備的DMA使用。之所以需要單獨管理DMA的物理頁面,是因為DMA使用物理地址訪問內存,不經過MMU,并且需要連續的緩沖區,所以為了能夠提供物理上連續的緩沖區,必須從物理地址空間專門劃分一段區域用于DMA。這部分的數據可以直接訪問,目的在于加快磁盤和內存之間交換數據,數據不需要經過總線流向CPU的PC寄存器,再流向物理內存,直接通過總線就可到達物理內存。?
  • ZONR_NORMAL,16M-896M,內核最重要的部分,該區域的物理頁面是內核能夠直接使用的。?
  • ZONE_HIGHMEM,896M-結束,共128M,高端內存。主要用于32位Linux系統中,映射高于1G的物理內存。64位不需要高端內存。?
調優
更加詳細地調優可以看:https://blog.csdn.net/jiajiren11/article/details/78822171
/proc/sys/vm/overcommit_memory
  • 0:默認設置,內核執行啟發式的過量使用處理
  • 1:內核執行總是過量使用處理,使用這個值會增大內存超載的可能性
  • 2:設置內存使用量等于swap的大小+RAM*overcommit_ratio的值。如果希望減小內存的過度使用,這個值是最安全的
/proc/sys/vm/overcommit_ratio???????? #默認值是50,用于虛擬內存的物理內存的百分比
/proc/sys/vm/max_map_count??????????#運行單個進程使用的最大內存,防止oom
/proc/sys/vm/nr_hugepages ??????????#允許使用的大頁面(4M)數
/proc/sys/vm/page-cluster?????????? #一次清到swap上的頁面數量,作為冪指數的值,默認為3,意味著可轉移2^3=8個頁面到swap
/proc/sys/vm/drop_caches???????????#0,1表示清空頁緩存,2表示清空inode和目錄樹緩存,3清空所有的緩存,記得先sync
/proc/sys/vm/dirty_ratio ??????????#單個進程臟頁達到的百分比之后啟動刷寫線程
/proc/sys/vm/dirty_background_ratio ???? #整個系統臟頁達到百分比之后啟動刷寫線程
/proc/sys/vm/dirty_expire_centisecs ???? #臟數據最多存在多長時間后啟動刷寫線程
/proc/sys/vm/dirty_writeback_centisecs ???#每隔多長時間啟動刷寫線程
/proc/sys/vm/swappiness ?????????? #是否使用swap分區,及使用的比例。值越大,內核會越傾向于使用swap。如果設置為0,內核只有在空閑的和基于文件的內存頁數量小于內存域的高水位線(應該指的是watermark[high])時才開始swap
/proc/sys/vm/panic_on_oom
  • 0,內核會殺死內存占用過多的進程。通常殺死內存占用最多的進程,系統就會恢復。
  • 1,在發生OOM時,內核會panic。然而,如果一個進程通過內存策略或進程綁定限制了可以使用的節點,并且這些節點的內存已經耗盡,oom-killer可能會殺死一個進程來釋放內存。在這種情況下,內核不會panic,因為其他節點的內存可能還有空閑,這意味著整個系統的內存狀況還沒有處于崩潰狀態。
  • 2,在發生OOM時總是會強制panic,即使在上面討論的情況下也一樣。即使在memory cgroup限制下發生的OOM,整個系統也會panic。
進程的oom值可在/proc/pid/oom_adj 進行調整,-17不殺,越大越容易被殺,
四丶io調度
io調度的四種調度策略
1) NOOP(No Operation)。
該算法實現了最最簡單的FIFO隊列,所有IO請求大致按照先來后到的順序進行操作。之所以說“大致”,原因是NOOP在FIFO的基礎上還做了相鄰IO請求的合并,并不是完完全全按照先進先出的規則滿足IO請求。NOOP假定I/O請求由驅動程序或者設備做了優化或者重排了順序(就像一個智能控制器完成的工作那樣)。在有些SAN環境下,這個選擇可能是最好選擇。Noop 對于 IO 不那么操心,對所有的 IO請求都用 FIFO 隊列形式處理,默認認為 IO 不會存在性能問題。這也使得 CPU 也不用那么操心。當然,對于復雜一點的應用類型,使用這個調度器,用戶自己就會非常操心。?
2) Deadline scheduler?
DEADLINE在CFQ的基礎上,解決了IO請求餓死的極端情況。除了CFQ本身具有的IO排序隊列之外,DEADLINE額外分別為讀IO和寫IO提供了FIFO隊列。讀FIFO隊列的最大等待時間為500ms,寫FIFO隊列的最大等待時間為5s。FIFO隊列內的IO請求優先級要比CFQ隊列中的高,,而讀FIFO隊列的優先級又比寫FIFO隊列的優先級高。優先級可以表示如下:?FIFO(Read) > FIFO(Write) > CFQ?
deadline 算法保證對于既定的 IO 請求以最小的延遲時間,從這一點理解,對于 DSS 應用應該會是很適合的。?
3) Anticipatory scheduler?(不常用)
CFQ和DEADLINE考慮的焦點在于滿足零散IO請求上。對于連續的IO請求,比如順序讀,并沒有做優化。為了滿足隨機IO和順序IO混合的場景,Linux還支持ANTICIPATORY調度算法。ANTICIPATORY的在DEADLINE的基礎上,為每個讀IO都設置了6ms?的等待時間窗口。如果在這6ms內OS收到了相鄰位置的讀IO請求,就可以立即滿足。Anticipatory scheduler(as) 曾經一度是 Linux 2.6 Kernel 的 IO scheduler 。Anticipatory 的中文含義是”預料的, 預想的”, 這個詞的確揭示了這個算法的特點,簡單的說,有個 IO 發生的時候,如果又有進程請求 IO 操作,則將產生一個默認的 6 毫秒猜測時間,猜測下一個 進程請求 IO 是要干什么的。這對于隨即讀取會造成比較大的延時,對數據庫應用很糟糕,而對于 Web Server 等則會表現的不錯。這個算法也可以簡單理解為面向低速磁盤的,因為那個”猜測”實際上的目的是為了減少磁頭移動時間。?
4)CFQ(Completely Fair Queuing 完全公平隊列)
該算法的特點是按照IO請求的地址進行排序,而不是按照先來后到的順序來進行響應。?
在傳統的SAS盤上,磁盤尋道花去了絕大多數的IO響應時間。CFQ的出發點是對IO地址進行排序,以盡量少的磁盤旋轉次數來滿足盡可能多的IO請求。在CFQ算法下,SAS盤的吞吐量大大提高了。但是相比于NOOP的缺點是,先來的IO請求并不一定能被滿足,可能會出現餓死的情況。?cfq 在 2.6.18 取代了 Anticipatory scheduler 成為 Linux Kernel 默認的 IO scheduler 。cfq 對每個進程維護一個 IO 隊列,各個進程發來的 IO 請求會被 cfq 以輪循方式處理。也就是對每一個 IO 請求都是公平的。這使得 cfq 很適合離散讀的應用(eg: OLTP DB)。我所知道的企業級 Linux 發行版中,SuSE Linux 好像是最先默認用 cfq 的.?cfq的調度優先類分為三種
  • ilde:空閑磁盤調度,該調度策略是在當前系統沒有其他進程需要進行磁盤IO時,才能進行磁盤;因此該策略對當前系統的影響基本為0;當然,該調度策略不能帶有任何優先級參數;目前,普通用戶是可以使用該調度策略(自從內核2.6.25開始)。
  • Best effort:是缺省的磁盤IO調度策略;(1)該調度策略可以指定優先級參數(范圍是0~7,數值越小,優先級越高);(2)針對處于同一優先級的程序將采round-robin方式;(3)對于best effort調度策略,8個優先級等級可以說明在給定的一個調度窗口中時間片的大小。(4)目前,普調用戶(非root用戶)是可以使用該調度策略。(5)在內核2.6.26之前,沒有設置IO優先級的進程會使用“none”作為調度策略,但是這種策略使得進程看起來像是采用了best effort調度策略,因為其優先級是通過關于cpu nice有關的公式計算得到的:io_priority = (cpu_nice + 20) /5。(6)在內核2.6.26之后,如果當前系統使用的是CFQ調度器,那么如果進程沒有設置IO優先級級別,將采用與內核2.6.26之前版本同樣的方式,推到出io優先級級別。
  • Real time:實時調度策略,如果設置了該磁盤IO調度策略,則立即訪問磁盤,不管系統中其他進程是否有IO。因此使用實時調度策略,需要注意的是,該訪問策略可能會使得其他進程處于等待狀態
調優?
cat /sys/block/sda/queue/scheduler?
echo “cfq” > /sys/block/sda/queue/scheduler?
ionice [[-c class] [-n classdata] [-t]] -p PID [PID]…
ionice [-c class] [-n classdata] [-t] COMMAND [ARG]…
-c class :class表示調度策略,其中0 none, 1 real time, 2 best-effort, 3idle。
-n classdata:classdata表示IO優先級級別,對于best effort和real time,classdata可以設置為0~7。
-p pid:指定要查看或設置的進程號或者線程號,如果沒有指定pid參數,ionice will run the listed program with the given parameters。
-t :忽視設置優先級時產生的錯誤。
COMMAND:表示命令名
總結:?
1 CFQ和DEADLINE考慮的焦點在于滿足零散IO請求上。對于連續的IO請求,比如順序讀,并沒有做優化。為了滿足隨機IO和順序IO混合的場景,Linux還支持ANTICIPATORY調度算法。ANTICIPATORY的在DEADLINE的基礎上,為每個讀IO都設置了6ms的等待時間窗口。如果在這6ms內OS收到了相鄰位置的讀IO請求,就可以立即滿足。?IO調度器算法的選擇,既取決于硬件特征,也取決于應用場景。?在傳統的SAS盤上,CFQ、DEADLINE、ANTICIPATORY都是不錯的選擇;對于專屬的數據庫服務器DEADLINE的吞吐量和響應時間都表現良好。然而在新興的固態硬盤比如SSD、Fusion IO上,最簡單的NOOP反而可能是最好的算法,因為其他三個算法的優化是基于縮短尋道時間的,而固態硬盤沒有所謂的尋道時間且IO響應時間非常短。?
2 對于數據庫應用, Anticipatory Scheduler 的表現是最差的。Deadline 在 DSS 環境表現比 cfq 更好一點,而 cfq 綜合來看表現更好一些。這也難怪 RHEL 4 默認的 IO 調度器設置為 cfq. 而 RHEL 4 比 RHEL 3,整體 IO 改進還是不小的。?
五丶網絡調優
參數(路徑+文件)
描述
默認值
優化值
/proc/sys/net/core/rmem_default
默認的TCP數據接收窗口大小(字節)。
229376
256960
/proc/sys/net/core/rmem_max
最大的TCP數據接收窗口(字節)。
131071
513920
/proc/sys/net/core/wmem_default
默認的TCP數據發送窗口大小(字節)。
229376
256960
/proc/sys/net/core/wmem_max
最大的TCP數據發送窗口(字節)。
131071
513920
/proc/sys/net/core/netdev_max_backlog
在每個網絡接口接收數據包的速率比內核處理這些包的速率快時,允許送到隊列的數據包的最大數目。
1000
2000
/proc/sys/net/core/somaxconn
定義了系統中每一個端口最大的監聽隊列的長度,這是個全局的參數。
128
2048
/proc/sys/net/core/optmem_max
表示每個套接字所允許的最大緩沖區的大小。
20480
81920
/proc/sys/net/ipv4/tcp_mem
確定TCP棧應該如何反映內存使用,每個值的單位都是內存頁(通常是4KB)。第一個值是內存使用的下限;第二個值是內存壓力模式開始對緩沖區使用應用壓力的上限;第三個值是內存使用的上限。在這個層次上可以將報文丟棄,從而減少對內存的使用。對于較大的BDP可以增大這些值(注意,其單位是內存頁而不是字節)。
94011? 125351? 188022
131072? 262144? 524288
/proc/sys/net/ipv4/tcp_rmem
為自動調優定義socket使用的內存。第一個值是為socket接收緩沖區分配的最少字節數;第二個值是默認值(該值會被rmem_default覆蓋),緩沖區在系統負載不重的情況下可以增長到這個值;第三個值是接收緩沖區空間的最大字節數(該值會被rmem_max覆蓋)。
4096? 87380? 4011232
8760? 256960? 4088000
/proc/sys/net/ipv4/tcp_wmem
為自動調優定義socket使用的內存。第一個值是為socket發送緩沖區分配的最少字節數;第二個值是默認值(該值會被wmem_default覆蓋),緩沖區在系統負載不重的情況下可以增長到這個值;第三個值是發送緩沖區空間的最大字節數(該值會被wmem_max覆蓋)。
4096? 16384? 4011232
8760? 256960? 4088000
/proc/sys/net/ipv4/tcp_keepalive_time
TCP發送keepalive探測消息的間隔時間(秒),用于確認TCP連接是否有效。
7200
1800
/proc/sys/net/ipv4/tcp_keepalive_intvl
探測消息未獲得響應時,重發該消息的間隔時間(秒)。
75
30
/proc/sys/net/ipv4/tcp_keepalive_probes
在認定TCP連接失效之前,最多發送多少個keepalive探測消息。
9
3
/proc/sys/net/ipv4/tcp_sack
啟用有選擇的應答(1表示啟用),通過有選擇地應答亂序接收到的報文來提高性能,讓發送者只發送丟失的報文段,(對于廣域網通信來說)這個選項應該啟用,但是會增加對CPU的占用。
1
1
/proc/sys/net/ipv4/tcp_fack
啟用轉發應答,可以進行有選擇應答(SACK)從而減少擁塞情況的發生,這個選項也應該啟用。
1
1
/proc/sys/net/ipv4/tcp_timestamps
TCP時間戳(會在TCP包頭增加12個字節),以一種比重發超時更精確的方法(參考RFC 1323)來啟用對RTT 的計算,為實現更好的性能應該啟用這個選項。
1
1
/proc/sys/net/ipv4/tcp_window_scaling
啟用RFC 1323定義的window scaling,要支持超過64KB的TCP窗口,必須啟用該值(1表示啟用),TCP窗口最大至1GB,TCP連接雙方都啟用時才生效。
1
1
/proc/sys/net/ipv4/tcp_syncookies
表示是否打開TCP同步標簽(syncookie),內核必須打開了CONFIG_SYN_COOKIES項進行編譯,同步標簽可以防止一個套接字在有過多試圖連接到達時引起過載。
1
1
/proc/sys/net/ipv4/tcp_tw_reuse
表示是否允許將處于TIME-WAIT狀態的socket(TIME-WAIT的端口)用于新的TCP連接 。
0
1
/proc/sys/net/ipv4/tcp_tw_recycle
能夠更快地回收TIME-WAIT套接字。
0
1
/proc/sys/net/ipv4/tcp_fin_timeout
對于本端斷開的socket連接,TCP保持在FIN-WAIT-2狀態的時間(秒)。對方可能會斷開連接或一直不結束連接或不可預料的進程死亡。
60
30
/proc/sys/net/ipv4/ip_local_port_range
表示TCP/UDP協議允許使用的本地端口號
32768? 61000
1024? 65000
/proc/sys/net/ipv4/tcp_max_syn_backlog
對于還未獲得對方確認的連接請求,可保存在隊列中的最大數目。如果服務器經常出現過載,可以嘗試增加這個數字。
2048
2048
/proc/sys/net/ipv4/tcp_max_tw_bucket
處于timewait的連接數
??
/proc/sys/net/ipv4/tcp_synack_retries
第二次握手的重發數
?
忙時設為1或0
/proc/sys/net/ipv4/tcp_syn_retires
服務器連接客戶端時,第一次握手重發數
??
/proc/sys/net/ipv4/tcp_max_orphans
tcp套接字,請求到達還未來的及監理句柄允許的最大值,可防DOS攻擊
??
/proc/sys/net/ipv4/tcp_fin_timeout
四次斷開第二階段的超時時間FIN_WAIT_2
??
/proc/sys/net/ipv4/tcp_low_latency
允許TCP/IP棧適應在高吞吐量情況下低延時的情況,這個選項應該禁用。
0
?
/proc/sys/net/ipv4/tcp_westwood
啟用發送者端的擁塞控制算法,它可以維護對吞吐量的評估,并試圖對帶寬的整體利用情況進行優化,對于WAN 通信來說應該啟用這個選項。
0
?
/proc/sys/net/ipv4/tcp_bic
為快速長距離網絡啟用Binary Increase Congestion,這樣可以更好地利用以GB速度進行操作的鏈接,對于WAN通信應該啟用這個選項。
1
?
六丶進程間通信
/proc/sys/kernel/msgmax #單個消息最大值,字節
/proc/sys/kernel/msgmnb #隊列最大值,字節,單個隊列可多個消息
/proc/sys/kernel/msgmni #最大隊列數
/proc/sys/kernel/shmall #共享內存總量
/proc/sys/kernel/shmmax #共享內存片上限單個大小
/proc/sys/kernel/shmmni #共享內存片數量
七丶其他
/proc/sys/kernel/threads-max #內核一次可以創建的線程數
/proc/sys/fs/file-max #內核打開的文件最大數
查看服務器運行狀態的常用命令:sar、tsar、dstat、top、htop、ifotp、lsof、glances、vmstat、ss、iostat、vmstat、dstat、netstat、等好多

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/454782.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/454782.shtml
英文地址,請注明出處:http://en.pswp.cn/news/454782.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

php多文件上傳存儲到表,PHP 實現一種多文件上傳的方法

搜索熱詞之前在實現表單中file類型input選擇多圖片的時候找到一種方式 也許不是最好的但親測可行且支持ie7以上以及chrome瀏覽器在表單中使用正常多文件選擇multiple屬性PHP;">然后使用AjaxFileUpload或其他方式提交將對應命名的file文件 $file[‘image] 轉化為 json打…

CentOS7設置自定義開機啟動,添加自定義系統服務

Centos 系統服務腳本目錄: /usr/lib/systemd/ 有系統(system)和用戶(user)之分,如需要開機沒有登陸情況下就能運行的程序,存在系統服務(system)里,即&#xf…

成功應聘Intel的真實經歷

編者按:INTEL(英特爾)公司創建于1968年,是全球最大的芯片制造商,Intel研究中心更是匯聚了全球無數的精英,一批年輕人抱著夢想走入了這里,過去我們談到了太多關于Intel技術與市場方面&#xff0c…

Kotlin學習記錄1

參考我的博客:http://www.isedwardtang.com/2017/09/02/kotlin-primer-1/轉載于:https://www.cnblogs.com/EdwardTang/p/7476787.html

Keepalived配置文件詳解

keepalivedkeepalived是集群管理中保證集群高可用的一個服務軟件,其功能類似于heartbeat,用來防止單點故障。keepalived工作原理keepalived是以VRRP(Virtual Router Redundancy Protocol,即虛擬路由冗余協議)協議為實現…

php高等數學,中國大學《高等數學(四)》期末答案高校邦《PHP語言程序設計》見面課答案...

參考答案如下Conversation 2Pretco-A12.9-10.mp3:9、中國 A) Some shoes are missing. B) Itsdelivery is delayed.C) The order is cancelled. D) Some packages are damaged.10、中國 A) Giving an additional discount. B) Renewing the contract.C) Sending the goods by a…

深入剖析ThreadLocal實現原理以及內存泄漏問題

關于ThreadLocalMap<ThreadLocal, Object>弱引用問題&#xff1a; 當線程沒有結束&#xff0c;但是ThreadLocal已經被回收&#xff0c;則可能導致線程中存在ThreadLocalMap<null, Object>的鍵值對&#xff0c;造成內存泄露。&#xff08;ThreadLocal被回收&#xf…

解讀《普通大學應屆畢業生如何成功應聘微軟》

《普通大學應屆畢業生如何成功應聘微軟》這篇文章很有實踐性&#xff0c;我所要提的&#xff0c;是最后一道面試&#xff0c;也就是唐駿本人對作者的面試&#xff0c;這一輪看似平常的面試大有門道。仔細想想&#xff0c;為什么這些問題由唐駿本人來問&#xff0c;他為什么要這…

grep 命令的 12 個實例

2019獨角獸企業重金招聘Python工程師標準>>> 你是否遇到過需要在文件中查找一個特定的字符串或者樣式&#xff0c;但是不知道從哪兒開始&#xff1f;那么,就請grep來幫你吧。 grep是每個Linux發行版都預裝的一個強有力的文件模式搜索工具。無論何種原因&#xff0c;…

php 怎么從memcache緩存數據中統計某一字段總數,php和memcache統計在線人數的方法...

$mc new Memcache ();// 連接memcache$mc->connect("127.0.0.1", 11211);// 獲取 在線用戶 IP 和 在線時間數據$online_members $mc->get(online_members);// 如果為空&#xff0c;初始化數據if (!$online_members) {$online_members array();}// 獲取用戶i…

ubuntu之ufw防火墻

UFW是Ubuntu下的一個主機端的iptables類防火墻配置工具(底層調用iptables來處理)。這個工具的目的是提供給用戶一個可以輕松駕馭的界面&#xff0c;就像包集成和動態檢測開放的端口一樣。雖然功能較簡單&#xff0c;但對桌面型應用來說比較實用&#xff0c;基本常用功能都有&am…

background-size在IE8不兼容問題

background-size在IE8及以下瀏覽器不兼容&#xff1b;要解決的話要用濾鏡&#xff1a; filter: progid: DXImageTransform.Microsoft.AlphaImageLoader( src, sizingMethodscale); 注意&#xff1a;此處src的路徑必須是絕對路徑&#xff0c;相對路徑不可以&#xff01; 當寫完…

程序員 大牛 面試

水 滴 石 穿 -- 找工作記 -- yurking&#xff08;yurkinggmail.com&#xff09; 一日一錢&#xff0c;千日千錢&#xff0c;繩鋸木斷&#xff0c;水滴石穿! 這個東西寫出來有一段時間了&#xff0c;但是一直沒發&#xff0c;想著等有時間了再好好的看一看&#xff0c;改一…

Linux : shell基礎(慕課網Linux達人養成計劃課程筆記)

Shell概述 shell是Linux中的命令行解釋器&#xff0c;為用戶提供了一個向Linux內核發送請求一邊運行程序的界面系統級程序&#xff0c;用戶可以用shell來啟動、掛起、停止甚至編寫一些程序。shell還是一個功能相當強大的編程語言&#xff0c;易編寫&#xff0c;易調試&#xff…

基于matlab的大米,大米顆數計算MATLAB軟件

應用背景大米是人類的主食之一&#xff0c;是稻谷經清理、礱谷、碾米、成品整理等工序后制成的成品。人們購買米大多采用直接稱量的方法&#xff0c;市面上也有許多儀器采用光電傳感器等方式用于生產加工時米粒的計數。然而這樣的方法都比較依賴于設備&#xff0c;不方便人們日…

ubuntu17.04之apt-get源

不要問我這么簡單的也要寫&#xff0c;我只想說在網上百度了一堆源&#xff0c;在筆者這里只有一個能用&#xff0c;悲傷的表情&#xff0c;還是記錄一下吧 這個是清華的apt-get源&#xff0c;適用于ubuntu17.04apt-get源文件目錄 /etc/apt/sources.list &#xff0c;記得先備份…

HttpClient通過Post方式發送Json數據

服務器用的是Springmvc&#xff0c;接口內容&#xff1a; [java] view plaincopy print?ResponseBody RequestMapping(value"/order",methodRequestMethod.POST) public boolean order(HttpServletRequest request,RequestBody List<Order> orders) throws …

openssl、ssh

PKI&#xff1a;公鑰基礎設施&#xff0c;保證服務器向客戶端發送的證書的可靠性&#xff1b;簽證機構&#xff1a;CA注冊機構&#xff1a;RA證書吊銷列表&#xff1a;CRL證書存取庫&#xff1a;CAB威瑞信——verisignGlobalSign賽門鐵克AsiaCOM國際標準化組織定義了證書的標準…

php圖型分析插件,IMAGE縮略圖插件

應用信息 名稱: IMAGE縮略圖插件 售價: (免費) 應用ID: IMAGE 最低要求: Z-BlogPHP 1.5.1 Zero Build 151740版 本: 2 發布日期: 2014-08-27PHP最低版本要求: 5.3 更新日期: 2018-05-21立即購買 加入購物車作者信息 開發者ID: 十五樓的鳥兒 本站用戶組: 管理員 聯系郵箱: adm…

職業生涯步步高

在擔任公司高管的幾年間&#xff0c;我面試過數以百計的各個層面的員工&#xff0c;其中最讓我感到遺憾的一個現象就是很多人有著非常好的素質&#xff0c;甚至有的還是名校的畢業生&#xff0c;因為不懂得去規劃自己的職業&#xff0c;在工作多年后&#xff0c;依然拿著微薄的…