質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
Linux

Linuxは、Unixをベースにして開発されたオペレーティングシステムです。日本では「リナックス」と呼ばれています。 主にWebサーバやDNSサーバ、イントラネットなどのサーバ用OSとして利用されています。 上位500のスーパーコンピュータの90%以上はLinuxを使用しています。 携帯端末用のプラットフォームAndroidは、Linuxカーネル上に構築されています。

メモリリーク

メモリリークは、プログラムファイルがメモリの解放に失敗した時に起こります。

Q&A

解決済

3回答

3392閲覧

なぜメモリが足りなくなるとフリーズするのでしょうか

a.com

総合スコア907

Linux

Linuxは、Unixをベースにして開発されたオペレーティングシステムです。日本では「リナックス」と呼ばれています。 主にWebサーバやDNSサーバ、イントラネットなどのサーバ用OSとして利用されています。 上位500のスーパーコンピュータの90%以上はLinuxを使用しています。 携帯端末用のプラットフォームAndroidは、Linuxカーネル上に構築されています。

メモリリーク

メモリリークは、プログラムファイルがメモリの解放に失敗した時に起こります。

0グッド

1クリップ

投稿2021/08/18 11:19

遅くなるのはわかるのですが
固まったり落ちたりする理由がわかりません

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答3

0

アプリケーションの話だと既に回答があるとおりで、

OSについての話だと、
Linuxの場合はOOM 発生とかOOMKiller 発生時 OOM フリーズ linux
あたりで調べると、メモリ不足に対するOSとしての対応について把握出来るかと思います。

OS全体としてメモリが足りなくなった場合、
OOMKillerがプロセスを殺すのでその時点でアプリケーションは停止しエンドユーザーから見た場合はフリーズしたように見える場合もあるでしょうし、
OOMKillerが間に合わなかった場合はOSが正常に動くためのメモリを確保出来ないという事なので、フリーズに至ることがあります。

投稿2021/08/19 02:03

tanat

総合スコア18727

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

ベストアンサー

フリーズは様々な原因で起こります。

たとえば「デッドロック」という状態に陥ってフリーズすることがあります。
プログラム同士がお互いの処理の終了待ちの状態に入ってしまうことで、お互いにその先に進まなくなる状態です。
メモリが足りなくて正常な処理が行えないプログラムがあるとき、そのような状態になりやすくなる可能性があります。

落ちるのはおそらくバグですが、処理に必要なメモリが確保できないとき実行を放棄して黙って終了する仕様であることもあります。

投稿2021/08/18 11:32

編集2021/08/18 11:32
itagagaki

総合スコア8402

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

a.com

2021/08/18 11:35

ありがとうございます プログラムによってはメモリが確保できないと終了したり、メモリが空くまで待機するからということでしょうか
itagagaki

2021/08/18 11:36

そういう可能性もあります。
itagagaki

2021/08/18 11:40

いずれにしても、OSやアプリの実装で、フリーズしてもいいと考えて実装することは、まあ無いと思うので、メモリが足りなくなったときに起こり得る予期しない事態への対処が完璧に実装されていない結果だとみるべきでしょうね。
pepperleaf

2021/08/18 11:51

メモリが空くまで待つのですが、その連鎖で、動けなくなるのは当然の事。 バグと言えば、バグですが、一杯アプリ動かしたら、まあ、そうなるでしょう。 ちなみに、Windows、4Gbyeのメモリで、Office動かすと結構、不幸です。バックグランドで セキュリティソフトも動いてたりする。フリーズ状態は結構、ある。(そんなの売ってるが疑問だけど)
itagagaki

2021/08/18 12:03

順番待ちで遅くなったり動けない状態になっているだけならまあ健全です。とても動きが遅くなっているか、止まっているけれども動き出すきっかけがあればまた動ける状態で、それはフリーズとは違うと思いますが、まあユーザーが何も手出しができなくなっているように見える状態を「フリーズ状態」と呼ぶならそれはそうかもしれません。
pepperleaf

2021/08/19 11:36 編集

10分位、待っても動きが無い場合、それをフリーズと呼ぶか? 微妙ではありますが、大抵はリセットになるかと。使えるマシンが限られた状況では、回避方法(電源On後、しばらく放置 etc)もありですが、結構、忘れる。 余談です。 余談ついでですが、最近、「Windowsから応答がありません..」と言うメッセージ。WindowsってOSじゃなかった? と思いつつもカーネルは動いてるのでしょうか。これもフリーズとは思うもののカーネルが動いてるのでリカバリ可能か? (メモリ不足が原因かは不明)
guest

0

メモリが不足するという事は、そのメモリを必要とするモジュール(アプリ、OS, ...)が動くことが出来なくなります。どのモジュールがそうなるかはある意味、運(まあ、実際には優先順位とかあるけど、)

ある程度のメモリ不足は、動いてないプログラムをディスクに掃出し(Swapとか)、必要な空きメモリを確保しようとしますが、それも限界があるので、最後には、落ちます。

投稿2021/08/18 11:31

pepperleaf

総合スコア6385

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

a.com

2021/08/18 11:37

ありがとうございます
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問