Блог #ускорение

Чешская Швейцария и немного Дрездена. Паутина
Перу и Боливия. Зима-весна 2011. Дорога смерти, обрыв
Перу и Боливия. Зима-весна 2011. Солончак Уюни
Март 2017. Берлин — Роттердам — Дюссельдорф. Яблоко-глобус на стене дома в Берлине
Осень. %!s(<nil>)
Весна 2012. Германия — Франция — Италия. На побережье
Киев, лето 2009. Тут мы жили
Лавандовые поля. %!s(<nil>)
Исландия 2023. Водопад Сельфосс
Мальта, март 2014. Рыжий хозяин Мдины
Байкал, остров Ольхон, Хужир. Март 2018. Лёд
Новый год 2008 (Норвегия, Швеция, Дания). Норвегия, Нордсетер
Перу и Боливия. Зима-весна 2011. Куско, рынок
Корфу 2023.
Байкал, остров Ольхон, Хужир. Март 2018. Ольхон
Весна 2012. Германия — Франция — Италия. Город Эрки
Тайланд, Индонезия, Сингапур (зима 2010). В Сингапурском зоопарке. Попугай
Стамбул 2024. %!s(<nil>)
Мальта, март 2014. Я
Перу и Боливия. Зима-весна 2011. Дорога смерти, у пропасти
Март 2017. Берлин — Роттердам — Дюссельдорф. Дюссельдорф
Чешская Швейцария и немного Дрездена. Корни
Осень. %!s(<nil>)
Март 2017. Берлин — Роттердам — Дюссельдорф. Саморез
Тайланд, Индонезия, Сингапур (зима 2010). Собака
Тайланд, Индонезия, Сингапур (зима 2010). Боробудур
Берлин, Люббенау, Потсдам. Май 2018. Бюст в Потсдаме
Весна 2012. Германия — Франция — Италия. Джек Воробей
Байкал, остров Ольхон, Хужир. Март 2018. Восход на мысе Бурхан (ir)
Весна 2012. Германия — Франция — Италия. Лувр
Лето 2008 (Куба). Саньтяго де Куба

Ускорение выполнения команды ipfs add

В двух предыдущих постах я рассказал о том, что такое ipfs и как развернуть сайт в ipfs и, помимо этого, для эксперимента настроил раздачу своего блога через ipfs: ipfs.romka.eu.

Сайт обслуживается дешёвой виртуальной машиной, а, как оказалось, ipfs довольно прожорлив до ресурсов процессора, особенно при выполнении команды ipfs add. Несколько раз хостер просто молча прибивал мою виртуалку из-за превышения ею каких-то лимитов.

В моём случае ipfs работает в докер-контейнере, который запускается через docker compose. Поэтому я сконфигурировал запуск контейнера следующим образом, чтобы сильно ограничить потребляемые ресурсы:

  ipfs:
    image: ipfs/kubo:latest
    container_name: ipfs_container
    volumes:
      - /home/romka/ipfs:/data/ipfs
      - /var/www/romka.eu/public:/data/ipfs/public:ro
    <...>
    restart: always
    command: daemon --enable-gc --migrate=true --enable-pubsub-experiment
    cpus: 0.3
    mem_limit: 256m
    memswap_limit: 256m
    environment:
      GOMAXPROCS: 1

Теперь ipfs-процесс ограничен по ресурсам и хостер доволен, но вот команда ipfs add стала падать с ошибкой вида Error: unexpected EOF. Я не стал копать глубже, но в свете того что ошибка появилась после добавления ограничений, похоже на то что это следствие того что ОС просто прибивает процесс ipfs из-за Out of Memory error (OOM). Дальше я расскажу как мне удалось исправить эту проблему.

Читать дальше ➠