К сожалению, не все так просто.
"swap" действительно считается "нерезидентной анонимной страницей". То есть страницы, которые не поддерживаются никаким дисковым файлом (не страницы, поддерживаемые mmap-файлами).
Когда ядру не хватает памяти, оно имеет тенденцию отбрасывать страницы, которые не использовались в последнее время. Может быть выбрано удаление страниц с файловой поддержкой или анонимных страниц. Если это последнее, то используется "своп".
Тем не менее, нет ни одного процесса, который запускает его, это просто общее давление памяти.
Более того, вы даже не можете измерить использование страницы очень точно. Есть два счета на процесс, которые (неопределенно) полезны. Это VSIZE (или размер vm), который представляет собой общее количество страниц, выделенных процессом, но это, как правило, является завышенной оценкой того, сколько фактически "используется", так как он может считать страницы дважды и считать страницы не используется вообще (отображается, но не используется).
Другой - RSS, или "размер резидентного набора", который представляет собой объем памяти на страницах, которые в настоящее время являются резидентными. Однако это не совсем верная картина:
- Одна и та же страница не обязательно используется ровно одним процессом - ими можно поделиться.
- Некоторые страницы используются ядром внутри и, следовательно, не оплачиваются ни одному процессу
Мне неизвестны какие-либо инструменты, которые пытаются сделать лучшую оценку, чем эта, но теоретически возможно сделать немного лучше с новой диагностикой, доступной в /proc в недавних ядрах.