Всегда ли / proc / [pid] / status использует КБ?


10

В частности, procвсегда ли указывается значение VmRSS в kB? Я не могу найти твердый ответ в документации , хотя кажется, что он придерживается одной единицы.

Ответы:


10

Да, это всегда в кБ. КиБ (1024 байта, а не 1000), если быть точным.

По крайней мере , в Linux 4.0 (и этот код был в основном без изменений , так как , по крайней мере апреля 2005- х годов , когда , что Линус перешел на git, и я не забочусь , чтобы проверить еще дальше назад) , что выход поступает из task_memвfs/proc/task_mmu.c . Выдержка из нескольких строк:

seq_printf(m,
    "VmPeak:\t%8lu kB\n"
    "VmSize:\t%8lu kB\n"
    "VmLck:\t%8lu kB\n"
    "VmPin:\t%8lu kB\n"
    "VmHWM:\t%8lu kB\n"
    "VmRSS:\t%8lu kB\n"
    "VmData:\t%8lu kB\n"
    "VmStk:\t%8lu kB\n"
    "VmExe:\t%8lu kB\n"
    "VmLib:\t%8lu kB\n"
    "VmPTE:\t%8lu kB\n"
    "VmPMD:\t%8lu kB\n"
    "VmSwap:\t%8lu kB\n",
    hiwater_vm << (PAGE_SHIFT-10),
    
);

Не уверен, что вы можете прочитать C, но это "кБ" там жестко закодировано. Нет логики для вывода какого-либо другого устройства.


То же самое для /proc/meminfo? man 5 procздесь не совсем понятно
olejorgenb

1
@olejorgenb Да, это также жестко закодировано как kB. Посмотри fs/proc/meminfo.c. (И, пожалуйста, пришлите патч на
страницу
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.