Берем для примера пресловутый
midnight commander и устанавливаем повторно + снимем бенчмарку.time apt install -y --reinstall mc
real: 2.977s
Почти 3 секунды. Приемлемо. Но если нужно поставить 100 пакетов, то в среднем это займет 300 секунд или 5 минут. Уже дохуя!
ㅤ
Давай оптимизируем этот процесс и превратим 300 секунд в 150, а то и меньше.
Устанавливаем утилиту eatmydata:
apt install eatmydata
Устанавливаем
midnight commander и замеряем время:time eatmydata apt install -y --reinstall mc
real: 1.204s
Хуясе, почти одна секунда, установка
mc прошла в два раза быстрее.Но почему? И что сделала eatmydata?
eatmydata предназначенная для ускорения операций записи на диск в Linux-системах, особенно при установке пакетов с помощью APT. Она временно отключает механизмы, которые обеспечивают сохранность данных при сбоях системы, такие как fsync, fdatasync, flock и msync, что позволяет уменьшить время записи данных на диск.
Короче говоря утилита игнорирует запросы на немедленное сохранение данных на диске (синхронизация).
Где это можно использовать?
Ну например на тестовых средах или в docker контейнерах. Везде, где целостность данных не критична, а важна лишь скорость.
Такие дела, изучай!
tags: #linux
—
🔔 @bashdays➡️ @gitgate