Lookerが重い・・・と思ったらまずは原因を調査しましょう!
Lookerでのパフォーマンス問題の原因は主に4つに分類されます。
発生している事象によって原因が異なるので、どれに当てはまるか順番に見ていくのがおすすめです。↓
LookerはDBにクエリを投げ、実際にクエリを処理するのはDBです。Lookerは、DBから帰ってきた結果を表示します。
Dashboad/Look/Exploreの画面自体は開けるけれど、なかなか結果が表示されない場合は、DB側での処理に時間がかかっている場合が多いです。
事象:
Lookやdashboardのページは表示されているが、tileやvisualization部分が長い間loadingしている
特定のクエリの実行に時間がかかっているが、Lookerインスタンス内の他のページはスムーズに開く
原因:
Lookerから接続しているDBへ負荷をかけ過ぎているのが原因です。特に、複数のクエリを同時に実行している場合は、クエリが実行待ちのキューに入ったりしてさらに時間がかかることがあります。
System ActivityのDatabase Performance dashboardを使用して、クエリの数や時間がかかっているクエリを確認することができるので、ぜひ活用してみて下さい。
また、Admin>Queries から直近のクエリの状況を確認することができます。
解決方法:
基本的には処理性能を上げるようにDB側の設定を変更するか、Lookerインスタンス側でDBに極力負荷がかからないように設定を見直す必要があります。
Looker側でできることとしては
などがあります。
Lookerがどのような時にキャッシュを使用するか、実際に実行したクエリがキャッシュを参照したか調べる方法はこちらのポストをご覧ください。
事象:
Lookerインスタンス全体でページからページへの移動が遅い
インスタンスがダウンしている
同時に複数のユーザーがインスタンスが重い事象を経験している
原因:
Lookerのサーバーで同時刻に実施されている処理が多い場合、インスタンスが重くなることがあります。
原因として考えられるのは、同じ時間帯に大量のスケジューラーを設定している、大量のユーザーが同時にアクセスしている、などがあります。
System ActivityのInstance Performance dashboardを使用して、スケジューラーの数などインスタンスのパフォーマンスに影響を与えることが多い要素をモニターすることができるので活用してみてください。
解決法:
大量のスケジュールを一度に設定している場合は、間隔をあけて設定し直す
ユーザー数が当初の想定より増えている場合は、インスタンスをアップサイズする(サポートに連絡)
などがあります。
事象:
特定のページが表示されなかったり表示が遅いが、他のページはすぐに表示される
フィールドが対象にあるVisualizationの表示が遅い
原因:
ブラウザはLookerが返すデータを表示しますが、ブラウザが表示できるデータ量は限られており、大量のデータが入ったExplorerを開くだけでブラウザがクラッシュする可能性があります。
この場合はそのページを開いたユーザーのみが影響を受け、Lookerの他のページには影響がありません。
解決法:
表示されるフィールド数や要素を減らす
などがあります。
事象:
Lookerの表示が遅いが、他のネットワークからアクセスしている他の作業者は通常通り使用できる
原因:
Looker は Web アプリケーションであるため、Looker とのやり取りはすべてインターネットを介した情報の送信に依存します。ネットワークの状態が悪いと、データベース、インスタンス、ブラウザすべてに影響を与えます。
解決法:
他のネットワークを使用してLookerにアクセスする
DB、Lookerインスタンス、ブラウザ間のネットワークに問題がないか確認する
などがあります。
以上、Lookerのパフォーマンス問題の調査のお役に立てれば幸いです。