一般來說,linux的虛擬記憶體會根據系統負載自動調整。記憶體頁(page)swap到磁碟會顯著的影響kafka的效能,並且kafka重度使用page cache,如果vm系統swap到磁碟,那說明沒有足夠的記憶體來分配page cache。
另外一種方式是通過核心調節「髒頁」(注:「髒頁」會被刷到磁碟上)。kafka依賴磁碟i/o效能來提高producer的響應時間。這也是為什麼通常優先把log segment功能放在可以快速響應的磁碟中(比如ssd)。這樣使得flush程序把「髒資料」寫入磁碟前,「髒頁」數目就減少了,可以設定vm.dirty_background_ratio(表示占用系統記憶體的百分比)引數的值為10 以下。大部分應用場景下,vm.dirty_background_ratio設定為 5 就夠用了,要注意了:這個引數值不能設定為 0 ,因為設定為 0 後會引起核心持續刷「髒頁」,使得核心的buffer write功能沒法施展。
「髒頁」的總量可以通過vm.dirty_ratio 來改變,預設值是 20 (此處也是百分比),這個值的設定範圍較大,一般建議設定 60 到 80 為合理的值。但是vm.dirty_ratio 引數也引來了不小的風險,會造成大量unflush的資料在硬刷到磁碟時產生較長的i/o停頓。如果vm.dirty_ratio 值設定的較大時,強烈建議kafka開啟備份功能,以備系統崩潰。
在設定了這些引數後,需要監控kafka集群執行時「髒頁」的數量,當前「髒頁」數量可由如下方式檢視(/proc/vmstat檔案):
#cat /proc/vmstat | egrep"dirty|writeback
"nr_dirty
3875
nr_writeback
29nr_writeback_temp
0
臨時生效:
永久生效:
echo"">> /etc/sysctl.conf (盡量不使用交換分割槽,注意不是禁用)
重新整理swap
可以執行命令重新整理一次swap(將swap裡的資料轉儲回記憶體,並清空swap裡的資料)
swapoff -a && swapon -asysctl -p (執行這個使其生效,不用重啟)
Centos 永久關閉防火牆
1開啟虛擬機器,然後輸入命令 systemctl status firewalld.service 並按下回車鍵。2 出現上圖中的active running 此時說明防火牆已經開啟了,3在命令列中輸入systemctl stop firewalld.service命令,進行關閉防火牆。4然後再使用...
永久關閉selinux 防火牆
1 永久方法 需要重啟伺服器 修改 etc selinux config檔案中設定selinux disabled 然後重啟伺服器。2 臨時方法 設定系統引數 使用命令setenforce 0 附 setenforce 1 設定selinux 成為enforcing模式 setenforce 0 設...
永久關閉windows更新步驟
windows10還需要關閉orchestrarot更新服務。使用管理員執行下面的命令 如果管理員不行,請到安全模式下執行 set x usosvc reg add hklm system currentcontrolset services x v start t reg dword d 4 f ...