Google Analytic

2015年9月27日 星期日

在linux系統上安裝使用Mongodb Installation & use Mongodb on linux

我的linux版本是red hat 64。
首先需到官網下載程式,可以命令列執行也能從網路上下載

下載源文件

wget的https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-3.0.4.tgz

創建MongoDB的執行賬號

groupadd mongodb
useradd mongodb -g mongodb



創建數據與日誌保存目錄

mkdir -p /var/mongodb/data (db 之後都在這)
mkdir -p /var/mongodb/logs
chown -R mongodb:mongodb /var/mongodb


解壓安裝 (mongodb3是你要放mongodb的資料夾)

tar -xzvf mongodb-linux-x86_64-3.0.4.tgz
mv mongodb-linux-x86_64-3.0.4 mongodb3
chown -R mongodb:mongodb mongodb3/


啟動(DBPATH,日誌路徑前面是兩個小橫槓)

/..../mongodb3/bin/mongod --dbpath=/var/mongodb/data --logpath /var/mongodb/logs/log.log --fork

 /etc/mongod.conf  來這驗證指向的資料夾是否確實

看到類似以下信息證明啟動成功

about to fork child process, waiting until server is ready for connections.
forked process: 5200
child process started successfully, parent exiting


啟動/關閉/重啟 服務

sudo service mongod start
sudo service mongod stop
sudo service mongod restart



進入mongodb的shell模式

/...../mongodb3/bin/mongo





一開始啟動MongoDB shell可能會出現以下訊息

MongoDB shell version: 3.0.0
connecting to: test
Server has startup warnings: 
2015-03-13T16:28:29.405+0800 I CONTROL  [initandlisten] 
2015-03-13T16:28:29.406+0800 I CONTROL  [initandlisten] ** WARNING: /sys/kernel/mm/transparent_hugepage/enabled is 'always'.
2015-03-13T16:28:29.406+0800 I CONTROL  [initandlisten] **        We suggest setting it to 'never'
2015-03-13T16:28:29.406+0800 I CONTROL  [initandlisten] 

解除transparent_hugepage警告的作法有二,簡單的如下(但我用了沒效);

到/etc/sysfs.conf (沒有的話創立一個),寫入以下一行kernel/mm/transparent_hugepage/enabled = never

較複雜的如下,mongodb官網介紹

在/etc/init.d/disable-transparent-hugepages下建立script : 
#!/bin/sh
### 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

    unset thp_path
    ;;
esac

修改權限並執行

sudo chmod 755 /etc/init.d/disable-transparent-hugepages


利用 cat /sys/kernel/mm/transparent_hugepage/enabled 驗證transparent_hugepage(THP)。

若顯示如果输出结果为[always]表示THP启用
了。[never]表示禁用、[madvise]表示僅對明確要求該特性的程序啟用。





然後再啟動服務,並進去mongo shell 警告就解除摟~~

sudo service mongod start
/...../mongodb3/bin/mongo

沒有留言:

張貼留言

Related Posts Plugin for WordPress, Blogger...