介紹幾個Java大型中介軟體系統中須調整的Linux核心引數
作為Java開發者,必可避免的需要開發或使用一些中介軟體,對於Java開發的中介軟體,除了JVM引數必須調整外,
的一些核心引數也必須要調整,這裡幾個,僅供參考。
|
無非都是跟磁碟檔案IO、網路通訊、記憶體管理、執行緒數量有關係的,因為我們的中介軟體系統在執行的時候無非就是跟這些打交道。
這個引數有三個值可以選擇,0、1、2。
如果值是0的話,在你的中介軟體系統申請記憶體的時候,作業系統核心會檢查可用記憶體是否足夠,如果足夠的話就分配記憶體給你,如果感覺剩餘記憶體不是太夠了,乾脆就拒絕你的申請,導致你申請記憶體失敗,進而導致中介軟體系統異常出錯。因此一般需要將這個引數的值調整為1,意思是把所有可用的實體記憶體都允許分配給你,只要有記憶體就給你來用,這樣可以避免申請記憶體失敗的問題。
比如我們曾經線上環境部署的Redis就因為這個引數是0,導致在save資料快照到磁碟檔案的時候,需要申請大記憶體的時候被拒絕了,進而導致了異常報錯。
可以用如下 修改:
echo 'vm.overcommit_memory=1' >> /etc/sysctl.conf
這個引數的值會影響中介軟體系統可以開啟的執行緒的數量,同樣也是非常重要的。
如果這個引數過小,有的時候可能會導致有些中介軟體無法開啟足夠的執行緒,進而導致報錯,甚至中介軟體系統掛掉。
他的預設值是65536,但是這個值有時候是不夠的,比如我們大資料團隊的生產環境部署的Kafka叢集曾經有一次就報出過這個異常,說無法開啟足夠多的執行緒,直接導致Kafka當機了。
可以用如下 修改:
echo 'vm.max_map_count=655360' >> /etc/sysctl.conf
這個引數是用來控制程式的swap行為的,這個簡單來說就是作業系統會把一部分磁碟空間作為swap區域,然後如果有的程式現在可能不是太活躍,就會被作業系統把程式調整為睡眠狀態,把程式中的資料放入磁碟上的swap區域,然後讓這個程式把原來佔用的記憶體空間騰出來,交給其他活躍執行的程式來使用。
如果這個引數的值設定為0,意思就是儘量別把任何一個程式放到磁碟swap區域去,儘量大家都用實體記憶體。
如果這個引數的值是100,那麼意思就是儘量把一些程式給放到磁碟swap區域去,記憶體騰出來給活躍的程式使用。
預設這個引數的值是60,有點偏高了,可能會導致我們的中介軟體執行不活躍的時候被迫騰出記憶體空間然後放磁碟swap區域去。因此通常在生產環境建議把這個引數調整小一些,比如設定為10,儘量用實體記憶體,別放磁碟swap區域去。
可以用如下命令修改:
echo 'vm.swappiness=10' >> /etc/sysctl.conf
這個是用來控制linux上的最大檔案連線數的,預設值可能是1024,一般肯定是不夠的,因為你在大量頻繁的讀寫磁碟檔案的時候,或者是進行網路通訊的時候,都會跟這個引數有關係
對於一箇中介軟體系統而言肯定是不能使用預設值得,如果你採用預設值,很可能線上上會出現如下錯誤:
error: too many open files
因此通常建議用如下命令修改這個值:
echo 'ulimit -n 1000000' >> /etc/profile
中介軟體系統肯定要開啟大量的執行緒(跟vm.max_map_count有關)。
而且要進行大量的網路通訊和磁碟IO(跟ulimit有關)。
然後大量的使用記憶體(跟vm.swappiness和vm.overcommit_memory有關)。
所以對OS核心引數的調整,往往也就是圍繞跟中介軟體系統執行最相關的一些東西。
原文來自:
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69955379/viewspace-2691932/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- linux常用的幾個系統介紹Linux
- Linux系統調優介紹Linux
- linux系統常用的中介軟體Linux
- django中介軟體介紹Django
- swoole優化核心引數調整優化
- 軟體測試--中介軟體介紹
- solaris10中安裝oracle核心引數的調整Oracle
- 《大型網站系統與Java中介軟體》讀書筆記(上)網站Java筆記
- Linux核心引數overcommit_memory和OOM killer介紹LinuxMITOOM
- 3個例項介紹shell指令碼中幾個特殊引數的用法指令碼
- 簡單介紹redux的中介軟體Redux
- 『學了就忘』Linux軟體包管理 — 40、Linux系統軟體包介紹Linux
- Django-中介軟體的介紹及使用Django
- 中介軟體的引數解析過程
- 軟體系統介紹文件模板
- Linux由幾部分組成?Linux系統結構介紹!Linux
- Linux作業系統總體介紹!Linux作業系統
- linux系統lvm中lv使用空間的調整LinuxLVM
- 一鍵重灌系統軟體哪個好用 一鍵重灌系統軟體重灌系統方法介紹
- Linux系統調整swap大小Linux
- Linux雲端計算架構-系統調優【CPU、IO、網路、核心引數調優】Linux架構
- 在Linux中,linux核心引數如何修改?Linux
- Linux常用的監控軟體介紹!Linux
- solaris記憶體引數調整及管理記憶體
- Java中幾種常用的RPC框架介紹JavaRPC框架
- laravel11:中介軟體傳遞引數Laravel
- Linux核心的整體架構Linux架構
- matplotlib介紹&基本使用&座標系顯示調整
- linux作業系統介紹Linux作業系統
- Django筆記二十九之中介軟體介紹Django筆記
- 系統程式設計-網路-內容概要、整體介紹程式設計
- docker下的spark叢集,調整引數榨乾硬體DockerSpark
- Untiy 中的幾個資料夾的介紹
- linux修改系統引數Linux
- Linux環境安裝Oracle11g(二)——作業系統引數及服務調整LinuxOracle作業系統
- ?【Alibaba中介軟體技術系列】「Sentinel技術專題」分散式系統的流量防衛兵的基本介紹(入門原始碼介紹)分散式原始碼
- Linux系統學習須牢記這幾點Linux
- lazarus中介軟體簡介