特定のウェブサイトを閲覧するときにLinuxが数分間応答しないのはなぜですか?

特定のウェブサイトを閲覧するときにLinuxが数分間応答しないのはなぜですか?

私はLinux 4.15を使用していますが、RAMの使用量がピークに達したときにこれが何度も起こります。 OS全体が応答せずに停止し、役に立たなくなります。私が考えるのにこの機能がうまくいくと思われる唯一のことは、よく使われるディスク(基本システムパーティション)です。

この問題がOS固有であるか、ハードウェア固有であるか、構成固有であるかは不明です。

どんなアイデアがありますか?

答え1

Linuxが応答しない原因は何ですか?

使用可能なRAMを過度に使用して多くの交換が発生した場合、この問題は間違いなく発生します。メカニカルHDDのランダムアクセスI / Oには読み取り/書き込みヘッドを移動する必要があり、これは毎秒約100の検索しか実行できないことに注意してください。

RAMを「あまりにも」オーバーコミットすると、Linuxはしばしばランチを完全に取ります。回転ディスクと8GBのRAMもあります。複数のソフトウェアを使用中にメモリリークが発生しました。つまり、メモリ使用量は時間の経過とともに増加し続け、絶対に減少しないため、これを制御する唯一の方法はソフトウェアを停止して再起動することです。この期間中の私の経験によれば、3GB以上のスワップを作成すると、10分以上の遅延が発生してもあまり驚くことはありません。

スワップ領域が3GBを超える場合、すべての場合にこの内容が表示されるわけではありません。理論は、核心の概念が次のとおりです。勝つ。一方、2つの異なるワークセット間で切り替えを試み、100 MB / sの速度で3 GBを入出力する必要がある場合、完全に最適化されたI / Oパターンを使用しても少なくとも60秒かかります。実際、I/O パターンは最適とは距離が遠いです。

このような問題を経験した後、スワップスペースを2GB(以前より数倍小さいサイズ)に再フォーマットしたため、システムがディープスワップを行うことができなくなりました。mkswapオプションのサイズパラメータが必要なので、パーティションのサイズを変更せずにこれを行うことができます。

おおよそのバランスは、メモリが不足してプロセスがシャットダウンすることと、システムが長時間停止して放棄して再起動することとの間にあります。 4GBのスワップパーティションが大きすぎるかどうかはわかりません。おそらく実行している作業によって異なります。ディスク変動が始まったら記録し、メモリ使用量を確認し、それに応じて対応することが重要です。

マルチプロセスアプリケーションのメモリ使用量を確認することは困難です。共有メモリを二重に計算せずに各プロセスのメモリ使用量を表示するには、およびを押してからsudo atop -RPSIZE列を表示します。 。を使用すると、すべてのFirefoxプロセスのPSSと完全なPSS行が表示されます。これはFirefoxまたはChromeベースのブラウザの合計メモリ使用量を測定する正しい方法です。 (ただし、個々のタブを表示するメモリ使用量を表示するブラウザ固有の機能もあります。)Mmsmemsmem -t -P firefox

答え2

AFAIK、bloatwareによってOSが応答しなくなるべきではないので、bloatwareが問題の根本原因であると考えたり受け入れたりしません。

あなたはこれが好きではありませんが、私の考えではbloatwareはいあなたの問題です(メモリの問題かディスクの問題かはわかりませんが)。残念ながら、Linuxカーネルは高いメモリ不足の状況をうまく処理できず、メモリが使い果たされると本質的に再起動が必要であることが知られています。あなたの問題がリソースの枯渇であると考える3つの理由は次のとおりです。

  1. ルート(/)とDATAのディスク容量がほとんどいっぱいです。 DATAの目的は何であるかわかりませんが、以前はルートパーティションのサイズが小さすぎてシステムが実行されないという問題がありました。
  2. メモリ不足がひどく、RAMがほぼいっぱいです。 RAMがいっぱいになり始めると、ページフォールトが発生し始めます。ページエラーは、カーネルがプロセスに十分なメモリを割り当てることができず、一部のシステムではるかに遅いスワップスペースを使用する必要がある場合に発生します。これは私達の最終的な観察につながります:
  3. スワップスペースがほとんどいっぱいです。 RAMとスワップ領域がほぼいっぱいであるため、システムでメモリ不足の現象が明らかに発生しています。

デフォルトでは、これら3つを組み合わせると、システムにほとんどのタスクを実行するのに十分なリソースがありません。残念ながら、LinuxはWindowsのNTカーネルと比較してメモリ不足の状況をうまく処理できませんが、そうです。より多くの議論を見つけることができます。このRedditの投稿からそしてリンクされたメーリングリスト。

問題を解決する方法については、スワップサイズを増やすのが良い考えですが、ディスク容量が不足して問題になります。 Minecraftサーバーに人が多いので、メモリを1024mほど減らすのが安全だと思います。 (私は個人的に10人ほどで1024mを使うのにとてもうまく機能します。) また、Minecraftサーバーには蛇口や紙がより性能が良い傾向があるので、それを使います。

頑張ってください!

答え3

の出力は何ですかfree -m?どのくらいのメモリを使用しているかわからない場合は、持っているメモリの量は何の意味もありません。スワップスペースがどれだけ使われているか知りたいです。

それでも、自分の質問に答えたと思います。ブラウザに「多くのタブ」が開いている場合は、決して閉じないと、システムの速度が確実に遅くなります。システムが停止したときにメモリを使い果たすためです。一度に何個開いていますか?

これは、「非常に複雑なUMLダイアグラムから非常に大きなダイアグラムを作成する」など、他のメモリ集約的な操作によってシステムがハングする場合にも意味があります。チャートを作成するとシステムの速度が確実に遅くなるため、これは驚くべきことではありません。

確かにこれがシステムがどのように機能するかのように聞こえます。ここで何かを見逃しています。

ところで、システムが応答しない場合のハードドライブ統計は重要ではありません。メモリ不足がほとんど常に原因であるからです。

答え4

htop出力は、RAMの需要が容量(合計RAM + SWAP)よりも高いことを示しています。したがって、最初に考慮する必要があるのは、RAMの使用量を減らすか、RAMの可用性を高めることです。

最新の Firefox バージョンは極度にウィンドウ/タブにプロセスとメモリスペースが提供される方法によるリソース不足。アイデアは、ブラウザ全体を停止させるタブの競合を防ぐことです。これは価格ほど価値があるのでしょうか?誰でも教えてもらえますか…とにかく、上記の理由でPentium 4マザーボードが2 GBのRAMしかサポートしていなかったので、同様の問題がありました。メモリの枯渇の衝突を防ぐために、予備SSDに約800Mのスワップスペースを追加しました。これは明らかにできるだけ少なく使用するためのものです。カーネルがメモリページをどれだけ交換するかを決定するswappabilityという設定を変更することでこれを行いました。いくつかの便利なコマンドは次のとおりです。

現在の交換を確認してください。cat /proc/sys/vm/swappiness

これはおよそ60程度の結果を提供する可能性が高く、これは負荷の低いシステムで最大の性能を発揮するにはかなり高い数値です。明らかに、これは非生産的であるため、たとえば、sysctl vm.swappiness=1システムの実行中にコマンドを使用して設定を変更できます。

これらの変更を保存するには、このファイルを見つける必要があります/etc/sysctl.conf。そのファイルの値を変更するか、行を追加しますvm.swappiness=1

これはあなたの状況に対する解決策ではありませんが、実行可能な解決策であるべきです。

生産スタッフ https://askubuntu.com/questions/103915/how-do-i-configure-swappiness

追加の説明を含む上記の回答のソースです。私の状況では、この記事が非常に役に立ったと思います。

関連情報