PR

Zswap / ZRAM で VPS を高速化

diet-success サーバ
この記事は約6分で読めます。

※ この記事は 2024/03/27 に投稿され、 2024/03/27 に内容が更新されています

経緯

Google さんに「遅い」と言われた

ブログをはじめたからには、アクセス数を稼いでアドセンスとかしたいじゃないですか。
アドセンスは落ちたし、 PageSpeed Insights には「モバイル環境だと遅い」と言われました。

ならば対策です。

現状

今は VPS サービスの下位プラン

当サイトのサーバは Poor です。
安っすい VPS サービスの、しかも下位プランを使っています。

vCPU: 3 Core
RAM: 2 GB
ストレージ: NVMe 50 GB

ストレージが NVMe なだけマシですが、とてもパフォーマンスを期待できる環境ではないですね。
バッファなんぞないです。

対策

開き直っていてもしょうがないので、対策を講じましょう。
有効かどうかはわからないけど、やらないよりはマシ。

そこにサーバがあるから。

問題点は?

VPS サービスは各社提供していますが、どこも似たようなスペックです。
そして、 vCPU に比べて RAM が少ないところがほとんど。

vCPU: 3 コア / RAM: 2GB 構成よりも、本当に欲しいスペックは vCPU: 2 / RAM: 3 GB。
逆にしてくれた方がありがたいです。
※ どこかイケてる VPS サービスを出してくれないだろうか、、

チラ裏

余談ですが VPS と VPN を勘違いされている方がいますが、全然別物です。
VPSVirtual Private ServerVPNVirtual Private Network はまったく別物。
略称で覚えるからいけなくて、規格などは省略前の言葉で覚えるのが良いと思う。

また、事業者が同じだから混同しがちだけど、レンタルサーバと VPS もまったくの別物。

  • レンタルサーバ
    • 例えるなら、生クリームが塗られたスポンジケーキが既に用意されていて、あとはいちごなど好きな具材を乗せてショートケーキをつくるサービス
  • VPS
    • 例えるなら、スポンジケーキを焼くところからはじめる、ショートケーキをつくるサービス

同じショートケーキをつくるのでも出来栄えが違うし、過程もまったく違います。

対策案

脱線してしまったので、元に戻します。

RAM は太古の昔から足りなくて、足すか消費を減らすか、どちらかしかありません。
しかし、偉大な先人達は解決策を示してくれていました。

メモリ圧縮

macOS も Windows 10 もメモリ圧縮を利用しています。
最近の CPU は速いので、メモリ圧縮にかかる時間を裂いても、メモリ空間を有効利用した方がいいという考えのようです。
太古の昔、旧 Mac OS (System / 漢字 Talk ) には RAM Doubler という(ry

具体的対策 – ZRAM

macOS や Windows 10 と同じく、メモリ圧縮を導入しましょう。
同様の機能が提供されているのは、 ZRAM ですね。

インストール ~ 有効化

インストール

sudo apt update
sudo apt install zram-config

反映

sudo systemctl enable zram-config.service
sudo systemctl start zram-config.service

即時反映されるはずですが、可能であれば再起動しましょう。
再起動後に確認してみます。

確認

sudo systemctl status zram-config.service
 3月 27 04:07:40 hoge init-zram-swapping[3157]: スワップ空間バージョン 1 を設定します。サイズ = 1024 MiB (1073737728 バイト)
 3月 27 04:07:40 hoge init-zram-swapping[3157]: ラベルはありません, UUID=4aeb7c62-18ec-4977-8af0-4406967c50ff
 3月 27 04:07:40 hoge init-zram-swapping[3197]: スワップ空間バージョン 1 を設定します。サイズ = 1024 MiB (1073737728 バイト)
 3月 27 04:07:40 hoge init-zram-swapping[3197]: ラベルはありません, UUID=4c6eac8b-b689-40f8-8efd-7dcb86451ab0
 3月 27 04:07:40 hoge init-zram-swapping[3198]: スワップ空間バージョン 1 を設定します。サイズ = 1024 MiB (1073737728 バイト)
 3月 27 04:07:40 hoge init-zram-swapping[3198]: ラベルはありません, UUID=22965aa7-671f-4b9c-b2f3-74e9a0dae70d
 3月 27 04:07:40 hoge init-zram-swapping[3199]: スワップ空間バージョン 1 を設定します。サイズ = 1024 MiB (1073737728 バイト)
 3月 27 04:07:40 hoge init-zram-swapping[3199]: ラベルはありません, UUID=6106688b-55f3-4110-b139-cb04d787742f
 3月 27 04:07:40 hoge systemd[1]: Finished Initializes zram swaping

無事に適用されていますね。

具体的対策 – Zswap

macOS や Windows 10 でも利用されているのか不明ですが、「スワップアウトする際に圧縮しつつメモリにキャッシュする」という機能のようです。

有効化

有効化されていないだけなので、 grub の設定を少しいじるだけで対応できます。

grub ファイル編集

sudo vim /etc/default/grub

以下に編集

 GRUB_CMDLINE_LINUX_DEFAULT="quiet zswap.enabled=1 zswap.compressor=lz4"

反映

sudo update-grub

再起動すれば反映されているはずです。
確認してみましょう。

確認

cat /sys/module/zswap/parameters/enabled
Y

こちらも無事に適用されていますね。

まとめ

効果のほどは

改善はされている。いるんだ、、だが、まだ足りねえ、、

失敗だっていいと思うんだ。
チャレンジして、共有することが大事だから (涙目
個人的に少し速くなったと感じてただけに残念。

低レベルなところで対策できなかったのが悔まれるが、高速で知られる CMS 用のフレームワーク kusanagi が docker compose でインストールできるようです。

docker 環境で試せるのであれば、ちょっと移行を据えて考えてみたいと思います。

コメント