При отладке проблемы с медленным клонированием hg из клиентов Windows я обнаружил, что производительность hg clone может быть значительно улучшена (в 10 раз быстрее) на виртуальных экземплярах EC2 2012 за счет уменьшения размера страницы ОС по умолчанию с 8 ГБ до 1 ГБ для принудительного использования (обильного) физического объем памяти.
Для своих тестов я запускаю эту команду клонирования:
hg clone -U --traceback --verbose --profile --time https://hg.mozilla.org/mozilla-central
В Windows Server 2012:
с настройками по умолчанию (ОС управляет размером страницы):
time: real 653.507 secs (user 115.891+0.000 sys 486.922+0.000)
с ручными настройками (максимальный размер файла подкачки 1024 МБ):
time: real 179.646 secs (user 56.594+0.000 sys 58.234+0.000)
В Windows Server 2008:
с ручными настройками (максимальный размер файла подкачки 1024 МБ):
time: real 1273.845 secs (user 98.905+0.000 sys 592.585+0.000)
Мне не удалось воспроизвести увеличение производительности с 2012 года по 2008 год, когда одна и та же команда всегда работает медленно, независимо от размера страницы ОС.
Я почти уверен, что мы можем исключить такие вещи, как программное обеспечение, сеть и оборудование, потому что я сделал все возможное, чтобы воспроизвести среду как можно точнее (виртуальное оборудование идентично: c3.2xlarge, 16 ГБ оперативной памяти, 80 ГБ SSD, то же сетевые подсети и т. д.). Я думаю (из-за комментария Мэтта Макколла на hg ошибка Я поднял вопрос о значении временных соотношений между пользователем и системой), что мы действительно смотрим на проблему io уровня ОС или конфигурации памяти.
Есть идеи, на что еще я должен смотреть, кроме размера файла подкачки?
Я не могу придумать причину, по которой файл подкачки должен иметь значение, кроме разницы в размере (и если вы выполняете клонирование без использования WIM, конечно, у вас будут проблемы с перфомансом с файлом подкачки). Удаление или уменьшение размера файла подкачки не влияет на то, сколько оперативной памяти используется. Видеть https://serverfault.com/a/75027/3528
Все, что говорится о настройках Windows по умолчанию, может ли EC2 делать какой-то баллон памяти?