キオスク端末状態にして使っているGrafana11のダッシュボードが重く、Kindle Fire HD10のブラウザがしょっちゅう固まるので対策を試行したメモ。
Grafana8くらいまでは特に何も考えなくてもパフォーマンス問題はなかった。11にはメモリリークが隠れているのではという気もするが詳しく追跡はしていない。あくまで対症療法。
問題発生時の挙動
- ダッシュボード表示開始から最初の数時間は何も問題なく動作する。
- そのうち12時間~24時間くらい経過したところで画面の更新が遅延するようになる。一部のパネルでロード中を示すバーが消えなくなる。
- それからMacrodroidで検知している充電レベル低下などが判定されなくなる。これによりタブレットが過充電ないし過放電状態になる。
- 同じくらいのタイミングで画面の常時点灯がオフになる。これはバックグラウンド動作して常時点灯状態を維持してくれるアプリの動きが妨げられるからではないかと考えている。
- この頃になるとブラウザはほぼ固まってしまい、ダッシュボードのスクロールすらできなくなっている。
フリーズ後の対応は、ホームボタンを連打してブラウザを一旦停止させることでタブレット全体のフリーズは解消する。
ブラウザを前面に戻すと元に戻るが、一度タスクキルしてから開き直せば最初の、問題が顕在化する以前の状態に戻る。このあたりの挙動からメモリリークっぽさを覚える。
対策1:ダッシュボードの自動更新頻度を下げる
最も効果的だった対策。
一番短い設定だと5秒更新だがこれを10秒にするだけでかなり安定する。
瞬時電力値は5秒ごとに計測しているのでちょっともったいない感じはするけれど、実用上は大して気にならない。
対策2:ブラウザをOperaにする
たくさんのブラウザを試したなかで一番軽いのがこれだった。Operaはキオスクモードに便利な全画面表示ができるのも嬉しい。
他に試したブラウザには以下のようなものがあったが、どれも24時間~48時間でフリーズしていた。
- Silkブラウザ(Kindle標準のやつ)
- Chrome
- Firefox
- Firefox Focus
- Edge
- Opera Mini
- Vivaldi
- Waterfox
- Fully Kiosk Browser
- 2時間毎に自動リロードの設定を入れてみたがやはりフリーズした。謎。
- Orionss Browser
- Via
- Kiwi Browser
ちなみに実験時点でシステムに入っていたWebviewは Amazon System WebView 122 (v122-6261-tablet) というやつで、単独更新はできずOSアップデートとの同時更新である。
対策3:Grafanaのバージョンを下げる
バージョン8だか6だかを使っていた頃は、Fire HD10より低スペックの端末上でも問題なく数ヶ月連続稼働していたので、これがもっとも抜本的な対策になるはず。
バージョンダウンの負の影響については、自分の使い方ではGrafana11への移行は見た目がかっこよくなった程度で機能面での改善恩恵は受けていないので、気にならない。
※脆弱性に関しては一切気にしていない。なぜなら家の外からはアクセス不能にしてあるため
番外:Grafanaホスト側の負荷が過大でないかを確認
タブレットのフリーズかと思ったらRaspberry Pi 3B+側が固まっていたということがあった。これへの対策:
- vmstatして何が問題か確認する
- 自分のケースではCPUとメモリ使用率は低かったがコンテキストスイッチが常時10000近くある、みたいな状態だった
- ssh接続を開くだけでも1分とか待たされる感じ。一度まったく操作を受け付けなくなって仕方なく本体再起動したらSDカード破損して大変な目にあった
- influxdbのバージョンを落とす。1.67は安定しているが1.8あたり?から重くなっていた
- これがめちゃめちゃ効果があった
- grafana側のアラート機能を使わない
- ダッシュボード用とは別にクエリが常時走るので重いっぽい?
- あと設定が面倒なわりにメッセージ内容などの融通が効かず、使いづらい
- メトリクス収集してるスクリプトから直接アラートする方が経済的
ラズパイが壊れて再構築するときむやみにミドルウェアを最新化するとスペック起因で動かないことがある、という話でした。
コメント