요즘 윈도우 서버는 점점 사양길이라
처음부터 리눅스 기반으로 구성하는게 좋은데
텐센트나 아마존이 CentOS 6.X 기반이라
나는 CentOS 6.6을 주로 사용한다
해당 샘플도 6.6 기반으로 설명 한다
우선 다운로드
https://www.mongodb.org/downloads#production
여기가서 Copy Link 눌러서
다운받고
wget https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-rhel62-3.2.1.tgz
압축풀고
tar xvf mongodb-linux-x86_64-rhel62-3.2.1.tgz
디렉토리 만들고
mkdir /opt/mongodb/data
mkdir /opt/mongodb/log
mkdir /opt/mongodb/config
config 파일 설정
config파일은 요즘 YAML로 포맷으로 만든다.
vi config/mongod.conf
아래와 같이 설정
systemLog:
destination: file
path: "/opt/mongodb/log/mongod.log"
logAppend: true
storage:
dbPath: "/opt/mongodb/data"
journal:
enabled: true
processManagement:
fork: true
net:
bindIp: 0.0.0.0
port: 27017
setParameter:
enableLocalhostAuthBypass: false
실행 하기 전에 귀찮으니
샐 스트립터 하나 만들고 만들때 ulimit 안주면 경고나니 ulimit를 설정하고
vi mongod.sh
#!/bin/sh
ulimit -n 1024 && bin/mongod --config config/mongod.conf
이런 경고 나오니
https://docs.mongodb.org/manual/tutorial/transparent-huge-pages/
여기 내용대로
Create the init.d script.
Create the following file at /etc/init.d/disable-transparent-hugepages:
#!/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
Make it executable.
Run the following command to ensure that the init script can be used:
sudo chmod 755 /etc/init.d/disable-transparent-hugepages
Configure your operating system to run it on boot.
Use the appropriate command to configure the new init script on your Linux distribution.
Distribution | Command |
---|---|
Ubuntu and Debian | sudo update-rc.d disable-transparent-hugepages defaults
|
SUSE | sudo insserv /etc/init.d/disable-transparent-hugepages
|
Red Hat, CentOS, Amazon Linux, and derivatives | sudo chkconfig --add disable-transparent-hugepages
|
그럼 이제 코딩하자 ~
이러면 우선 경고는 사라짐 모하는 넘인지는 좀 찾아 볼 필요가 있음