Для даного процесу в /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 = Унікальний розмір набору.