大战熟女丰满人妻av-荡女精品导航-岛国aaaa级午夜福利片-岛国av动作片在线观看-岛国av无码免费无禁网站-岛国大片激情做爰视频

專注Java教育14年 全國咨詢/投訴熱線:400-8080-105
動力節(jié)點LOGO圖
始于2009,口口相傳的Java黃埔軍校
首頁 hot資訊 RabbitMQ性能優(yōu)化

RabbitMQ性能優(yōu)化

更新時間:2021-09-15 11:10:30 來源:動力節(jié)點 瀏覽2694次

RabbitMQ的性能可以從哪些方面進行優(yōu)化呢?小編來告訴大家。

修改rabbitmq.config文件

rabbitmq.config文件時rabbitmq的配置文件,他遵守Erlang配置文件定義。 rabbitmq.config文件位置:

Unix $RABBITMQ_HOME/etc/rabbitmq

Windows %APPDATA%\RabbitMQ\

例子如下:

[
    {mnesia, [{dump_log_write_threshold, 1000}]},
    {rabbit, [{tcp_listeners, [5673]}]}
  ].

Memory配置和設置

RabbitMQ在使用當前機器的40%以上內存時候,會發(fā)出內存警告,并組織RabbitMQ所有連接(producer連接)。直到RabbitMQ將當前數據刷入到硬盤或者消息被客戶端消費。

當Erlang的垃圾回收機制運行起來(這是一個非常耗費資源的工作),會消費兩倍內存。(默認是80%的內存)。因此需要操作系統(tǒng)支持OS swap和page file.

注意:在32為架構下,每個進程被限制為2GB。通常64架構系統(tǒng)限制每個進程為256TB,64位windows限制為8TB。就算在64位操作系統(tǒng)下,32位的進程只能用2GB內存。 因此強烈推薦使用64bit Erlang vm和64bit os。

當RabbitMQ不能識別你的系統(tǒng)的時候,你必須對vm_memory_high_watermark進行修改。 當rabbitmq不能識別系統(tǒng)的時候,會設置內存為1024MB。所以rabbitmq實際使用的內存僅僅410MB。 當系統(tǒng)為8GB的時候,我們可以這是vm_memory_high_watermark=3,那么我們實際可以使用的內存為3GB。

配置Memory Threshold文件

默認配置RabbitMQ的vm_memory_high_watermark=0.4

[{rabbit, [{vm_memory_high_watermark, 0.4}]}].

舉例說明:

當機器內存為16GB,那么40%,為6.4GB。主要當32系統(tǒng)時候,實際可以使用的內存為2GB,那么實際可以使用的內存為820MB。

當我配置vm_memory_high_watermark=0 我們可以阻止所有消息發(fā)送。

注意:這個百分比,最好不要修改。應為Erlang VM回收的時候會占據系統(tǒng)內存的80%。已經達到系統(tǒng)臨界區(qū)。不要設置超過50%的百分比。

配置Page Threshold文件

當內存中的數據達到一定數量后,他需要被page out出來。 默認配置 vm_memory_high_watermark_paging_ratio=0.5。也就是vm_memory_high_watermark0.5。假設總內存8GB,0.4的使用內存是3.2。那么當內存叨叨3.20.5=1.6GB時候,系統(tǒng)將會大量置換頁面。

因此我們可以將頁面置換的百分比調高。設置為0.75

[{rabbit, [{vm_memory_high_watermark_paging_ratio, 0.75},
         {vm_memory_high_watermark, 0.4}]}].

注意:我們可以將vm_memory_high_watermark_paging_ratio設置超過1.0,那么不會發(fā)生內存換頁的情況,也就是說,當內存超過總內存的40%之后,將會阻止所有producer產生消息。

配置命令

rabbitmqctl  set_vm_memory_high_watermark 0.4

這是內存使用占總內存數的百分比

rabbitmqctl set_vm_memory_high_watermark_paging_ratio 0.75

設置rabbitmq使用內存達到rabbitmq可用內存百分比,就出發(fā)頁面交換功能。

rabbitmqctl status

獲得系統(tǒng)配置。

Disk配置和設置

RabbitMQ會在硬盤空間不夠的時候,阻止Producer發(fā)送消息。這樣可以保證RabbitMQ可以再任何時候,將內存中的數據置換到磁盤中來。通常會將硬盤剩余數據大小設置為機器的總內存大小。

全局流控制會被觸發(fā),當可用總硬盤容量已經低于配置信息。broker數據庫將會最少10秒檢查一下警告是否發(fā)出或者清除。

在RabbitMQ啟動的后,會打印disk limit限制,但是不能識別的平臺就不能顯示信息。

注意:當RabbitMQ是集群情況下,當其中有一臺機器硬盤不足的時候,所有節(jié)點的producer鏈接都會被阻止。

RabbitMQ會定期價檢查總磁盤可用空間的大小。通常時間為10秒每次,當限制快被達到時候,RabbitMQ檢查的時候會達到10次/s.

配置Disk Free Space Limit

我們可以直接設置硬盤的最小限制。也可以設置相對內存大小的設置。

先設置磁盤1GB限制

[{rabbit, [{disk_free_limit, 1000000000}]}].

在這時相對于機器總內存

[{rabbit, [{disk_free_limit, {mem_relative, 1.0}}]}].

Erlang的Hipe優(yōu)化

可以設置hipe_compiles設置。可以看到有20-50%的性能優(yōu)化。而你只需要付出1分鐘左右的延遲啟動。 HiPE需要你檢查是否編譯進入你的Erlang安裝環(huán)境。Ubuntu,需要安裝erlang-base-hipe.默認有些平臺不支持。如果Erlang VM segfaults,請關閉這個選項。

[{rabbit, [{hipe_compile, true}]}].

通過上述相信大家對“RabbitMQ性能優(yōu)化”已經有所了解,想學習更多關于Java的知識可以關注動力節(jié)點Java在線學習,里面有更多更詳細的內容供大家學習,希望對想學習Java的朋友能夠有所幫助。

提交申請后,顧問老師會電話與您溝通安排學習

免費課程推薦 >>
技術文檔推薦 >>
主站蜘蛛池模板: 奇米色视频| 精品免费国产一区二区三区 | 国产成人一区二区三区视频免费蜜 | 99热久久精品免费精品 | 国产成人一区二区三区视频免费 | 免费a大片| 伊人国产精品 | 久久爱噜噜噜噜久久久网 | 日本一区精品久久久久影院 | 国产精品美女自在线观看免费 | japanese国产高清麻豆 | 国产高清看片日韩欧美久久 | 日本中文在线三级在线播放 | 免费观看日本高清a毛片 | 四虎影院成人在线观看 | 青青草国产97免久久费观看 | 亚洲成精品动漫久久精久 | 四虎影音先锋 | 国产亚洲自拍一区 | 国产深夜 | 99热精品久久只有精品30 | 91久久亚洲国产成人精品性色 | 亚洲欧美激情精品一区二区 | 久久中文在线 | 中国一级毛片视频 | 成人美女隐私免费 | 免费看国产精品麻豆 | 成人a毛片手机免费播放 | 一级一级女人18毛片 | 久久国产乱子伦精品在 | 国产一级一级毛片 | 欧美一区二区在线播放 | 久草久草视频 | 99精品国产在热久久 | 成人免费视频在线 | 久久综合九九 | 欧美人与动人物a级网站 | 成人国产亚洲欧美成人综合网 | 香蕉视频在线观看视频 | 免费一级毛片在线视频观看 | 久久性生活视频 |