The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

Выпуск cache-bench 0.1.0 для исследования эффективности кэширования файлов при нехватке памяти

04.06.2021 15:33

cache-bench - это Python скрипт, позволяющий оценить влияние настроек виртуальной памяти (vm.swappiness, vm.watermark_scale_factor, Multigenerational LRU Framework и прочих) на производительность выполнения задач, выполнение которых зависит от кэширования файловых операций чтения в условиях нехватки памяти. Код открыт под лицензией CC0.

Основной способ использования - считывание файлов из указанной директории в случайном порядке и их добавление в список, пока не будет считано заданное число мебибайт. Доступно два режима работы:

  • Первый - вспомогательный - служит для создания директории заданного объёма. При этом в директории создаётся определённое число мебибайтных файлов со случайными именами.
  • Второй режим - основной - режим чтения файлов из указанной директории в случайном порядке. Во время чтения растёт объем потребляемой скриптом памяти, а скорость считывания заданного объёма файлов зависит от объёма кэшированных файловых страниц.

Частью проекта также является вспомогательных скрипт drop-caches, который рекомендуется выполнять перед началом теста. В процессе работы скрипта в режиме чтения выводится общее время работы, средняя скорость чтения, имя последнего считанного файла. Скрипт также позволяет логировать результаты в файл с отметками времени.

  1. Главная ссылка к новости (https://github.com/hakavlad/ca...)
  2. OpenNews: Новая техника атаки RowHammer на память DRAM
  3. OpenNews: В ядро Linux 5.12 принята подсистема KFence для выявления ошибок при работе с памятью
  4. OpenNews: Выпуск обработчика нехватки памяти earlyoom 1.4
  5. OpenNews: Представлен low-memory-monitor, новый обработчик нехватки памяти для GNOME
  6. OpenNews: Релиз обработчика нехватки памяти oomd 0.2.0
Автор новости: hakavlad
Лицензия: CC BY 3.0
Короткая ссылка: https://opennet.ru/55273-cache-bench
Ключевые слова: cache-bench, benchmark, test, memory, oom
При перепечатке указание ссылки на opennet.ru обязательно


Обсуждение (25) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.1, Рева RarogCmex Денис (?), 16:24, 04/06/2021 [ответить] [﹢﹢﹢] [ · · · ]  
  • –6 +/
    Интересно, сколько он будет мои 48Гб на сервере тестировать.
     
     
  • 2.2, commiethebeastie (ok), 16:31, 04/06/2021 [^] [^^] [^^^] [ответить]  
  • +11 +/
    Понты уровня сiло.
     
  • 2.3, Ананомизец (?), 16:35, 04/06/2021 [^] [^^] [^^^] [ответить]  
  • +8 +/
    фсяко быстрие чем маи 512Г
     

  • 1.4, быдлоюзер (?), 16:38, 04/06/2021 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    У меня 26гб озу. За две недели работы платформы отображающей много графиков цен криптовалют, своп распух до 78гб.
    Вроде всё устраивает, но иногда при начале "тяжелого свопинга" платформа не отвечает несколько минут, рвётся связь с серверами и у меня получаются пропуски на граффиках цен. Установив zram "дело улучшилось раза скажем в два с половиной".
    Поможет ли мне этот скрипт подобрать правильные значения vm.swappiness, vm.watermark_scale_factor, Multigenerational LRU Framework и прочих? Чтобы устранить "эффект недоступности" платформы во время "тяжёлого свопинга"
     
     
  • 2.6, Аноним (6), 16:47, 04/06/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Если это жава, возможно, поможет uksm и openj9 -- в теории, потребление памяти упадёт очень значительно, и своп будет использоваться более эффективно.
     
     
  • 3.7, быдлоюзер (?), 16:49, 04/06/2021 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Платформа sierrachart сделана на чистом c++ для винды, работает через wine
     
     
  • 4.18, НяшМяш (ok), 18:45, 04/06/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Может быть утекает сам wine. Один раз столкнулся с утечкой GDI объектов - программа просто переставала перерисовываться и замечали это не сразу, а в логах сыпались ошибки. Пофиксили с помощью winetricks gdiplus. Может и с этим софтом тоже похожая история приключилась.
     
  • 2.10, foo (?), 17:26, 04/06/2021 [^] [^^] [^^^] [ответить]  
  • –1 +/
    >Поможет ли мне этот скрипт подобрать правильные значения vm.swappiness, vm.watermark_scale_factor, Multigenerational LRU Framework и прочих?

    Да, поможет. Впрочем, скажу тебе и так:

    - ставь swappiness не ниже 100 при использовании zram

    - если система на HDD, то можно swappiness и в 150-190 выкрутить (начиная с ядер 5.8)

    см актуальную док https://github.com/torvalds/linux/blob/master/Documentation/admin-guide/sysctl

     
  • 2.11, Амоним (?), 17:30, 04/06/2021 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Копать в сторону drop cache    и  memory compaction / fragmentation.  Дело вовсе не в нехватке памяти, а в её фрагментации. Теоретически ядро с этим  само справляется, фактически приходится ему помогать - принудительно сбрасывать (файловый) кэш и утрабмовывать (дефрагментировать) свободную память.  Смотреть в /proc/buddyinfo
     
     
  • 3.13, Амоним (?), 17:36, 04/06/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Правильнее будет сказать - дело не только в нехватке памяти, но и в её фрагментации.
     
  • 3.14, foo (?), 17:38, 04/06/2021 [^] [^^] [^^^] [ответить]  
  • –1 +/
    При наличии zram основной причиной тормозов при своппинге как раз является истощение чистых файловых кэшей - приходится часто дёргать медленный диск на каждый чих. Тут как раз поможет именно увеличение своппинес, чтоб ценный кэш не выбрасывался из памяти.
     
  • 2.19, Аноним (19), 18:46, 04/06/2021 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Попробуй вот этот
    https://gist.github.com/iavael/f64f392d61d452f247c87b90f5b4be1e#file-swap-hw-s

    Только учитывай, что запускать его нужно в системе после некоторой работы под штатной нагрузкой, но в которой еще не заканчивалась доступная оперативная память (в которой active память еще не вытеснялась в своп).

     
     
  • 3.22, Аноним (22), 02:58, 05/06/2021 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Спасибо. А в каких единицах выводится Swapsize?
     
  • 3.27, быдлоюзер (?), 17:57, 05/06/2021 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Открытие графиков при запуске программы занимает минут 40, съев всё озу и наполняя своп до 17гб. И начинается штатная работа, в процессе которой за 2 недели своп наполняется до 80гб.
     
  • 2.25, edo (ok), 13:45, 05/06/2021 [^] [^^] [^^^] [ответить]  
  • +/
    >  не отвечает несколько минут

    Hdd? На ssd такого не встречал

     
     
  • 3.26, быдлоюзер (?), 14:01, 05/06/2021 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Hdd
     

  • 1.8, Аноним (8), 17:01, 04/06/2021 [ответить] [﹢﹢﹢] [ · · · ]  
  • +3 +/
    О каждом своём наколеночном скрипте теперь буду новость на опеннете писать.
     
     
  • 2.9, foo (?), 17:08, 04/06/2021 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Если полезный скрипт - почему бы и нет?

    Например, с помощью cache-bench установлено, например, что Multigenerational LRU Framework, недавно опубликованный гуглом, не вполне корректно работает со swappiness, точнее то, что swappiness (от 1 до 200) очень слабо влияет на результат, в отличие от тестов с применением классического LRU.

    cache-bench позволяет наглядно демострировать влияние swappiness на скорость некоторых файловых операций при нехватке памяти.

     
     
  • 3.12, Аноним (8), 17:36, 04/06/2021 [^] [^^] [^^^] [ответить]  
  • +2 +/
    >Например, с помощью cache-bench установлено, например, что Multigenerational LRU Framework, недавно опубликованный гуглом, не вполне корректно работает со swappiness, точнее то, что swappiness (от 1 до 200) очень слабо влияет на результат, в отличие от тестов с применением классического LRU.

    С помощью скрипта, которому меньше дня? Может стоило новость написать про ошибки в Multigenerational LRU Framework лучше, чем одноразовый скрипт пиарить?

     
     
  • 4.15, foo (?), 17:41, 04/06/2021 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Скрипту месяц, просто не был опубликован.
     
  • 4.16, foo (?), 17:42, 04/06/2021 [^] [^^] [^^^] [ответить]  
  • –1 +/
    >новость написать про ошибки в Multigenerational LRU Framework лучше, чем одноразовый скрипт пиарить?

    Разрепорчу в лкмл, потом и сюда новость кину

     

  • 1.17, foo (?), 17:51, 04/06/2021 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    уже было на лоре https://www.linux.org.ru/news/opensource/16350636
     
     
  • 2.20, Annoynymous (ok), 20:42, 04/06/2021 [^] [^^] [^^^] [ответить]  
  • +/
    На ЛОР-е r-test, здесь cache-bench.

    Если это шутка такая, то я её не понимаю.

     
     
  • 3.24, foo (?), 03:20, 05/06/2021 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > На ЛОР-е r-test, здесь cache-bench.

    cache-bench - это переименованный r-test. См описание и код.

     

  • 1.28, adolfus (ok), 00:27, 07/06/2021 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Что такое директория? Директрисса, что ли?
     

     Добавить комментарий
    Имя:
    E-Mail:
    Текст:



    Партнёры:
    PostgresPro
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2024 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру