ラズパイ上にPleromaインスタンスを立ててみたけど調子が悪いのでoptimizing postgreSQLにかかれていることを試してみたログ(未解決編)

私は無知

私は無知です。もしあなたが解決方法をここに求めているのであればここを見ているのは間違いです。むしろ自分が解決方法を聞きたいのだから!

あなたの時間を無駄にしないために先に書いておきました。

あらすじ

無知であるにも関わらず気分でPleromaインスタンスを立ててみました!!

なんと親切なことにとても丁寧な導入ページが用意されたいたために無知な私でもとりあえず立てることができました!!!(約5時間の格闘の末)

しかし!!!

/posts/optimize_postgresql_for_pleroma_but_i_dont_understand_anything/error_pleroma1.png

しょっちゅう謎の表示が出てき、その後ページを閲覧することができなくなってしまうのです・・・

どうしたものか・・・

無知な私に原因がわかるはずもなく・・・

無知である私はこういったときの対処法を何も知りません。

しかし「ログ」というものを見ると解決のヒントが載っているかもしれないという話を聞き

journalctl -r -u pleroma のようなよくわからない呪文のようなコマンドを入力し、「よくわからんがハッカーって多分こういう画面を見ているだろうな」という画面が表示されているのをただただ眺めていました

そこでこんなメッセージを見かけました

(DBConnection.ConnectionError) connection not available and request was dropped from queue after 2999ms. This mea>

・・・何もわからない・・・しかしもしかするとデータベースが悪いのかもしれない・・・

ただ単に自分がギリギリほんのギリギリ知っている単語の部分を読んだだけなきもするが

そして、仕方がないので導入ページを見ていたところこういった項目がありました

Installing on Linux using OTP releases

(Optional) Performance configuration

フム・・・どうやらデータベースのパフォーマンスを改善?することができるかもしれないっぽい

まあ本当にデータベースが問題がどうかすらわからないが・・・

といった感じでやってみただけのログです

どうせ何をやったのかすぐに忘れる自分のためにログを残して置きます

やってみる

このページに従って進めて いくよ!

Optimizing PostgreSQL performance

Disable generic query plansっていう項目を進めていくよ!

英語が読めないので何が書かれているかわからないが、コンフィグファイルになにか追加するみたいだ

・・・コンフィグファイルってどこ・・・?

自身はありませんが、多分 /etc/pleroma/config.exs こいつだと判断しました(Configuration Cheat Sheet ここにそんな感じのことが書いてあったから・・・)

多分このファイルをpleromaユーザーとして編集するんだよね??

わからないので恐る恐るこのコマンドを実行しました(意味はわかっていない)

su pleroma -s $SHELL -lc"vim /etc/pleroma/config.exs"

で、ファイル内のそれっぽいところを探してこんなふうに書き換えました。

config :pleroma, Pleroma.Repo,
  adapter: Ecto.Adapters.Postgres,
  username: "makonohennmokaetokuka",
  password: "tabunnmisetyadamenanodefutomomotodemokaiteokou",
  database: "futomomo",
  hostname: "localhost",
  prepare: :named,
  parameters: [
   plan_cache_mode: "force_custom_plan"
  ]

そして保存しました

とりあえず書き換えたのでなんとなく一旦ラズパイを再起動して見て、その後にpleromaインスタンスにアクセスしてみました。

一応以前と同じように表示されていたので致命的なミスはしていないでしょう

ので次のものをやっていきましょう

PGTuneというものを使ってみる

PGTuneというものを使うと、あれをあれな感じでいい感じにしてくれるらしい

何もわかっていないです・・・

とりあえずPGTuneというものを使うらしいので使いましょう

PGTune

色々値を入力していくといい感じのコンフィグを作ってくれるみたいです。知らんけど。

自分はこんな感じで設定しました

/posts/optimize_postgresql_for_pleroma_but_i_dont_understand_anything/pgtunedayo.png

number of connectoinsは20にしろって書いてあった気がするのでそうしました。

data storageに関してはラズパイでsdカードで動かしているのですが、選択肢になかったのでHDD storageを選択肢しました。

そして

Add/modify this settings in postgresql.conf and restart database

するようです。postgresqlの設定ってどうやっていじるんだ?!?!?

Locating the Postgres configuration file

/etc/postgresql/13/main/

にありそうでした

ls -l /etc/postgresql/13/main/

をすると、所有者?などがpostgresさんになっていることがわかり、いつもと同じようにsudo vim ~~とするとこの辺が変わってぶっ壊しそう(何回かこれをやらかした気がする)なので、どうしたら良いのか調べていると

sudo -u postgres vim /etc/postgresql/13/main/postgresql.conf

とすると良いらしいので試しました

するとファイルを編集することができるようになったのですが・・・

PostgreSQL チューニング pgtune

このブログを書いている方が一番下に設定を記載しているっぽいので真似することにしました!(真似をして生きてきた一生でした・・・)

#------------------------------------------------------------------------------
# CUSTOMIZED OPTIONS
#------------------------------------------------------------------------------



# Add settings for extensions here

# DB Version: 13
# OS Type: linux
# DB Type: web
# Total Memory (RAM): 512 MB
# CPUs num: 1
# Connections num: 20
# Data Storage: hdd

max_connections = 20
shared_buffers = 128MB
effective_cache_size = 384MB
maintenance_work_mem = 32MB
checkpoint_completion_target = 0.9
wal_buffers = 3932kB
default_statistics_target = 100
random_page_cost = 4
effective_io_concurrency = 2
work_mem = 3276kB
huge_pages = off
min_wal_size = 1GB
max_wal_size = 4GB

その後に再起動用のコマンドを実行するらしいので実行します

systemctl restart postgresql

とするとパスワードを聞かれちゃったので、sudo -iしてから実行し直しました。

その後伝家の宝刀、 とりあえずなんもわからんからラズパイ再起動

をしてみた後にpleromaインスタンスにアクセスしたところ無事にアクセスすることができました!

PostgreSQLのメモリチューニングはじめの一歩

postgresqlに接続してSHOWなんとか〜とすると設定が反映されているか確認できるみたいなので試してみました

=> SHOW max_connections;
 max_connections 
-----------------
 20
(1 row)

多分反映されているっぽいです!!!

完了・・・?

ということで多分サイトに書かれている手順は完了したと思います!!!

・・・4時間位かけて

私には何もできない・・知識不足・・だが・・・今回で1mmは成長したでしょう!!!そう信じたい!!!

しばらく使ってみてエラーが出なくなったかどうか書こうと思います!!!

/posts/optimize_postgresql_for_pleroma_but_i_dont_understand_anything/plrm_error2.png

まだまだ戦いは続きそうです

(でも気持ち前よりエラーが出なくなった気がする!!!)

それでは次回またお会いしましょう。そのときには治っているといいですね;;

Comments: