一,mongodb 配置文件解說(以4.0爲標準說明,使用centos7版本)
/etc/mongod.conf
systemLog: destination: file logAppend: true path: /var/log/mongodb/mongod.log # Where and how to store data. # 數據庫文件位置 storage: dbPath: /var/lib/mongo journal: enabled: true # engine: # mmapv1: # wiredTiger: # how the process runs processManagement: # # 是否以守護進程方式運行 fork: true # fork and run in background pidFilePath: /var/run/mongodb/mongod.pid # location of pidfile timeZoneInfo: /usr/share/zoneinfo # network interfaces net: port: 27017 bindIp: 127.0.0.1 # Enter 0.0.0.0,:: to bind to all IPv4 and IPv6 addresses or, alternatively, use the net.bindIpAll setting. #security: #operationProfiling: #replication: #sharding: ## Enterprise-Only Options #auditLog: #snmp:
mongodb 優化推薦
1、內核參數優化 vm.swappiness 如果您的主機運行內核版本3.5或更高版本,或 RHEL / CentOS內核2.6.32-303 或更高版本,則將此值設置爲0可以禁用交換。將此設置爲1。 設置0告訴內核只交換以避免內存不足的問題。 設置100告訴它積極地交換到磁盤。 2、關閉atime包含數據庫文件的存儲卷。 3、 根據ulimit引用中的建議,設置文件描述符限制-n和用戶進程限制(ulimit)-u,大於20,000 。在大量使用時,低ulimit將影響MongoDB,並且可能產生錯誤並導致與MongoDB進程的連接失敗和服務丟失。 cat /etc/security/limits.conf open files (-n) 65535 max user processes (-u) 65535 4、透明大頁面(THP)是一種Linux內存管理系統,通過使用更大的內存頁面,可以減少具有大量內存的計算機上的Translation Lookaside Buffer(TLB)查找的開銷。 但是,數據庫工作負載通常在THP上表現不佳,因爲它們往往具有稀疏而不是連續的內存訪問模式。您應該在Linux機器上禁用THP以確保使用MongoDB獲得最佳性能。 創建一個文件 /etc/init.d/disable-transparent-hugepages: #!/bin/bash ### BEGIN INIT INFO # Provides: disable-transparent-hugepages # Required-Start: $local_fs # Required-Stop: # X-Start-Before: mongod mongodb-mms-automation-agent # Default-Start: 2 3 4 5 # Default-Stop: 0 1 6 # Short-Description: Disable Linux transparent huge pages # Description: Disable Linux transparent huge pages, to improve # database performance. ### END INIT INFO case $1 in start) if [ -d /sys/kernel/mm/transparent_hugepage ]; then thp_path=/sys/kernel/mm/transparent_hugepage elif [ -d /sys/kernel/mm/redhat_transparent_hugepage ]; then thp_path=/sys/kernel/mm/redhat_transparent_hugepage else return 0 fi echo 'never' > ${thp_path}/enabled echo 'never' > ${thp_path}/defrag re='^[0-1]+$' if [[ $(cat ${thp_path}/khugepaged/defrag) =~ $re ]] then # RHEL 7 echo 0 > ${thp_path}/khugepaged/defrag else # RHEL 6 echo 'no' > ${thp_path}/khugepaged/defrag fi unset re unset thp_path ;; esac
請參考:
https://docs.mongodb.com/manual/administration/production-notes/#prod-notes-linux-file-system
MongoDB 在 bin 目錄下提供了一系列有用的工具,這些工具提供了 MongoDB 在運維管理上 的方便。
工具 | 描述 |
---|---|
mongosniff | mongodb監測工具,作用類似於 tcpdump |
mongodump | MongoDB數據備份工具 |
mongoimport | Mongodb數據導入工具 |
mongoexport | Mongodb數據導出工具 |
bsondump | 將 bson 格式的文件轉儲爲 json 格式的數據 |
mongoperf | |
mongorestore | MongoDB數據恢復工具 |
mongod.exe | MongoDB服務啓動工具 |
mongostat | mongodb自帶的狀態檢測工具 |
mongofiles | GridFS 管理工具,可實現二制文件的存取 |
mongooplog | |
mongotop | 跟蹤一個MongoDB的實例,查看哪些大量的時間花費在讀取和寫入數據 |
mongos | 分片路由,如果使用了 sharding 功能,則應用程序連接的是 mongos 而不是 mongod |
mongo | 客戶端命令行工具,其實也是一個 js 解釋器,支持 js 語法 |
參考: