Как уменьшить объем свободной памяти до определенного числа за определенное время

Я хочу подчеркнуть память на определенное время. Я проверяю использование памяти с помощью vmstat -s и с помощью команды tail /dev/zero, но время ожидания tail /dev/zero составляет примерно 60 с, и оно заполняет память случайным образом. Я хочу иметь доступную свободную память 5% на 180 секунд.

1
задан 5 September 2019 в 22:40

1 ответ

Можно было использовать буфер трассировки ядра, поскольку способ уменьшить доступную память уехал в систему и/или пользователя. Пример, с помощью моей системы с 16 гигабайтами и 8 центральных процессоров:

Сначала память сброса, давая нашу начальную точку (отмечают, что я работаю как корень):

root@s15:/home/doug/temp-k-git/linux# sync
root@s15:/home/doug/temp-k-git/linux# echo 3 > /proc/sys/vm/drop_caches
root@s15:/home/doug/temp-k-git/linux# free -m
              total        used        free      shared  buff/cache   available
Mem:          15719          88       15472           1         159       15343
Swap:         16085          35       16050

Теперь, вычислите и выделите память буферу трассировки ядра: 5% из 15719 megabytyes составляют 786 мегабайтов. При запуске с 15472 megabytyes Затем должны использоваться 14686 megabyytes. Буфер трассировки ядра на ЦП, в моем случае 8 центральных процессоров, таким образом, 1 835 мегабайтов за ЦП. Выделите:

root@s15:/home/doug/temp-k-git/linux# echo 1835000 > /sys/kernel/debug/tracing/buffer_size_kb

И проверьте его:

root@s15:/home/doug/temp-k-git/linux# free -m
              total        used        free      shared  buff/cache   available
Mem:          15719       14476         858           1         385         730
Swap:         16085          35       16050

Можно заметить, что это привело к 5,46% памяти, все еще доступной (настройте выделение, в случае необходимости). После того как Вы сделали любое тестирование, затем можно освободить буфер трассировки ядра с (0, не работает):

root@s15:/home/doug/temp-k-git/linux# echo 1 > /sys/kernel/debug/tracing/buffer_size_kb

И проверьте его:

root@s15:/home/doug/temp-k-git/linux# free -m
              total        used        free      shared  buff/cache   available
Mem:          15719          88       15470           1         160       15342
Swap:         16085          35       16050

Если Вы хотите, чтобы время составляло 180 секунд, затем укуталось вышеупомянутое в сценарий с 180 вторыми разами сна. Однако необходимо будет все еще проверить доступное число как начальную точку.

0
ответ дан 7 December 2019 в 18:53

Другие вопросы по тегам:

Похожие вопросы: