Azure およびオンプレミス環境からのテレメトリ データを収集、分析、処理するために使用する Azure サービス。
こんにちは SHIRAISHI, KAZUMA,
Microsoft Q&A フォーラムにご連絡いただきありがとうございます。
調査したところ、公開されている Azure Monitor/Log Analytics サービスの履歴を見る限り、4/9~4/25 あたりに新しいメモリ不足エラーを説明するようなプラットフォームのインシデントや容量変更の通知はありませんでした。これらの E_RUNAWAY_QUERY または E_LOW_MEMORY_CONDITION エラーは通常、クエリが返すデータ量や処理するデータ量が多すぎてメモリ割り当てを超えていることを意味します。
以下の手順に従ってください
1.プラットフォームのインシデントがないことを確認する
https://status.azure.com/ で自分の地域とサービス「Log Analytics」の Azure ステータスを確認し、隠れた障害や仕様の変更がないことを確認してください。
2.最も負荷の高いクエリとそれを実行した人物を特定する
Log Analytics ワークスペースで、これらの Kusto コマンドを実行して、高メモリ使用量または長時間実行されているクエリとそれを実行しているユーザーを確認します:
// クエリを実行中
.show running queries
| project StartedOn, User, MemoryPeak, Text
| order by MemoryPeak desc
// 最近完了したクエリ(過去24時間)
.show queries
| where StartedOn > ago(24h)
| project StartedOn, User, MemoryPeak, Duration, Text
| order by MemoryPeak desc
| take 20
これにより、最も問題のあるユーザーがわかり、それらのユーザーに連絡することができます。
3.メモリ使用量を減らすためにクエリを最適化する
- 早めにフィルター:厳密な時間範囲と選択列を適用する
- 重い演算子の前に集計/要約する
- 必要な列だけを選択し、サンプルだけが必要な場合は take を使用する
- 大きな結合/ユニオンを避けるか、高カーディナリティキーの場合はシャッフルを使用する
- let 文や関数を使用してフィルター済みサブセットを再利用する
- 上記のコマンドでメモリピークをプロファイルし、さらに調整する
4. より高いメモリ割り当てが必要だと思う場合
Log Analyticsのメモリ予算は内部で管理されています。予算の引き上げや大きなクエリをより小さなウィンドウに分割することについて話し合うために、サポートリクエストを開くことができます。
何か他に質問があれば教えてください - 気軽に連絡してください!
参考文献
- Azure Monitor クエリで最大応答サイズを超えた場合のトラブルシューティング
https://learn.microsoft.com/azure/azure-monitor/logs/query-optimization
- Azure Monitorでログクエリを最適化する
https://learn.microsoft.com/azure/azure-monitor/logs/query-optimization?wt.mc_id=azure-cxp
- Azure Monitor サービスの制限
https://learn.microsoft.com/azure/azure-monitor/fundamentals/service-limits#log-queries-and-language