【Ubuntu】統合版マインクラフトサーバー(bedrock_server)のメモリ解放の為、自動再起動設定を行う

Linux

統合版マインクラフトをUbuntuで稼働すると、数日後にはメモリ使用率が100%近くになる。
Topコマンドで見ると以下の場合、CPU稼働時間が8時間超えただけで既に89.1%も占有されている。

このまま放置していると、bedrock_serverは落ちる。
途中でbedrock_serverが停止されるのは困るので、再起動のシェルを作成してcronでスケジューリング設定を行う事で対策する。

作業内容

シェル作成

起動シェル作成(minecraft_start.sh)

#!/bin/bash
#bedrock_serverのディレクトリ
SERVER_DIR=/home/*****/minecraft-1.20.0.01
#セッション名
SESSION_NAME=’1_world’
#ディレクトリ移動
cd ${SERVER_DIR}
#screen起動
LD_LIBRARY_PATH=. screen -dmS ${SESSION_NAME} ./bedrock_server

再起動シェル作成(minecraft_restart.sh)

!/bin/bash
#起動シェル(前述で作成したもの)
START_SCRIPT=/home/*****/minecraft_start.sh
#セッション名
SESSION_NAME=’01_world’
#screenにstopコマンド送信
screen -r ${SESSION_NAME} -X stuff $”stop\n”
#screenが終了するまでwait
while true
do
screen -r ${SESSION_NAME} -X select . > /dev/null || break
sleep 1
done
#起動シェル実行
${START_SCRIPT}

スケジューリング

cronでシェルを起動するように設定。

crontab -i

初めてcrontabを実行した場合、エディター選択画面が現れるが好みの番号を選ぶ。
もし後でエディターを変更したい場合は、以下コマンドで変更可能。

select-editor

設定内容が毎日3時にminecraft_restart.shを実行させたい場合は、以下の通りとなる。

0 3 * * * /bin/bash /home/ncc02444/minecraft_restart.sh

まとめ

あまり使用頻度の時間帯を使用して再起動設定を行ったが、今回の対応で日中にbedrock_serverが落ちる事は無くなると思われる。
しかし、bedrock_serverのメモリ使用量は半端無い!
もし共用サーバーとして稼働させていたら、bedrock_serverでメモリが占有され他にも影響が出てくるので専用サーバーで稼働するのが良い。

再起動以外で、設定でメモリ開放とかメモリを食わないようにする方法は無いのかなぁ・・・

コメント