Для даного процесу в /proc/<pid>/smaps, для заданої карти відображення, що таке:
- Shared_Clean
- Shared_Dirty
- Private_Clean
- Private_Dirty
Чи Shared_Clean+ Shared_Dirtyоб'єм пам'яті, що ділиться з іншими процесами? Так це як спільний RSS?
Так само Private_Clean+ Private_Dirtyоб'єм пам'яті, який доступний лише для одного процесу ? Так це як приватний RSS?
Чи значення PSS = PrivateRSS + (SharedRSS / кількість процесів, що його ділять)?
Ще кілька запитань після прочитання цього посилання: LWN
Тепер давайте поговоримо про процес в цілому, чиї записи в Smaps ми дивимось.
Я помітив, що якщо я роблю Shared_Clean+ Shared_Dirty+ Private_Clean+ Private_Dirtyдля кожного запису карти в процесі, я отримую RSS цього процесу, як повідомляється ps, що досить круто. Наприклад, наприклад
ps -p $$ -o pid,rss
Дасть мені (приблизно) однакове значення RSS як сума кожен Shared_Clean, Shared_Dirty, Private_Clean, Private_Dirtyзапис в / Proc / $$ / smaps.
А як щодо PSS за весь процес? Отже, із наведеного вище прикладу, як отримати PSS за $$? Чи можу я просто додати запис PSS для кожного картографічного відображення та прибути до PSS за $$?
А як щодо USS за весь процес? Знову беручи приклад вище, я здогадуюсь, що я можу приїхати до USS за $$, підсумовуючи лише записи Private_ * для кожної записи в карти для $$ .. правда?
Примітки:
PSS = пропорційний встановлений розмір.
USS = Унікальний розмір набору.