Как я могу получить информацию о Linux, если моя программа обменивается или нет? - PullRequest
5 голосов
/ 23 ноября 2010

Более конкретно: я хочу найти эту информацию внутри программы, желательно перед тем, как она начнет меняться, чтобы я мог реагировать. Пока что нашел:

  • Информация внутри /proc, что не очень полезно

  • mincore syscall, который, кажется, доступен на linux и bsd, но требует от меня прохождения всех страниц, которые меня интересуют (может быть достаточно, но это немного утомительно)

Есть еще идеи?

1 Ответ

2 голосов
/ 23 ноября 2010

vmstat

Для запуска каждые 2 секунды вы говорите «vmstat 2».Он выдает следующие данные:

procs -----------memory---------- ---swap-- -----io---- --system-- -----cpu------
 r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa st
 0  0      0  16124 431352 439000    0    0     4     2   37   18  0  0 100  0  0

Столбцы "si" и "so" обозначают "swap-in" и "swap-out".Swapd - это объем памяти в устройстве подкачки.Swapd должен быть стабильным, а si и т. Д.

Помните:

Вы не должны спрашивать "обмен моей программой", а не система свопинг ".Ваша программа может заставить других поменяться местами - другие могут заставить вас поменяться и т. Д. В любом случае, когда это произойдет - производительность d ... i..e ... s ....

...