Перейти к содержимому

loga's блог

  • записи
    3
  • комментариев
    10
  • просмотра
    41 654

Быстрая (до)загрузка блоков под linux

loga

2 681 просмотр

Иногда бывает так, что нужно срочно воспользоваться bitcoin-клиентом, который долго не запускался и соответственно прошло довольно много времени с момента его последней синхронизации.

 

Довольно сильно на скорость загрузки влияет скорость жесткого диска, поскольку база блоков и их индекс хранится на нем и с ними часто проводятся операции чтения/записи во время загрузки блоков. Чтобы снизить обращения к диску мы будем использовать файловую систему tmpfs, которая хранит файлы в памяти и только при ее нехватке сбрасывает их части в своп. Такой подход позволяет значительно ускорить работу с файлами, но недостатком этой файловой системы является полная потеря данных при отмонтировании или отключении питания, поэтому нам понадобится бекап.

 

Итак мы имеем стандартный клиент и linux в качестве операционной системы.

 

1. Для начала перенесем все файлы из ~/.bitcoin в какой-нибудь другой каталог:

$ mkdir ~/bitcoin-backup
$ mv ~/.bitcoin/* ~/bitcoin-backup

 

2. Под рутом смонтируем в каталог клиента файловую систему tmpfs размером 5Gb (нужно чтобы сумма свободного места в свопе и оперативной памяти была не меньшей этого значения и туда помещались все файлы клиента):

# mount none -t tmpfs /home/user/.bitcoin/ -o size=5G

 

3. Делаем копию бекапа обратно в ~/.bitcoin:

$ cp ~/bitcoin-backup/* -r ~/.bitcoin

 

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

 

5. Закрыв синхронизированный клиент скопируем обновившиеся файлы в бекап

$ cp ~/.bitcoin/* ~/bitcoin-backup/ -r

 

6. Отмонтируем файловую систему tmpfs (все данные на ней будут потеряны, но мы ведь их скопировали предварительно), опять же под рутом:

# umount /home/user/.bitcoin

 

7. И перенесем файлы бекапа обратно в рабочую директорию клиента:

$ mv ~/bitcoin-backup/* ~/.bitcoin/

 

8. После этого запускаем клиент и работаем как обычно.

 

Если в процессе дозагрузки блоков произошло внезапное отключение питания то не стоит расстраиваться, нужно просто повторить все шаги начиная со 2го.



4 комментария


Рекомендуемые комментарии

Спасибо за отличную полезную статью. Сегодня попробовал, блоки действительно грузяться намного быстрее.

Поделиться комментарием


Ссылка на комментарий

На твердотельных накопителях(SSD) блоки тоже грузятся очень быстро.

У меня один такой уже есть.

Поделиться комментарием


Ссылка на комментарий

На твердотельных накопителях(SSD) блоки тоже грузятся очень быстро.

У меня один такой уже есть.

У SSD очень маленькое время произвольного доступа, так что необходимости в подобных ухищрениях нету. Но SSD или хотябы возможность им обзавестись есть не у всех и не всегда.

Поделиться комментарием


Ссылка на комментарий

Создайте аккаунт или войдите в него для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!

Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.

Войти сейчас

  • Сейчас на странице   0 пользователей

    Нет пользователей, просматривающих эту страницу.

×