【備忘録】SHIRASAGIをローカル環境に構築する part 1
背景
OSSで利用できるグループウェアを兼ね備えたものはないかと探したときに見つけました
導入事例も確認して構築してみたい!!
環境
項目 | 名称 |
---|---|
OS | lubuntu 22.04 |
DB | MongoDB |
メモリ | 16GB |
導入環境の準備
SHIRASAGI Ubuntu版
Ubuntu環境の手順を参考に行います
パッケージのダウンロード
sudo apt -y install apt install build-essential libssl-dev imagemagick libmagickcore-dev libmagickwand-dev gnupg2 git wget software-properties-common ca-certificates lsb-release
公式のパッケージのダウンロードを鵜呑みした例
コマンドを実行する前に気付くべきでした
以下のように直して再実行
sudo apt -y install build-essential libssl-dev imagemagick libmagickcore-dev libmagickwand-dev gnupg2 git wget software-properties-common ca-certificates lsb-release
MongoDBのインストール
1. sudo apt install wget gnupg software-properties-common ca-certificates lsb-release
2. wget -qO - https://www.mongodb.org/static/pgp/server-6.0.asc |sudo gpg --dearmor -o /etc/apt/trusted.gpg.d/mongodb-6.gpg
3. echo "deb [ arch=amd64,arm64 ] https://repo.mongodb.org/apt/ubuntu $(lsb_release -cs)/mongodb-org/6.0 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-6.0.list
4. sudo apt update
5. sudo apt install -y mongodb-org
3を実行時にレスポンスがあります
echo "deb [ arch=amd64,arm64 ] https://repo.mongodb.org/apt/ubuntu $(lsb_release -cs)/mongodb-org/6.0 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-6.0.list
↓以下のメッセージが表示される
deb [ arch=amd64,arm64 ] https://repo.mongodb.org/apt/ubuntu jammy/mongodb-org/6.0 multiverse
MongoDB の推奨設定
公式の手順に従うとSHIRASAGIとMongoDBが同一サーバ上に同居させるときは、MongoDBのメモリ消費を抑止しといたほうがいいようなので対応してみます!!
インストールマニュアル - MongoDB 推奨設定
- 自環境のメモリ量を確認
自環境
free -mt #物理メモリとスワップ領域の合計も表示したい場合-t、 -mでメガバイト表示
total used free shared buff/cache available
Mem: 15674 584 8682 61 6407 14701
Swap: 511 0 511
Total: 16186 584 9194
Total部分からメモリの最大は16GBと考える
- リソース制限の確認と設定
ulimitコマンド
ulimit -a
real-time non-blocking time (microseconds, -R) unlimited
core file size (blocks, -c) 0
data seg size (kbytes, -d) unlimited
scheduling priority (-e) 0
file size (blocks, -f) unlimited
pending signals (-i) 62156
max locked memory (kbytes, -l) 2006308
max memory size (kbytes, -m) unlimited
open files (-n) 1024
pipe size (512 bytes, -p) 8
POSIX message queues (bytes, -q) 819200
real-time priority (-r) 0
stack size (kbytes, -s) 8192
cpu time (seconds, -t) unlimited
max user processes (-u) 62156
virtual memory (kbytes, -v) unlimited
file locks (-x) unlimited
推奨設定値
limit fsize unlimited unlimited # (file size)
limit cpu unlimited unlimited # (cpu time)
limit as unlimited unlimited # (virtual memory size)
limit memlock unlimited unlimited # (locked-in-memory size)
limit nofile 64000 64000 # (open files)
limit nproc 64000 64000 # (processes/threads)
Serviceのデフォルト値が推奨設定値なので、サービスファイルは編集しない
メモリ消費の抑止
/etc/mongod.confを編集する
/etc/mongod.conf
10 # wiredTiger:
↓
10 wiredTiger:
11 engineConfig:
12 cacheSizeGB: 1
に変更します。vimで開いているので左の数字は行数を示しています
MongoDB起動
コマンド実行後エラーがないこと、プロセスファイルから設定が反映されているか確認
sudo systemctl start mongod
/proc/$MongoDBのプロセスID/limits
Limit Soft Limit Hard Limit Units
Max cpu time unlimited unlimited seconds
Max file size unlimited unlimited bytes
Max data size unlimited unlimited bytes
Max stack size 8388608 unlimited bytes
Max core file size 0 unlimited bytes
Max resident set unlimited unlimited bytes
Max processes 64000 64000 processes
Max open files 64000 64000 files
Max locked memory unlimited unlimited bytes
Max address space unlimited unlimited bytes
Max file locks unlimited unlimited locks
Max pending signals 62156 62156 signals
Max msgqueue size 819200 819200 bytes
Max nice priority 0 0
Max realtime priority 0 0
Max realtime timeout unlimited unlimited us
/proc/$MongoDBのプロセスID/oom_score_adj
MongoDB を OOM Killer の対象から除外を実施していないため
0
MongoDB接続確認
mongosh
環境は整ったと思うので今回の記事はここまでになります
記事を見ていただいて、ありがとうございます。
参考
公式: https://www.ss-proj.org/
シラサギとは: https://www.ss-proj.org/about/
mongoコマンドが見つからない
Discussion