【Pleroma】ホームタイムラインで500エラーの修正方法

このコミットが含まれているのは:
守矢諏訪子 2022-05-31 22:17:41 +09:00
コミット 92abd18976
2個のファイルの変更90行の追加0行の削除

バイナリファイルは表示されません。

変更後

幅:  |  高さ:  |  サイズ: 401 KiB

ファイルの表示

@ -0,0 +1,90 @@
title: 【Pleroma】ホームタイムラインで500エラーの修正方法
author: 凜
date: 2022-05-31
tags: jp,blog,pleroma,linux,mastodon,postgresql
----
最近、[あたしのSNS](https://social.076.ne.jp)のホームタイムラインで500エラーが発生される事が多くなりました。\
今回は修正方法を教えます。
# PostgreSQLのコンフィグファイルの編集
まずは、[PGTune](https://pgtune.leopard.in.ua/)で創作して下さい。\
DB versionは、「psql --version」による正しいバージョンを選択して下さい。\
OS Typeはそのまま「Linux」で良いです。\
DB Typeはそのまま「Web application」で良いです。
Total Memory (RAM)を調べるには、「free -m」で確認して下さい。
```sh
free -m
total used free shared buff/cache available
Mem: 980 410 93 261 477 156
Swap: 2047 472 1575
```
こちらの場合は1 GBとなります。
Data StorageはSSDではない場合、変更して下さい。\
Number of CPUs及びNumber of Connectionsは空で良いです。\
「Generate」をクリックして下さい。
/etc/postgresql/(バージョン)/main/postgresql.conf ファイルを創作した値通り変更して下さい。
![](Screenshot_20220531_214940.png)
後はpostgresqlのサービスを再起動して下さい。
Debian、CentOS等の場合
```sh
systemctl restart postgresql
```
Devuan、OpenBSD等の場合
```sh
rc-update postgresql restart
```
下記はsystemdのコマンドを教えますので、OpenRC、runit、s6等を利用する場合、このinitシステムのコマンドで交換して下さい。
# VACUUM ANALYZEの実行
次はpostgresでVACUUM ANALYZEを実行する事が必要となります。\
初めて実行したら、まずはVACUUM FULLの実行する事が必要で可能性があります。\
その場合は「analyze」は「full」で交換して下さい。
ソースからインストールした場合:
```sh
cd /opt/pleroma
./bin/pleroma_ctl database vacuum analyze
systemctl restart pleroma
```
OTPでインストールした場合
```sh
cd /opt/pleroma
systemctl stop pleroma
sudo -Hu pleroma MIX_ENV=prod mix pleroma.database vacuum analyze
systemctl start pleroma
```
crontabで自動化にしましょう。
/etc/crontabを編集すると、下記の行列を追加して下さい。
ソースからインストールした場合:
```sh
0 1 0 * * root cd /opt/pleroma && ./bin/pleroma_ctl database vacuum analyze && systemctl restart pleroma
```
OTPでインストールした場合
```sh
0 1 0 * * root cd /opt/pleroma && systemctl stop pleroma && sudo -Hu pleroma MIX_ENV=prod mix pleroma.database vacuum analyze && systemctl start pleroma
```
それで毎日午前時でVACUUM ANALYZEを実行します。
以上