一、mongodb4.0簡介與使用

一,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 在運維管理上 的方便。

工具描述
mongosniffmongodb監測工具,作用類似於 tcpdump
mongodumpMongoDB數據備份工具
mongoimportMongodb數據導入工具
mongoexportMongodb數據導出工具
bsondump將 bson 格式的文件轉儲爲 json 格式的數據
mongoperf
mongorestoreMongoDB數據恢復工具
mongod.exeMongoDB服務啓動工具
mongostatmongodb自帶的狀態檢測工具
mongofilesGridFS 管理工具,可實現二制文件的存取
mongooplog
mongotop跟蹤一個MongoDB的實例,查看哪些大量的時間花費在讀取和寫入數據
mongos分片路由,如果使用了 sharding 功能,則應用程序連接的是 mongos 而不是 mongod
mongo客戶端命令行工具,其實也是一個 js 解釋器,支持 js 語法

參考:

http://www.mongodb.org.cn/manual/

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章