在Linux上,MongoDB的內存限制可以通過配置文件或啟動參數來設置。以下是兩種方法的詳細說明:
方法一:配置文件
/etc/mongod.conf
。使用文本編輯器打開它,例如使用nano:sudo nano /etc/mongod.conf
在storage
部分,找到dbPath
和journal
選項。確保它們已設置為正確的值。
在systemLog
部分,找到logAppend
選項。將其設置為true
,以便在日志文件中記錄所有操作。
在配置文件的末尾,添加以下行以設置內存限制:
setParameter:
internalQueryExecMaxBlockingSortBytes: <memory_limit_in_bytes>
將<memory_limit_in_bytes>
替換為您希望分配給MongoDB的內存限制。例如,如果您希望限制MongoDB使用2GB內存,可以將其設置為2147483648
。
保存并關閉配置文件。
重新啟動MongoDB服務以應用更改:
sudo systemctl restart mongod
方法二:啟動參數
/etc/init.d/mongod
或/lib/systemd/system/mongod.service
。使用文本編輯器打開它,例如使用nano:sudo nano /etc/init.d/mongod
或者
sudo nano /lib/systemd/system/mongod.service
exec_start
行中,找到mongod
命令。在此命令之后,添加以下參數以設置內存限制:--setParameter internalQueryExecMaxBlockingSortBytes=<memory_limit_in_bytes>
將<memory_limit_in_bytes>
替換為您希望分配給MongoDB的內存限制。例如,如果您希望限制MongoDB使用2GB內存,可以將其設置為2147483648
。
保存并關閉啟動腳本。
重新啟動MongoDB服務以應用更改:
對于SysVinit系統:
sudo service mongod restart
對于systemd系統:
sudo systemctl restart mongod
現在,MongoDB將根據您設置的內存限制運行。請注意,這些設置僅適用于MongoDB的查詢執行。其他組件(如連接池和索引構建)可能會使用更多內存。因此,您可能需要根據實際情況調整內存限制。