スワッピングに偏ったメモリ管理

スワッピングに偏ったメモリ管理

768MBのRAMがあります。通常、MySQLは100-180MBのRAMを使用し、MySQLは80-120MBをスワップします。 50-60MBの空きRAMがあります。

だからアップグレードする必要があると思いました。その後、RAMを1GBにアップグレードしました。その後、200-350MBの空きRAMがあります。しかし、MySQLは同じ量のRAMを使用しますが、まだ40〜60 MBを交換します。

これが私のfree -m結果です。

             total       used       free     shared    buffers     cached
Mem:           996        796        200          0         73         97
-/+ buffers/cache:        625        371
Swap:         2047         92       1955

これが私の最高の結果です

top - 22:11:23 up 13:35,  1 user,  load average: 0.26, 0.33, 0.35
Tasks: 143 total,   1 running, 142 sleeping,   0 stopped,   0 zombie
Cpu(s): 20.2%us,  1.8%sy,  0.0%ni, 77.8%id,  0.2%wa,  0.0%hi,  0.0%si,  0.0%st
Mem:   1020564k total,   809836k used,   210728k free,    77808k buffers
Swap:  2097144k total,    94880k used,  2002264k free,   102596k cached

  PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  SWAP COMMAND
 2484 mysql     20   0 1845m 165m 4356 S 25.9 16.6 151:33.45  63m mysqld
13777 myuser  20   0  201m  22m 9836 S  0.0  2.3   0:00.42    0 php-cgi
13780 myuser  20   0  200m  21m 9820 S  3.3  2.2   0:00.47    0 php-cgi
13773 myuser  20   0  200m  21m 9820 S  0.0  2.2   0:00.70    0 php-cgi
13775 myuser  20   0  200m  21m 9812 S  5.3  2.2   0:00.42    0 php-cgi
13779 myuser  20   0  200m  21m 9812 S  3.0  2.2   0:00.31    0 php-cgi
13778 myuser  20   0  200m  21m 9812 S  3.6  2.2   0:00.31    0 php-cgi
13776 myuser  20   0  200m  21m 9812 S  3.0  2.2   0:00.31    0 php-cgi
13774 myuser  20   0  199m  20m 9812 S  0.0  2.1   0:00.23    0 php-cgi
 2619 named     20   0  233m 9.8m 1388 S  0.0  1.0   0:04.57 5288 named
 2689 root      20   0  328m 7528 6316 S  0.0  0.7   0:05.14 9648 httpd
13735 root      20   0  106m 4840 3756 S  0.0  0.5   0:00.26    0 sshd
12772 apache    20   0  328m 3932 2040 S  0.0  0.4   0:01.08 9392 httpd
13163 apache    20   0  328m 3916 2036 S  0.0  0.4   0:00.65 9400 httpd
13425 apache    20   0  328m 3912 2036 S  0.0  0.4   0:00.32 9404 httpd
13417 apache    20   0  328m 3908 2036 S  0.0  0.4   0:00.35 9412 httpd
13420 apache    20   0  328m 3908 2036 S  0.0  0.4   0:00.37 9412 httpd

371MBの空きRAMがあっても、CentOS 6.3システムはまだ交換されています。スワップサイズは90MBです。

私の質問は、空きRAMが多いにもかかわらず、なぜLinuxがまだスワップをしているのかということです。悪い場合はどうやって診断しますか?それとも私はそれを気にしないでください?

答え1

あなたのmysqldは1,8 GBのRAMを使用するように設定されています。/etc/my.cnfこれは、おそらく実際に利用可能な容量よりもはるかに多くの容量であるためです。

これで、ある時点で(おそらくこれsysstatについてインストールして問い合わせたかもしれませんsar)、利用可能なものよりも多くのRAMを使用するメモリ要求(PHPも利用可能)を受け取っているようです。だからシステムはスワッピングを開始します。

結局のところ、メモリは使用されなくなりますが、アクセスする方法はありません。したがって、システムは、対応するスワップ空間をRAMに戻す理由はない。

Linuxの「交換」を調整してこの動作を変更できます。

「Ask Ubuntu」に良い質問/回答があります。ここ

答え2

apacheあなたが逃げるのを見て、昨年問題が発生しました1G ram。約300〜400Kのメモリが必要です。これは私にとってとても悪かったので削除してインストールしました。あなたはそれを行う。vpsapacheVPSapachelighthttpd

関連情報