systemclはJavaプロセス
systemcctlの設定と、それ以降のOMの問題への統合により、製品コストの高いJavaアプリケーションsystemcctlの設定を提供するための支援がかります。
以下是针对Java应用优化后的生产级systemd配置,重点解决OOM问题、增强稳定性和可观测性,并遵循生产环境最佳实践:
重要データの最適化手順(OMと本番環境向け):
-
OOMの問題のトラブルシューティング
- 新增
HeapDumpOnOutOfMemoryError和HeapDumpPath:OOM时自动生成堆转储文件,用于事后分析内存泄漏 - ゾンビプロセスを避けるために
ExitOnOfMemoryError:OOMを追加すると、セッションを終了します - メモリーの分離
MemoryHighとMemoryLimit:が、MemoryHighを通じてロックが使われたときに、MemoryHighを超過`にしたものがある限りOOOOMを殺す - 用に構成されたメモリの量は、
MemoryLimitの80%(MemoryLimit=2Gに対応するXmx=1600Mに対応している)を推奨している。
- 新增
-
安定性強化
- 新規再起動のレート制限を増やします(
StartLimitburst+Start+StartLimitBurst):何らかのOOOMが時間内に再起動すると、システム全体の電力を消費します。 - :ネットワーク、ログ、データベースサービスを明示的に管理するための依存関係を最適化する
- :がスムーズな負荷を追加するために、
Execreadoadを追加。組み込みの再起動数を減らす。 - タイムアウト期間を:延長して複雑なシーンで起動時間が十分になるようにする
- 新規再起動のレート制限を増やします(
-
**観測可能 **
- ログファイルのパス:アグリルと分析のために別日
- PIDファイル:便利な監視システムアイコンを作成できます
- カーネル ダンプ:インシデント用インスペクションするために使用されます
- journaldブラウザからのサービスをフィルタリングする:
-
セキュアな準備
- ディレクトリ隔離とアクセス許可を:攻撃面を減らす
- 制限プロセスアクセス:許可を改善
サジェスト:
- 最初のデプロイ後
systemctl daemon-reloadの設定を更新します。 - 定期的に
/var/log/support-serviceフォルダ内にあるヒープダンプとログファイルを定期的にチェック - 実際のメモリ使用量によって
MemoryLimit、XmsおよびXmxのモニターツールにより Prometheus+Grafana, Inc. の物理メモリ使用量に応じて調整されます - ログファイルのサイズを大きく避けるために
logrotate
これらの最適化により、OOMが機能停止が回避され、また問題の発生時に十分な診断情報が得られます。また、生産性の安定性と安全性を向上させます。