Биткойн-демон, занимающий более 581 МБ памяти и 35 подключений

2549
jaz

При 35 подключениях мой биткойн потребляет 581 МБ памяти, что составляет более половины всей моей памяти в VPS (всего 1024), и мне также нужна память для других служб, таких как apache2 и mysql на моем сервере. Могу ли я предпринять какие-либо шаги, чтобы ограничить ресурсы, используемые биткойндом, округлым числом до 256 Мб, не ограничивая при этом способность биткойнда функционировать должным образом? Я полагаю, я могу ограничить количество макс. Входящих / исходящих соединений в bitcoin.conf, но что тогда будет хорошим лимитом?

0
Это неуместный тон ответа, и он говорит о процессе демона. Я считаю ограничение памяти процессов-демонов очень актуальным. Никто обычно не исследует это с настольными приложениями. Он должен быть перенесен обратно на сервер ... Jeff Ferland 12 лет назад 0
Согласитесь, следует вернуться к serverfault. В любом случае - как вы измеряете потребленную / использованную память? Можете ли вы рассказать нам больше об ОС и других конфигах? EightBitTony 12 лет назад 1
ОС - это Ubuntu server 11.04 (не лучший выбор, который я знаю). Я использовал панель управления openvz (shared kernel 2.6.18), предоставленную хостинговой компанией, чтобы убедиться, что используется слишком много памяти. Затем я использовал «top», чтобы сначала идентифицировать процесс, потребляющий большинство ресурсов. Затем я использовал «pmap -x» с биткойн-pid, чтобы увидеть, сколько именно он использует. В основном я использовал все команды, которые должен знать каждый владелец компьютера, возможно, поэтому он был перенесен с serverfault на superuser. jaz 12 лет назад 0
@jaz Я знаю, что это было несколько лет, но только для справки: Ваш комментарий выше не дает полезной информации. Какое поле в топе? Что вы видели в `pmap -x`? Физическая память или виртуальная память? David Schwartz 9 лет назад 0

3 ответа на вопрос

0
Jeff Ferland

Посмотрите на https://stackoverflow.com/questions/4983120/limit-memory-usage-for-a-single-linux-process

Я думаю, что softlimit как программа-обертка - это то, что вам нужно использовать. Без проверки я не знаю, приведет ли это к обмену или просто убьет его.

убивать процесс плохо, если программное обеспечение, на котором он запущен, стабильно. Похоже, OpenVZ VPS также не предоставляет места подкачки (используется команда «free»), так что, похоже, мне здесь не повезло. jaz 12 лет назад 0
Я более внимательно посмотрел на флаги - я думаю, что вы можете отделить реальные ограничения памяти от общих ограничений памяти, поэтому он должен поменяться. Jeff Ferland 12 лет назад 0
0
starkers

Вы можете настроить mysql и apache, чтобы использовать работу с гораздо меньшим количеством оперативной памяти, чем их значения по умолчанию, хотя это иная тема, и, очевидно, она может не быть опцией (основанной) на объеме вашего трафика и т. Д ...

... bitcoind

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

Я бы предложил добавить это в ваш ~ / .bitcoin / bitcoin.conf, чтобы хотя бы ограничить количество сессий:

MaxConnections = 8

(используйте больше, если вы хотите синхронизировать весь блокчейн (с нуля) быстрее, а затем уменьшите его, хотя я не уверен, как / если это повлияет на его след.)

У меня сейчас работает версия 80600, 8 подключений и работает (RSS) около 320M

Я думаю, что биткойн всегда будет нуждаться в большом количестве или оперативной памяти ... ( https://github.com/bitcoin/bitcoin/issues/2485 ) ...

Мне было бы интересно узнать, что можно узнать о сокращении памяти. Я сам начну исследовать это. (Я использую более 10 монет на сервере, который я размещаю, и мне просто пришлось увеличить его оперативную память до 4g, так как она менялась везде, так что было бы полезно знать)

На данный момент я предлагаю несколько настроек для mysqld и apache. Существует множество вариантов. Для mysqld проверьте mysqltuner.pl и начните сталкиваться с числами (для этого есть множество учебных пособий, но я предлагаю небольшие изменения за раз)

..это из сравнительно небольшого mysqld, который я запускаю на одной из своих виртуальных машин (Debian 6), сейчас он занимает около 128 МБ (но потенциально может достигать 164 МБ) ..

пример:

[mysqld] key_buffer = 16K max_allowed_packet = 1M table_cache = 4 sort_buffer_size = 64K read_buffer_size = 256K read_rnd_buffer_size = 256K net_buffer_length = 2K thread_stack = 64K query_cache_limit = 1M query_cache_size = 16M  [mysql] [isamchk] key_buffer = 8M sort_buffer_size = 8M 

^^ (Если mysqld может работать на Raspberry Pi, это может быть еще больше уменьшено)

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

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

0
Cody Moniz

Bitcoind использует тонну памяти, пока загружает блокчейн. Проверьте, как правильно настроить пространство подкачки в Ubuntu:

https://www.digitalocean.com/community/tutorials/how-to-add-swap-on-ubuntu-14-04

Кроме того, вы можете проверить торрент-загрузку блокчейна. Пока вы доверяете файлу, это может помочь ускорить время загрузки блокчейна.

http://sourceforge.net/projects/bitcoin/files/Bitcoin/blockchain/bootstrap.dat.torrent/download