0

私は約 1 週間 Web をサーフィンしてきましたが、「CentOS は RAM の使用方法を知っています。心配する必要はありません」ということだけを見つけましたが、これは問題だと思います。
1.5 GB RAM、1 プロセッサ/4 コア、および 700 MB SWAP を備えた CentOS 6.4 X86_64 final を最近/クリーン インストールした VM がありますが、問題はメモリ消費です。
postgresql、pgadmin3、JRE 7.25 (JDK や OpenJDK ではない)、netbeans 7.3.1、および apache をインストールしましたが、ほとんどの場合 (99%) NB と firefox を同時に開くだけで、明らかに httpd と pgsql サービスが必要です。
さて、netbeans を開くと 300Mb - 350MB、Firefox は 100MB - 150MB を使用し、システムが使用する初期メモリは約 250MB であるため、750MB とシステム モニターと空き -mコマンドはそれを確認しますが、数分以内にシステムがすべての空きメモリを消費し、100MB - 200MB SWAP を使い始めます。そして、それは本当に SssLOOOWWW になります..単純な PHP / JS / HTML Web サイトを開発しています。

システムがすべてのメモリとスワップを消費すると、free -mコマンドは次のように返します。

    free -m
       total    used      free   shared    buffers    cached
Mem: 1511532  1477256    34276      0       18652     89325
-/+ b../c..:  1369279   142253
Swap: 711320   198652   512668

実際の空きメモリは約 140MB ですが、

  • これは大量のメモリが使用され、システムが非常に遅くなります
  • NB と FF を閉じると、解放された両方で使用されるメモリの半分 (250MB) しか得られません。
  • SWAP は解放されません (再起動時のみ)
  • FF と NB を再度開くと、250MB が再び消費され、さらに多くの SWAP が消費されます!!!

私はこれを試しました:

  • Swappiness の値を 60 から 5 に変更しましたが、実際にはシステムは RAM の 95% が使用されるまでスワップを使用しません。
  • Bluetooth mgr、メール、ログイン音、エネルギー mngr (デスクトップ PC です) など、起動時に不要なプログラムを無効にしました。
  • JVM の最大ヒープ サイズを 256MB に設定し、実際には Java/NetBeans (仮想 + 共有) 間 = 実際に使用されるメモリが 400MB を超えることはありません
  • サービスごとにチェックすると (複数の httpd および PGSql サブサービスを含む)、使用されるメモリは 750MB 以下です
  • Win 7/WAMP でまったく同じ Web サイトをテストすると、Netbeans、PGAdmin3、Firefox、および posgres サービスによって使用されるメモリは、centOS (500MB) とシステムによって使用される初期メモリとほぼ同じであると言わざるを得ません。 (900MB) 合計使用メモリは 1400MB であり、変化しないため、プログラミング エラーではありません。
  • 最後に、CentOS を再インストールしましたが、問題は解決しません
4

2 に答える 2

0

「htop」を使用してメモリを見ると、メモリ バーが 3 色になっていることがわかります。あなたの場合、使用されているメモリのほとんどは黄色であると思います。

基本的に、メモリはさまざまな OS キャッシュによって使用されています。これらのキャッシュは、システムの必要に応じてメモリからプッシュされます。システムは RAM コピーを保持するため、データがまだメモリ キャッシュにある間に同じコマンド/プログラムが再度実行された場合に centos をより高速に実行できます。これは、アプリが閉じられると、使用されたメモリの一部だけが解放される理由を説明しています。

これは私にとってスローダウンの原因ではありませんでした。

あなたが使い続けるにつれて、私はFirefoxのメモリ使用量のバルーンを経験しました。

おそらく、仮想化プラットフォームの問題です。ホスト OS と使用している仮想化プラットフォームは何ですか?

于 2013-08-06T03:51:55.617 に答える
0

私が言ったように、CentOS x64 を再インストールしましたが、メモリ使用量の問題が解決しないため、私自身の特定のケースと自分の経験から理論を立てています。
プログラム/アプリケーションが 64 ビット用に設計されているかどうか完全に確信が持てない場合は、32 ビット CentOS EVEN FOR AMD X64 をインストールすることをお勧めします。
私の場合:

  • Amd Athlon X4 640 プロセッサー (64bit)
  • ヴイエムウェア 7
  • 1プロセッサ/4コア、1.5GB RAM
  • CentOS 6.4 32 ビット
  • アパッチ (httpd)
  • PHP 5.3.3
  • Postgresql (サーバー、クライアント、contrib、libpq)
  • pgAdmin III
  • firebug および colorzilla拡張機能を備えた Firefox 17 ESR (デフォルトの centos ブラウザー)
  • Opera (最終リリース)
  • JRE 7.25 (netbeans が動作する場合のみ -- openJDK ではなく Oracle からダウンロード)
  • Netbeans 7.3.1 (PHP - HTML5)

これで、pgadmin、netbeans (10 個のアクティブなタブ)、および firefox を開きました。空きメモリは (150+MB の空き + 20+MB のバッファ + 200+MB のキャッシュ) で、Opera やその他のプログラムを開くときにさらにメモリが必要な場合は、キャッシュされたメモリの一部は、必要に応じて解放されます。ああ、SWAP の使用は 0.00000000 です。ご存じのとおり、これは非常に役立ちますが、スワップにロードされたプログラムを (全体的または部分的に) 使用している場合、RAM にロードされたプログラムよりも少なくとも 10 倍遅くなります。

于 2013-08-07T16:50:22.077 に答える