httpsのnssがslabを大量に使うからswapが発生する件が依然解らない

ここ数年解らなかった,httpdを動かしているとメモリーの空きがなくなり,swapが発生してシステムのレスポンスが悪くなる件ですが依然としてよく解りません.

RAM 4GB版のRaspberry Pi 4 Model B (RPi4)を起動すると,半日くらいで空きメモリーを使い切り,kswapd0が働きだし,zramが消費されはじめます.

ファイルやパーティションを使うswapをやめてzramにしたのは,httpdサーバーが主な仕事のこのマシンにしてみれば,対象療法にはなっている訳です.

一方,予備機としてRAM 8GB版のRPi4もあり,いろいろなテストの目的でときどき入れ替えて使用していますが,4GBのRPi4と比較すれば、起動直後の空きメモリーに4GBが加算される形になるので余裕があります.こちらは半日動かしたくらいでは5GB以上メモリーに空きがあります.

これが不思議なんですが,8GBで5GB以上余裕があるなら,4GBでも1GB余裕があっていいはずなんですがそうはならないのです.

しばらく4GBと8GBをとっかえひっかえしながら様子を見てみることにします.

これまで試して効果がなかったこと

  • export NSS_SDB_USE_CACHE=YESとしてhttpdを起動する
  • export TMPDIR=/dev/shmとしてhttpdを起動する
ファンが故障してパッシブになったケースに,余っていたヒートシンクをはり付けてみましたが,効果は限定的です.同じ条件でCPUの温度が1〜2℃下がる程度です(記事と写真は関係ありません).

「httpsのnssがslabを大量に使う」当サイト内の関連記事

NSS_SDB_USE_CACHE=YES

某サーバーはメモリーが4GBと8GBの主副のRaspberry Pi 4 Model B (RPi4)をときどき入れ替えて,運用しています.

4GBのほうでは気がつくとkswapd0が大汗かいてます.8GBではそういうことはありません.

httpdを再起動すると,いったんかなりのメモリーが解放されますが,また何時間か経つと,kswapd0が大汗かいてます.zramを使用しているので,ファイルやパーティションをswapのメディアにしているときよりは,レスポンスはいいですが,それでも,何かコマンドを打ち込んでも反応するのにちょっと時間遅れがあります.

ずっと原因がわかりませんでしたが,https接続でphpが動いてlibcurlが動くと,nssがslabを大量に使うのが原因のようですということらしいです,って聞いても何が何だか解りません😓

下記参考ページにあるように,ときどきslabを開放してやるのがひとつの解法のようですが,根本治療は,

export NSS_SDB_USE_CACHE=YES

もしくは,

export TMPDIR=/dev/shm

のどちらかを “どこか” で実行することのようです.当該サーバーの場合どこで実行すれば良いのか解らないので,しばらく試行錯誤します.

参考ページ

「httpsのnssがslabを大量に使う」当サイト内の関連記事

RPi3でRTSPを見る: Reboot 5 まとめ

Raspberry Pi 3 Model B (+) (RPi3(+))にて,RTSPを見るプロジェクト,一応成功して終了とします.

RAM 1GBモデルでないと多分無理だと思います.

使用するdistroはManjaro ARMで,その “KDE Plasma Desktop” のRapsberry Pi 4版です.問題なくRPi3(+)にインストールできます.micro SDカードは32GBのものを使用しましたが,16GBでも大丈夫だと思います.

設定では,起動時にSDDM (greeter)は使わず直接ログインするようにしたほうがいいと思います.

swapについては,デフォルトのままで1.3GBのzramが設定されるのでこれが丁度いいと思います.

初期設定が完了して起動して,Wi-Fiなどネットワークへの接続設定が完了したら,パッケージのupdate/upgradeが必要ですが,これはかなり時間がかかるので,root権限で,

pacman -Syu

をかけて一晩ほったらかしたほうがいいと思います.

このあと好みでいくつかソフトをインストールすればいいですが,systemdで動くものが増えると,メモリーが圧迫されるので,本来の目的であるVLCを動かすことの支障にならないよう,追加アプリは程々にしたほうがいいと思います

そして,

pacman -S vlc

で,vlc本体と必要なライブラリーなどをインストールします.

これでGUIのVLCまたは,CUIのcvlcを動かせばよいわけで,Real Time Streaming Protocol (RTSP)の画像を見ることができます.

冒頭で「一応成功」としたのは,CPUの冷却が必ずしもうまくいっていないためです.

写真左の黒いケースは,パッシブなヒートシンクとケースが一体化したもので,安定していますが,右側のプラスチックケースの中に組み込んだ,中国製強制空冷装置は,ケースの外に排熱できないためあまり効果的ではありません.

新たにパッシブなヒートシンク一体型のケースを買えばいいんですが,中国製強制空冷装置への投資が全く無駄になってしまうので,しばらく考えます😥

RPi3でRTSPを見る: Rebootシリーズ

まとめページ

筆者は,システムの監視用に, “gkrellm” をインストールして自動起動するようにしています.

RPi3でRTSPを見る: Reboot 4 なんとか目途

ようやくゴールが見えてきました.以下,特に断りがなければRaspberry Pi 3 Model B (+)(RPi3(+))の話です.いつものように全部当社調べですが,今日現在,以下のようなことが分かっています.

  • Raspberry Pi OS, Debian ARM, Ubuntu ARMの配布するVLCは,Real Time Streaming Protocol (RTSP)を見られなくしてある
  • Manjaro ARM xfceは,スクリーン表示が何らかの原因で一度消えると,マウスやキーボードを操作しても画面が復活しない.画面が消えた状態でもシステムは生きていてsshで外部から接続できるが,rebootしても画面は復活しないので,poweroffして,電源をoff/onする必要がある(後の注(2022/9/6): 本件解決しました).
  • Manjaro ARM KDE Plasma Desktopは,1GB RAMのRPi3(+)に32GBのmicro SDカードで十分動く.
    • Swapはデフォルトでzram 1.3GBとなり,これがちょうどいい.
    • スクリーンが消えても,マウス操作で復活する(それが当たり前なんだけど😥)
  • VLCのCPU負荷は,モニターサイズに依存していると思われるが,横1080〜1280のモニターなら,120〜250%程度に収まる
  • CPUの冷却は,ケースのおまけに付いてくる,チップの上に貼るヒートシンクによる自然空冷では不十分で,大型ヒートシンク(ケース一体型)が,安定性を含めて 一番良さそう
ケースのおまけに付いてきたヒートシンクたち

今のところ,新規にManjaro ARM KDE Plasma Desktop版を32GB micro SDカード上にインストールしたRPi3 (+) でVLCを動かして,監視カメラのrtsp画像を表示することに成功しています.コマ落ちも多少ありますが,十分実用に供すると思います.

これまで,Raspberry Pi 4 Model B (RPi4)に接続したSSDをboot用/root用としてManjaro ARM KDE Plasma DesktopをWSとして熟成してきたシステムがあり,そのrootドライブの中身が20GB程度なので,これをSDカードにコピーしてRPi3(+)で起動しないか,つまり,Manjaro ARMの全部載せをRPi3(+)で動かそうという欲張った試みを昨日からやってますが,これがなかなかうまく行きません.

今,思いついたうちの最後の設定の試みをしていて,これでだめならあきらめます.

RPi3でRTSPを見る: Rebootシリーズ

2022年8月11日
その部分のソースのライセンスを問題視しているようです.他のディストリビューターは気にしてないから見られるようです😥
Screen SaverとScreen Lockもオフしても消えるので原因がよくわかりません.
もちろんファンで吸排気するケースも熱的には十分ですが,この手のファンは寿命がけっこう問題になります.

死んでないだけ状態

明石家さんまの名言に「生きてるだけで丸儲け」っていうのがありますが,暑すぎて,生きているといえるパフォーマンスが全く出ません.死んでないだけの状態です.

死んでないパフォーマンスとしてやっているのは,Raspberry Pi 3 Model B (+)へのManjaro ARM KDE Plasma Desktopのセットアップです.

何度も一からやり直して,ようやく良い感じに仕上げる手順が解ってきました.

Raspberry Pi 3 Model B (“+”なし)のほうのBluetoothが機能しないので,Raspberry Pi OSをインストールして様子を見ようとしているところです.