當可用磁盤空間低於配置的限制(默認爲50MB)時,將觸發警報,全部生產者將被阻止。目標是避免填滿整個磁盤,這將致使節點上的全部寫操做失敗,並可能致使RabbitMQ終止。爲了減小填滿磁盤的風險,全部傳入的消息都被阻止。在內存不足的狀況下,瞬時消息仍然被分頁到磁盤,而且會佔用已經有限的磁盤空間。若是磁盤警報設置得過低,而且信息被快速轉出,則可能會耗盡磁盤空間,並在磁盤空間檢查(至少間隔10秒)之間崩潰RabbitMQ。更保守的方法是將限制設置爲與系統上安裝的內存量相同.
若是可用磁盤空間量低於配置的限制,則會觸發警報。代理程序數據庫使用的驅動器或分區的可用空間將至少每10秒鐘進行一次監視,以肯定是否應提升或清除磁盤警報。代理啓動後,監控將當即開始,致使代理日誌文件中的條目:數據庫
=INFO REPORT==== 23-Jun-2012::14:52:41 === Disk free limit set to 953MB
在沒法識別的平臺上將禁用監視,致使以下所示的條目:spa
=WARNING REPORT==== 23-Jun-2012::15:45:29 === Disabling disk free space monitoring
在羣集中運行RabbitMQ時,磁盤警報是集羣範圍內的; 若是一個節點超出限制,那麼全部節點都將阻止傳入的消息。代理
RabbitMQ按期檢查可用磁盤空間量。檢查磁盤空間的頻率與上次檢查時的空間大小有關(以確保在空間耗盡時磁盤報警及時消失)。一般狀況下,磁盤空間每10秒檢查一次,但隨着達到極限,頻率會增長。當接近極限時,RabbitMQ將每秒檢查10次。這可能會對系統負載有一些影響。日誌
當可用磁盤空間低於配置的限制時,RabbitMQ將阻止生產者並阻止將基於內存的消息分頁到磁盤。這將減小因爲磁盤空間耗盡而致使崩潰的可能性,但不會徹底消除。特別是,若是消息正在快速分頁,則可能會在兩次運行磁盤空間監視器之間的時間內耗盡磁盤空間並崩潰。更保守的方法是將限制設置爲與系統上安裝的內存量相同.code
磁盤可用空間限制使用disk_free_limit設置進行配置。默認狀況下,數據庫分區上須要50MB空閒空間(請參閱默認數據庫位置的文件位置說明 )。該配置文件將磁盤可用空間限制設置爲1GB:rabbitmq
disk_free_limit.absolute = 1000000000
或者你可使用像這樣的內存單位(KB,MB GB等):內存
disk_free_limit.absolute = 1GB
或者,使用經典配置格式:it
{rabbit, [{disk_free_limit, 1000000000}]}].
也能夠設置相對於機器中的RAM的可用空間限制。此配置文件將磁盤可用空間限制設置爲與機器上的RAM數量相同:集羣
disk_free_limit.relative = 1.0
或者,使用經典配置格式:監控
[{rabbit, [{disk_free_limit, {mem_relative, 1.0}}]}].
能夠在代理運行時使用rabbitmqctl set_disk_free_limit disk_limit命令或 rabbitmqctl set_disk_free_limit mem_relative 分數命令更改限制。該命令將在代理關閉以前生效。當代理從新啓動時效果應該保持不變,相應的配置設置也應該改變。