私のMySQLボックスでは、いくつかのスワップの問題が疑われています。私はそれが私に与えた "トップ"ユーティリティを走らせただけで51MBのスワップが行われました。トップユーティリティ内のスワップの解釈
しかし、topユーティリティの "Swap"カラムを有効にすると、実際にはmysqldが使用するスワップが12gあることがわかりました。
正確な情報はどれですか?スワップは起こっていますか?
私のMySQLボックスでは、いくつかのスワップの問題が疑われています。私はそれが私に与えた "トップ"ユーティリティを走らせただけで51MBのスワップが行われました。トップユーティリティ内のスワップの解釈
しかし、topユーティリティの "Swap"カラムを有効にすると、実際にはmysqldが使用するスワップが12gあることがわかりました。
正確な情報はどれですか?スワップは起こっていますか?
編集:私は何を読んでから、トップの出力でSWAP列は本当にただVIRT - RES
です。プロセスの一部がスワップアウトされたという前提です。特定のプロセスがどの程度スワップを使用しているかを正確に測定することは困難または不可能です。
Linuxまたは/proc
は、あなたが実際の使用状況を取得するためにこれを使用することができますサポートするUNIXフレーバーの一つにしている場合:
cat /proc/18810/status
(。18810は、あなたのmysqldプロセスのPIDである場合は)
を実際のメモリ使用量のフィールドが表示されます。ここに私の開発VMでmysqldプロセスから除きます:
VmPeak: 3258116 kB
VmSize: 3258116 kB
VmLck: 1416344 kB
VmHWM: 1180788 kB
VmRSS: 1180780 kB
VmData: 3189940 kB
VmStk: 88 kB
VmExe: 11608 kB
VmLib: 7312 kB
VmPTE: 2540 kB
VmSwap: 0 kB
0のVmSwapは、それが現在どのスワップを使用していないことを示しています。
他のフィールドの情報については、http://man7.org/linux/man-pages/man5/proc.5.htmlまたはを参照してください。マニュアルは、一部は言う:
- VmSwap:匿名プライベート・ページによってスワップアウトされた仮想メモリのサイズ。 shmem swapの使用法は含まれていません(Linux 2.6.34以降)。
あなたのコメントを再
:
どうやらあなたは、プロセスごとの状況にVmSwapフィールドを含めるには余りにも古いLinuxのバージョンを使用しています。
/proc/meminfoと表示され、サーバー上で使用されているスワップ領域の合計がわかりますが、これはプロセスごとには分かりません。
vmstatを実行して、スワップ動作を監視することもできます。 "si"と "so"フィールドがゼロの場合、大丈夫です。
を参照してください。私はのRedHat LinuxでのPROCを走ったが、VmSwap出力を見つけることができませんでした。 '猫の/ proc/18810 /ステータス 名:mysqldを 状態:S(睡眠) SleepAVG:92% TGID:18810 はPid:18810 PPID:18780 TracerPid:0 Uidの:501 501 501 501 GID:501 501 501 501 FDSize:16384 グループ:501 VmSize:101891248 kBの VmLck:0 kBの VmRSS:88391188 kBの VmData:101868740 kBの VmStk:56キロバイト VmExe:6257キロバイト VmLib:2223キロバイト ... ' – Haans
"topの出力にあるSWAP列は、スワップする必要がある場合にどれくらいのスワップを使用するかを示しています" ---これはさらに精緻化が必要です:なぜ12gは84gではないのですか? – zerkms
別の説明:SWAPは偽の番号です。単純に 'VIRT-RES'です。ここで説明したように:http://stackoverflow.com/questions/479953/how-to-find-out-which-processes-are-swapping-in-linux –