GNU/Linux >> Linux の 問題 >  >> Linux

特定の Web サイトを閲覧しているときに、Linux が数分間応答しなくなる原因は何ですか?

<ブロック引用>

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

大量のスワッピングの原因となる使用可能な RAM のオーバーコミットは、確実にこれを行うことができます。機械式 HDD のランダム アクセス I/O には、1 秒あたり約 100 シークしかできない読み取り/書き込みヘッドを移動する必要があることに注意してください。

RAM を「過剰に」オーバーコミットすると、Linux が完全にランチに出かけるのは普通のことです。また、スピニー ディスクと 8GB RAM を使用しています。いくつかのソフトウェアでメモリ リークの問題が発生しました。つまりメモリ使用量は時間の経過とともに増加し続け、減少することはありません。そのため、それを制御する唯一の方法は、ソフトウェアを停止してから再起動することでした。この間の経験に基づくと、3 GB 以上のスワップを生成している場合、10 分以上の遅延が発生してもそれほど驚くことではありません。

3GB を超えるスワップがあるすべての場合に、必ずしもこれが表示されるわけではありません。理論によると、重要な概念はスラッシングです。一方、2 つの異なるワーキング セットを切り替えようとしていて、3GB のスワップ インとスワップアウトが必要な場合、100MB/秒では、I/O パターンを完全に最適化できたとしても、少なくとも 60 秒かかります。実際には、I/O パターンは最適とはほど遠いでしょう。

これで問題が発生した後、スワップスペースを 2GB (以前よりも数分の 1 に小さく) に再フォーマットしたため、システムはそれほど深くスワップできなくなりました。 mkswap のため、パーティションのサイズを変更しなくてもこれを行うことができます。 オプションのサイズ パラメータを取ります。

大まかなバランスは、メモリが不足してプロセスが強制終了されることと、システムが長時間ハングしてあきらめて再起動することとの間です。 4GB のスワップ パーティションが大きすぎるかどうかはわかりません。それはあなたが何をしているかに依存するかもしれません。重要なことは、ディスクが乱れ始めたときに注意し、メモリ使用量を確認して、それに応じて対応することです。

マルチプロセス アプリケーションのメモリ使用量を確認するのは困難です。共有メモリを二重にカウントせずにプロセスごとのメモリ使用量を確認するには、 sudo atop -R を使用できます 、Mを押します そしてm をクリックし、PSIZE 列を調べます。 smem も使用できます . smem -t -P firefox すべての Firefox プロセスの PSS が表示され、その後に合計 PSS の行が続きます。これは、Firefox または Chrome ベースのブラウザの合計メモリ使用量を測定するための正しいアプローチです。 (ただし、メモリ使用量を表示するためのブラウザ固有の機能もあり、個々のタブが表示されます)。


<ブロック引用>

私の知る限り、ブロートウェアによって OS が応答しなくなることがあってはならないので、ブロートウェアが問題の根本原因であるとは考えませんし、受け入れることさえしません

あなたはこれを好まないでしょうが、ブロートウェアはだと思います あなたの問題です(問題がメモリなのかディスクなのかはわかりませんが)。残念ながら、Linux カーネルはメモリ プレッシャーの高い状況を処理するのが苦手で、メモリが使い果たされると基本的に再起動が必要になることが知られています。あなたの問題がリソースの枯渇であると私が信じるに至った理由は 3 つあります:

<オール>
  • ルート (/) と DATA のディスク容量がほぼいっぱいです。 DATA を何に使用しているかはわかりませんが、ルート パーティションのサイズを小さくしすぎてシステムが動作しなくなるという問題に遭遇したことがあります。
  • メモリ負荷が高く、RAM がほとんどいっぱいになっています。 RAM がいっぱいになり始めると、ページ フォールトが発生し始めます。ページ フォールトは、カーネルがプロセスに十分なメモリを割り当てることができず、代わりに一部のシステムのはるかに低速なスワップ スペースを使用しなければならない場合に発生します。これにより、最後の観察結果が得られます:
  • スワップ領域がほぼいっぱいです。 RAM とスワップの両方がほぼ満杯であるため、システムのメモリ負荷が明らかに高くなっています。
  • 基本的に、これら 3 つを一緒にすると、システムには多くのことを行うのに十分なリソースがありません。残念なことに、Linux がメモリ不足の状況をうまく処理できないのは (たとえば、Windows の NT カーネルと比較して) ですが、それが現状のようです。詳細については、この Reddit スレッドとリンクされたメーリング リストで確認できます。

    状況を修正する方法については、スワップ サイズを増やすことは良い考えだと思いますが、ディスク容量が不足しているため、問題になります。 Minecraft サーバーに大量の人がいない限り、メモリを約 1024m に減らすのが安全だと思います (個人的には約 10 人で 1024m を使用していますが、問題なく動作します)。また、マインクラフト サーバーにはスピゴットまたは紙を使用します。パフォーマンスが向上する傾向があるためです。

    頑張ってください!


    free -m の出力は何ですか ?使用している RAM の量がわからない場合、RAM の量は無意味です。それと、どのくらいのスワップ領域が使用されているか知りたいです。

    しかし、あなたはあなた自身の質問に答えたと思います。ブラウザーで「多くのタブ」を開いたままにしておくと、決してそれらを閉じない場合、システムの速度が確実に低下する可能性があります。システムがフリーズしたとき、一度にいくつ開いていますか?

    また、「非常に複雑な UML ダイアグラムから非常に大きなグラフを生成する」など、メモリを集中的に使用する他のタスクでシステムがフリーズしている場合にも意味があります。グラフを生成するときにシステムの速度が完全に低下するため、驚くことではありません。

    これがシステムの本来の動作であるように思えます。それか、何かが足りないかのどちらかです。

    ところで、システムが応答しなくなった場合、HDD 統計は問題になりません。ほとんどの場合、メモリ不足が原因であるためです。


    Linux
    1. Ctrl + C でプロセスを強制終了できない場合はどうすればよいですか?

    2. Linux test -a コマンド テストとは何ですか?

    3. スワップ パーティション内のすべてを強制的に解放してメモリに戻すには、どのコマンドを使用できますか?

    1. 最新のLinuxシステムのスワップスペースの適切な量はどれくらいですか?

    2. RAM ではできないことで具体的にスワップできることは何ですか?

    3. Linux - ディスク IO を待っているものを確認するにはどうすればよいですか

    1. シェルドットファイルでできること

    2. Linuxディストリビューション用にアプリケーションがパッケージ化されていない場合はどうしますか?

    3. Linuxとは何ですか?非技術ユーザー向けガイド