問題タブ [swapfile]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
.net - .NET 4.0 プロセスの実行が数秒間一時停止し、スワップ ファイル アクティビティが原因でフル GC が発生しますか?
同じプロセスを実行する多数の Windows 2008 R2 24 コア サーバーがありますが、プロセスの各インスタンスには異なるデータ セットがあります。通常、プロセスの 2 ~ 4 つのインスタンスが各サーバーで実行されます。プロセスは x64 用にコンパイルされ、GUI を備え、Workstation GC を使用します。
毎秒、プロセスは GC カウントをローカル ディスク上のログ ファイルに出力します。ログは、他の多くのことにも使用されます。ときどき、これらのプロセスの 1 つが 5 秒以上実行を一時停止することがあります。その期間、ログには何も書き込まれていないことがわかります。これが発生するたびに、Gen2 GC の数が 1 ずつ増えることを確認します。
これはまれなイベントです。これは、すべてのプロセスで 10000 Gen2 GC ごとに発生する可能性があります。
各マシンには、すべてのプロセスを RAM に保持するのに十分な RAM があります。
今朝、プロセスの 1 つで 9 秒間一時停止しました。今回は、影響を受けるプロセスとマシン全体のパフォーマンス カウンターを取得しました。その時点で実行されていた他のプロセスは影響を受けませんでした。パフォーマンス カウンターの分析は、次のことを示しています。
一時停止後と一時停止前の比較:
- プロセスの仮想バイト、ページ ファイル バイト、仮想バイト、ワーキング セット、およびワーキング セット - プライベートは、ほぼ同じ量 (1Gb) がドロップされました。プロセスのサイズを把握するために、Private Bytes は 3.1 Gb から 2.1 Gb に減少しました。
- プロセスのハンドル数が 8835 から 8705 に減少
- マシン全体で使用可能なバイト数が約 1 Gb 増加
- 1 秒あたりのページ フォールト数は急増しませんでした
- 一時停止中の CPU 使用率は安定していた
この活動がスワッピングに起因する可能性があることを誰か確認できますか? マシンに十分な RAM があることを考えると、これらの一時停止を修正するための提案はありますか?
更新 #1 (2012 年 3 月 5 日):
今日、プロセスの 1 つで 6.5 秒の一時停止が発生しました。.NET Clr メモリ パフォーマンス カウンターは、LOH のサイズは変更されていないことを示していますが、Gen 2 ヒープのサイズ、すべてのヒープのサイズ、コミットされた合計バイト数は 700 Mb 減少しています。予約済みバイトの合計が 250 Mb 削除されました。そのため、この特定の GC で Gen2 の多くのガベージが再利用されたようです。
更新 #2 (2012 年 3 月 6 日):
今日、プロセスの 1 つで 7 秒間の一時停止が発生しました。以下が削除されました: Gen 2 ヒープ サイズ (.NET CLR メモリ) by 900 Mb すべてのヒープ内のバイト数 (.NET CLR メモリ) by 900 Mb Num Total Committed Bytes (.NET CLR Memory) by 800 Mb Num Total Reserved Bytes (. NET CLR メモリ) 540 Mb 仮想バイト (プロセス) 550 Mb ワーキング セット (プロセス) 800 Mb ワーキング セット - プライベート (プロセス) ページ ファイル バイト (プロセス) 800 Mb プライベート バイト (プロセス) 800 Mb
LOHは相変わらず
.net - VB6 で /SWAPRUN オプション (または同等のオプション) を使用できますか?
/SWAPRUN
オプション(MSDNリンク)についての私の理解は、実行可能ファイルがスワップファイルにロードされ、そこから実行されるということです。
このメカニズムはVB6で可能ですか?
android - 一時停止したプロセスのメモリをスワップに強制する方法は?
256MB のメモリを搭載した Android デバイスの遅延に対して UI を改善する方法を探しています。メモリは非常に限られているため、大規模なフロントエンド アプリは他のアプリのスワップアウトを大量にトリガーします。
アイデアは次のとおりです。バックグラウンド アプリ (たとえば、Facebook アプリ) を継続的に実行する必要がない場合は、中断されないようにしなければならないテレフォニーとは異なり、そのアプリのプロセスを一時停止し、更新を取得するために数分ごとに実行し続けます。 、携帯電話がポケットの中でアイドル状態のときのみ、プロセスを再度一時停止します。
他のアプリのメモリをスワップアウトするラグを減らすために、一時停止したアプリのメモリを積極的にディスク/フラッシュにスワップできるようにして、フロントエンド アプリが必要とする順序で RAM を即座に解放できるようにします。(参照速度: クラス 10 SDHC: 10MB/秒の書き込み、したがって、Web ページが 20MB の RAM を要求する必要がある場合、ブラウザーは 2 秒間遅れます)
だから私の質問は次のとおりです。一時停止したプロセスのプライベートメモリをディスク/フラッシュにスワップするようにシステムを強制する方法は?
macos - 単純な並べ替えに 4 GB の RAM を約 1.5 GB しか使用できない
私は 2007 年夏頃の MacBook Pro (x86-64) を 32KB L1 (私が思うに)、4MB L2、および 4GB RAM で使用しています。OS X 10.6.8 を実行しています。
私は C++ で標準の基数ソートを作成しています。これは、ある配列から別の配列にコピーし、ソート時に再び元に戻します (したがって、使用されるメモリは配列のサイズの 2 倍になります)。「。」を印刷して監視します。100 万件のエントリが移動しました。
アレイが最大で 750 MB の場合、これらのドットは通常非常に速く移動します。ただし、アレイが大きい場合、プロセス全体がクロールして停止します。ブロックで 512 MB を基数ソートしてから、ブロックをマージソートしようとすると、最初のブロックが高速になり、プロセスが再びクロールして停止します。つまり、私のプロセスはソートに 1.5 GB の RAM しか使用できないようです。奇妙なのは、4 GB の物理 RAM があることです。
8 GB の配列を割り当てて、各バイトを書き込んで '.' を印刷してみました。100 万バイトごと。すべてが 1.5 GB あたりで遅くなり始め、4 GB を過ぎてもその速度を維持しているように見えますが、ディスクに移動する必要があることがわかっています。そのため、OS は約 1.5 GB のページをディスクに書き込み始めます。
マシンを使用して大きな配列をソートしたいと考えています。少なくとも 3.5 GB の RAM をプロセスに与えるように OS に指示するにはどうすればよいですか? mlock() を使用してみましたが、さらに遅くなるようです。アイデア?
git - 名前でスワップファイルが見つかりました
自分のブランチをリモート ブランチとマージしようとすると、次のようになります。
私はこのメッセージを受け取りました:
これに対処する方法は?
sftp - 崇高なテキスト 2 ファイルへの同時アクセス
サーバー上のファイルを編集するためにプラグインSFTPでSublime text 2を使用しています。
編集しようとしているファイルが他の誰かによって既に開かれている場合に、何らかのフラグを立てるオプションがありますか? (スワップファイルなどを使用)
linux - メモリが多すぎるためにプロセスが強制終了されましたか?
VMWare で実行されている Ubuntu 12.10 (カーネル 3.9.0-rc2) のインストールがあります。私はそれに512MBのRAMを与えました。
cat /proc/meminfo ショー:
MemTotal: 507864 KB
MemFree: 440180
(何らかの理由で) スワップを使用したいので、(malloc() を使用して) 500MB の配列を割り当て、ジャンクで埋める C プログラムを作成しました。ただし、プログラムは配列全体を埋める前に強制終了され、「強制終了」というメッセージが画面に表示されます。
これが正常な動作であるかどうか、またその理由は何ですか? 私の意見では、空き RAM が不足しているため、スワップを使用する必要があります。
編集:1GBのスワップがあるとは言いませんでした。cat /proc/swaps の表示:
/dev/sda5 Size: 1046524 Used: 14672.
メモリを消費するプログラムを実行すると、「使用済み」の量が増加します。しかし、ご覧のとおり、多くのスワップが残っています。では、なぜプログラムを「強制終了」する必要があったのでしょうか?
c++ - メモリが限られている場合、new は自動的に swap を使用しますか?
メモリを割り当てようとすると:
スペースを埋めるためにディスク スワップを取得できますか? そうでない場合、どうすればスワップを使用できますか?
xcode - Macでスワップファイルをクリアする方法
次のライブラリの現在のバージョンを使用する Xcode 4.2 を使用して小さなプロジェクトを作成しています - Ogre3d、ArUco、Bullet (OgreBullet ラッパーを使用)、および OpenCv。おそらく Xcode のメモリ リークが原因で、スワップ ファイルに大きな問題が発生しています。数回ビルドして実行するたびに、Xcode の RAM 使用量が増加します。
そして大きな問題: 3 ~ 4 時間の作業の後、スワップ ファイルが驚くべきペースで約 10Gb 近くまで増大し続け、ディスク容量が不足したため、マシンを再起動してクリアする必要がありました。
再起動せずにこのスワップ領域を解放する方法はありますか? サンクス!
*多くの Mac フォーラムで同様の問題が報告されていますが、明確な解決策はどこにも記載されていません。
android - ほとんどの Android デバイスには、一般的な OS のようにスワップ領域がないのはなぜですか?
現在、パフォーマンスを向上させると思われるスワップ領域をサポートしている Android はありますか?
ほとんどの Android デバイスがその機能を削除する理由は何ですか?