門口埕記事1:用樹莓派 3 運作 Pleroma 要三思

對不起Mn̂g-kháu-tiânn(門口埕)最近暫停服務,於 2023-04-10 2:50am 前後重新啟用。

以下是關於從今年三月下旬許開始暫停服務的原因與 Pleroma 重灌的說明。

對於想要經營自己的 Pleroma 站臺,卻不想看底下的說明的,請記得:

千萬不要在 Raspberry Pi 3 運作連接 Fediverse relay 的 Pleroma 站臺!!

Tshian-bān M̄-THANG tī Raspberry Pi 3 pháng ū tsiap Fediverse relay–ê Pleroma tsām!!

On a Raspberry Pi 3, NEVER operate a Pleroma instance connected with any relay!!

很重要,用三語各說一次!


故障原因是此站臺,從大概三月底之前就開始有負載過重的問題,時常自動重開,查詢或是送出 request 屢屢出現錯誤,後來用各種調試 PostgreSQL 還是解決不了(就算標榜輕量,還是不用 SQLite),我記得連廢資料清除的 vacuum 類 SQL 指令都用了。

後來受不了負載問題,決定重裝,但是 dump 出來的資料庫二進位檔案,兩次 dump 結果都不一樣(= =),因此受不了而使用純文字指令匯出方式備份,結果匯出了超過 1G 的指令(= =”),就算上週末把資料庫砍掉重置,把大量的指令匯入進去,結果花了好幾個小時,使我懷疑到底是不是故障了。現在已經匯入資料庫完畢了,但還需要觀察後續到底有沒有問題。

究其原因可能問題,係因為連接 relay(中繼轉訊伺服器)所致。因為 Pleroma 站臺除非有大量的使用者,否則需要 relay 才能看到大量其他站外有趣的內容。但是因為往往會從 relay 送來大量外站的資訊,就算這個站臺目前只有一個人(除了管理員賬戶以外)是主要使用者,fo 的人也沒有很多,仍然還是會造成資料庫和 Pleroma 軟體需要頻繁處理,難以重負。

就算是重整 PostgreSQL 資料庫內容,vacuum 就花很多時間。感覺這種情況調資料庫軟體參數也不一定有效。

總之,如果要自己經營站臺,要花好多時間,要經營相依軟體很多且需要繁雜設定時,更麻煩,若是機器效能不好,更費時。除非對資料庫或是網站營運知識,包含資料庫設定,有被虐狂似的渴求。

先這樣試看看吧。希望麻煩短期內不要來了。如果真的不行就需要換伺服器到迷你機殼(如果空間夠則另做打算),並大升級硬體性能。我已經浪費了許多寶貴的業餘時間在這上面,人生苦短,已經這把年紀,不該這樣把可支配時間當太平洋的海水一樣揮霍。

如果要重灌 Pleroma,以下要注意:

  • 可以用移除全部的底層相依軟體再用 Git 下載 Pleroma 原始碼重新編譯,並以類似 apt remove --purge postgresql [...] 這樣,強制移除相關檔案。
    • 類如:sudo apt remove elixir erlang-dev erlang-nox imagemagick ffmpeg libimage-exiftool-perl
  • 要 dump 資料庫內容的時候,建議 dump 2 次,再用 md5sum 這種驗證軟體驗證是否有問題,因為匯出檔過大。
  • 移除資料庫之前可以先把 PostgreSQL 的資料庫叢集移除掉。
    • 類如:sudo -Hu postgres[即操作 Postgresql 的專用OS帳號] pg_dropcluster 13[即版本號] main[即本機叢集名]
  • Pleroma 參考頁面,著手前必讀: