回答編集履歴
1
2020/10/20 10:52への回答
test
CHANGED
@@ -95,3 +95,47 @@
|
|
95
95
|
いずれにせよ、最初から完璧なシステムを作ることは非常に難しく運用開始後に問題が見つかることは十分あり得るという見地から、
|
96
96
|
|
97
97
|
システム監視を適切に行ない障害になる前の異常を検知することが重要だと考えています。
|
98
|
+
|
99
|
+
|
100
|
+
|
101
|
+
---
|
102
|
+
|
103
|
+
|
104
|
+
|
105
|
+
## 2020/10/20 10:52への回答
|
106
|
+
|
107
|
+
|
108
|
+
|
109
|
+
> - OutOfMemoryError → 無限ループなどで落ちるエラー(=復旧させるにはまずソースコードを疑うエラー)
|
110
|
+
|
111
|
+
> - os::commit_memory(~略~) failed → 環境要因で落ちるエラー(=復旧させるにはまず環境を疑うエラー)
|
112
|
+
|
113
|
+
|
114
|
+
|
115
|
+
必ずしもそうとはならないかもしれませんが、最初の切り分けとしてはよいかと思います。
|
116
|
+
|
117
|
+
環境起因の場合は「最後のトドメを刺したのがたまたまアプリだった」という可能性もあります。
|
118
|
+
|
119
|
+
|
120
|
+
|
121
|
+
余談に近いですが、環境のメモリ起因では「OSによって強制的にプロセスを落とされる」パターンがあります。
|
122
|
+
|
123
|
+
これはJVM自身は十分なメモリを確保していてもOSが動作していくためのメモリが不足した場合に発動するものです。
|
124
|
+
|
125
|
+
この場合はOSのログにしか手がかりはありません。
|
126
|
+
|
127
|
+
いきなりJavaプロセスが消えた、という場合はまずはこれも疑う必要があります。
|
128
|
+
|
129
|
+
(LinuxであればOOM Killerによるものです)
|
130
|
+
|
131
|
+
|
132
|
+
|
133
|
+
> メモリ関連で落ちるエラーを総称して「OutOfMemoryError」と呼ぶのでしょうか?
|
134
|
+
|
135
|
+
|
136
|
+
|
137
|
+
`OutOfMemoryError` は `java.lang.OutOfMemoryError` を指しています。
|
138
|
+
|
139
|
+
メモリ不足でオブジェクト作成ができなかった場合などでthrowされるエラー(≠例外)です。
|
140
|
+
|
141
|
+
https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/OutOfMemoryError.html
|