Кэширование Find/ls

Легкий. Войдите в свой VM как в корень. Введите "fdisk-l" - если Вы уже видите новый размер диска - хороший.

Если не - попытка partprobe - если Вы все еще не видите нового размера диска - перезагрузка.

Теперь fdisk /dev/sda

  1. Запишите Вас стартовый цилиндр для второго раздела.
  2. "Удалите" второй раздел
  3. Воссоздайте второй раздел, тот же стартовый цилиндр, последний цилиндр для конца
  4. установите тип воссозданного раздела к 8e (LVM)
  5. запишите изменения и выйдите из fdisk
  6. partprobe
  7. pvresize /dev/sda2

Теперь Ваш VG VolGroup00 имеет на 20 ГБ больше пространства. Сделайте то, что Вы любите с ним. Так же, как Вы сделали бы в физической системе (измените размер LVs, затем измените размер FS, например).

10
08.06.2013, 21:53
2 ответа

Можно использовать vmtouch для добавления файлов к кэшу страницы (дисковый кэш).

Поместить nohup vmtouch -dl <files or directories> & в Вашем /etc/rc.local файл, чтобы добавить и заблокировать файлы в Ваш кэш страницы на начальной загрузке. Если Вы хотите добавить файлы к своему кэшу страницы, но не хотите блокировать их в память, используйте -t флаг вместо -ld флаги.

Для получения дополнительной информации о кэше страницы посмотрите здесь, здесь, и на Википедию.

8
27.01.2020, 20:03
  • 1
    Та команда не кажется доступной в Ubuntu - там альтернатива, которую я могу попробовать? –  Richard 08.06.2013, 22:59
  • 2
    @Richard очень легко скомпилировать vmtouch самостоятельно: Установите build-essential пакет.Скачать vmtouch.c. Выполненный gcc -O2 -o vmtouch vmtouch.c или make vmtouch и Вы получаете двоичный файл vmtouch в который можно затем скопировать, например, /usr/local/bin или вызов ./vmotouch. заметка на полях –  jofel 08.06.2013, 23:08
  • 3
    @Richard я не использую Ubuntu, таким образом, я не протестировал это и не беру на себя ответственности, но поиска с помощью Google "Ubuntu mvtouch", поднял этот ppa. –  terdon♦ 08.06.2013, 23:51
  • 4
    @jofel, да, было достаточно легко скомпилировать - спасибо. Я просто предпочитаю использовать пакеты, если это возможно. –  Richard 08.06.2013, 23:59
  • 5
    @Evan, исправьте меня, если я неправ, но не был бы с помощью vmtouch как на команде загрузки замедляют целые работы? Моя надежда состояла в том, чтобы сохранить кэш через начальные загрузки вместо того, чтобы (дорого) повторно создать его каждый раз. –  Richard 09.06.2013, 00:02

"Сохраните через перезагрузки", я сомневаюсь относительно этого. Но можно тривиально восстановить кэш на начальной загрузке, которая выполняет почти то же самое минус маленькая задержка.

Создайте файл /etc/cron.d/rebuild-fs-cache и помещенный следующее в него:

@reboot root /usr/bin/nice -n 19 /usr/bin/ionice -c 3 -t /usr/bin/find / >/dev/null 2>&1

Это использует nice и ionice (который должен быть установлен по умолчанию и определенно быть доступным через диспетчер пакетов; Debian вставляет их coreutils и util-linux, соответственно) для понижения приоритета find обработайте к самым хорошим возможным уровням, что означает, что это не должно вмешиваться ни во что больше работающее на Вашей системе, но возьмет немного дольше для завершения. find самостоятельно пройдет и stat() все, которое вынуждает ядро загрузить данные файловой системы из диска в память.

После того как кэш был создан, пока это не становится очищенным, потому что ОС нужна память для чего-то еще, это должно сохраняться. Я использовал это некоторое время, и списки каталогов даже в больших каталогах значительно быстрее, чем без вышеупомянутого задания крона, хотя я не могу процитировать точные числа.

1
27.01.2020, 20:03
  • 1
    Если Вы собираетесь изобрести велосипед, Вы могли бы также использовать locate, который идет updatedb обновить определять местоположение базу данных: en.wikipedia.org/wiki/Locate_ (Unix) –  laebshade 09.06.2013, 01:22
  • 2
    @laebshade я не использую locate вообще, но я использую ls много. И иногда find. (Кроме того, найдите, и ls являются определенными командами, о которых спрашивает OP.) Точка использования find вот то, что это выполняет итерации по всему на статистике вызова устройства хранения данных (), таким образом, ядро должно загрузить метаданные в память. После того как это там, столь же хорошо, как будто это было сохранено через перезагрузку. –  a CVn 09.06.2013, 01:29

Теги

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