• В третий что ли раз в жизни пытаюсь включить в линуксах KSM (Kernel Samepage Merging) надеясь сэкономить кучу памяти и всё ничего не происходит. Вот у меня запущено множество экземпляров одного и того же приложения, почему бы им память не сдедуплицировать?

    Короче включаю:
    echo 1|sudo tee /sys/kernel/mm/ksm/run

    и ничего. При этом что любопытно
    $ cat /sys/kernel/mm/ksm/pages_unshared
    0

    не видит кандидатов для дедупликации? Почему так?

Replies (7)

  • @Self-Perfection, Ах вот оно что:
    serverfault.com
    Нужно память пометить как MADV_MERGEABLE
  • @Self-Perfection, и обычно так делают только гипервизоры с памятью ядра в виртуалке. Больше я не находил хороших примеров
  • @Self-Perfection, по-твоему какие такие данные в пользовательских приложениях должны так хорошо совпадать в памяти страница в страницу? код программ и так уже шарится
  • @cypa, Вот я не уверен кстати, что код программ будет шариться. Там куча контейнеров. Ну и они довольно однотипны, скажем так инициализируются практически идентичным образом, так что вполне можно ожидать, что данные во многом будут совпадать.
  • @Self-Perfection, какой адский трэш эти ваши контейнеры во всех местах
  • @cypa, И не говори. Я бы с удовольствием всё это разворачивал без них.
  • @Self-Perfection, идея сама правильная, сам посыл, но реализация пока костыльная, нужно либо ждать когда преобразуется в что-либо готовое, удобное и правильное, либо самому изобретать
    например, OSv выглядит неплохо