介紹幾個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系統核心檔案介紹(zt)Linux
- Linux核心引數以及Oracle引數調整(updated)LinuxOracle
- Linux 核心引數 和 Oracle相關引數調整LinuxOracle
- Linux 核心引數及Oracle相關引數調整LinuxOracle
- linux常用的幾個系統介紹Linux
- (轉)Linux 核心引數及Oracle相關引數調整LinuxOracle
- django中介軟體介紹Django
- swoole優化核心引數調整優化
- LinuxSysctl調整核心引數Linux
- HP-UX調整核心引數UX
- 軟體測試--中介軟體介紹
- solaris10中安裝oracle核心引數的調整Oracle
- 【GC】安裝GC之前需要調整的幾個引數GC
- 《大型網站系統與Java中介軟體》讀書筆記(上)網站Java筆記
- linux系統常用的中介軟體Linux
- Java中系統屬性Properties介紹 System.getProperty()引數大全Java
- Linux系統調優介紹Linux
- Linux核心引數(如kernel.shmmax)及Oracle相關引數調整LinuxHMMOracle
- 3個例項介紹shell指令碼中幾個特殊引數的用法指令碼
- 簡單介紹redux的中介軟體Redux
- 幾個重要的RedHat Linux核心檔案介紹(轉)RedhatLinux
- Linux核心引數調優Linux
- 【體系結構】Oracle引數介紹Oracle
- 自動記憶體調整中真正決定自動調整的引數記憶體
- FreeBSD系統最佳化部分核心引數調整中文註釋(轉)
- 中介軟體的引數解析過程
- Django-中介軟體的介紹及使用Django
- Linux系統優化部分核心引數調優中文註釋Linux優化
- 軟體系統介紹文件模板
- oracle10G中關於 HP_UX的系統引數調整OracleUX
- MySQL記憶體引數及調整MySql記憶體
- Tomcat記憶體引數調整Tomcat記憶體
- Linux核心引數overcommit_memory和OOM killer介紹LinuxMITOOM
- MySQL引數調整MySql
- MySQL中的統計資訊相關引數介紹MySql
- 一鍵重灌系統軟體哪個好用 一鍵重灌系統軟體重灌系統方法介紹
- linux系統引數調優全解析Linux