[devel] Q: CONFIG_PSI_DEFAULT_DISABLED=y

Alexey Sheplyakov asheplyakov на basealt.ru
Пн Сен 6 18:23:49 MSK 2021


On 06.09.2021 19:03, Andrey Savchenko wrote:

>> Хоть с PSI, хоть без ядро всё равно ведёт учёт занятой/доступной памяти.
>> А планировщик всё равно отслеживает, сколько потоков готово к выполнению,
>> сколько заблокированы, и т.п. C PSI ядро может предоставить эту информацию
>> в userspace.
> 
> Это не так. Pressure stall accounting при выключенной опции ядро не
> ведёт.

В тех местах, где и так всё упирается в ввод-вывод (считая манипуляции
таблицами страниц), например, __perform_reclaim, __alloc_pages_direct_compact,
ядро вызывает psi_memstall_enter/psi_memstall_leave.
Которые по сути ставят/снимают флажок.

>> Так что пусть по умолчанию будет включено. А кто хочет рискнуть стабильностью
>> системы ради (мнимого) прироста производительности - пусть **отключают**. 
>> Вместе с /proc/loadavg
> 
> Надеюсь, вы понимаете разницу между общим счётчиком и детализацией
> для каждого процесса?

$ cat /proc/loadavg 
0.63 0.50 0.42 1/1546 251275

$ cat /proc/pressure/memory

some avg10=0.00 avg60=0.00 avg300=0.00 total=2657355
full avg10=0.00 avg60=0.00 avg300=0.00 total=1480309

Ровно та же детализация, что у loadavg. Только, грубо говоря,
есть loadavg ещё и для памяти и дисков (IO).

> Вообще, memory accounting в ядре затратен и без нужды лучше не использовать.

Парламент не место для дискуссий, ага. А ядро не место для учёта памяти.
Это надо отлить в граните.


Подробная информация о списке рассылки Devel