Чрезвычайно медленная синхронизация узлов в alphanet
3 ответ
- голосов
-
- 2019-03-07
Вы можете попробовать добавить больше одноранговых узлов,если видите сообщение о слишком малом количестве узлов.Этот сценарий должен работать с алфавитом (вам необходимо установить
jq
)for j in 0 1; do for i in `curl -s "http://api.alphanet.tzscan.io/v3/network?state=running&p=$j&number=50" \ | jq -r '.[] | .point_id' | xargs`; do # handle ipv4 or ipv6 numparts=$(echo $i | awk -F: '{print NF}') basenum=$((numparts-1)) port=$(echo $i | cut -d: -f$numparts) base=$(echo $i | cut -d: -f1-$basenum) formatted="[$base]:$port" echo "Connecting $formatted..." ~/tezos/tezos-admin-client connect address $formatted done done
Благодарим создателя этого скрипта .
You could try adding more peers if you are seeing the too few peers message. This script should work for the alphanet (you need
jq
installed)for j in 0 1; do for i in `curl -s "http://api.alphanet.tzscan.io/v3/network?state=running&p=$j&number=50" \ | jq -r '.[] | .point_id' | xargs`; do # handle ipv4 or ipv6 numparts=$(echo $i | awk -F: '{print NF}') basenum=$((numparts-1)) port=$(echo $i | cut -d: -f$numparts) base=$(echo $i | cut -d: -f1-$basenum) formatted="[$base]:$port" echo "Connecting $formatted..." ~/tezos/tezos-admin-client connect address $formatted done done
Credit goes to creator of this script.
-
- 2019-03-06
Экземпляры T2 - это вычислительные экземпляры общего назначения с низкой или средней производительностью сети и не оптимизированные для операций ввода-вывода (IOPS).Для всех аккаунтов Tezos очень интенсивно требует ввода-вывода.
Попробуйте развернуть экземпляр с оптимизацией хранилища (H1/I3/D2),и я подозреваю,что он обеспечит лучшую производительность.
T2 instances are general purpose compute instances which have low to moderate network performance and are not optimised for Input/Output operations (IOPS). Tezos is very IO intensive by all accounts.
Try spinning up a Storage Optimised instance (H1/I3/D2) and I suspect it will provide better performance.
-
Хотя это действительно быстрее,но все же довольно медленно и часто полностью прекращает синхронизацию,когда появляется сообщение «слишком мало подключений».Средаt2 прекрасно способна синхронизировать всю цепочку блоков Ethereum за разумное время,поэтому мне трудно поверить,что Tezos настолько требовательнее,что он должен быть на несколько порядков медленнее только в тестовой сети.Здесь должен быть еще один фактор.Whilst this is indeed faster, it's still pretty slow, and frequently stops syncing entirely when the 'too few connections' message pops up. A t2 medium is perfectly capable of syncing the entire ethereum blockchain in reasonable time, so I have a hard time believing Tezos is so much more demanding that it should be orders of magnitude slower on just the testnet. There must be another factor at play here.
- 0
- 2019-03-07
- AndyK
-
Я согласен,что это не должно быть так,как бы интенсивно это ни было.Сообществу было бы полезно провести несколько тестов,чтобы определить,какой тип IOPS нужен для полной синхронизации.I agree it shouldn't be the case it is that intensive however it seems to be. The community would benefit from some benchmarks being run to determine actually what sort of IOPS does a full sync need.
- 0
- 2019-03-07
- xtzbaker
-
Один пекарь сказал мне,что AWSi3.larges - самые эффективные инстансы для узлов Tezos,особенно для выпечки из-за высокой производительности твердотельных накопителей NVMe.Я также обнаружил,что производительность диска обычно является узким местом на VPS.I was told by a baker that AWS i3.larges are the most effective instances for Tezos nodes, especially for baking due to the great performance of NVMe SSDs. I also found that disk performance usually is the bottleneck on a VPS.
- 0
- 2019-03-21
- cryptodad
-
- 2019-03-07
решение: изменение типа экземпляра
при синхронизации узла для Alphanet я пробовал несколько экземпляров: от T2.micro до T3.xlarge.
В какой-то момент я подумал,что здесь может сыграть роль размер ОЗУ или производительность сети. Но даже экземпляр T3.xlarge не обеспечил быструю синхронизацию всего узла.
Что действительно помогло,так это периодическая смена типов экземпляров. Вы могли заметить,что узел синхронизируется намного быстрее в самом начале,когда он только запускался. Потом,через некоторое время,снова стало очень медленно.
Я заметил,что даже более крупный тип инстанса AWS не позволит вам быстро завершить эту операцию за один прием.
План может быть следующим:
- Остановите пекаря,индоссатора,обвинителя,а затем остановите сам узел.
- Остановить экземплярt2.medium.
- Измените тип вашего экземпляра наt2.small
- Запустите экземплярt2.small.
- Запустите узел,а затем пекарь,индоссант,обвинитель. При запуске эти процессы не забывают перенаправлять вывод в файлы журнала соответственно:tezos.log,baker.log,endorser.log и accuser.log
- Начните следить за тем,как быстро новые блоки синхронизируются с новым
пример. Используйте
tail -f tezos.log
. Вы должны запомнить блок этого нового экземпляра началось с - Оставьте это на время в покое. Вы можете прийти позже и посмотреть,сколько блоков было синхронизировано с момента запуска узла. Если я правильно помню,он может очень быстро синхронизироваться до 10 000 блоков или около того,хотя это зависит от выбранного вами экземпляра. Например,вместоt2.small вы могли выбратьt2.large.
- Когда процесс синхронизации со временем замедлится,повторите операцию еще раз. На этот раз перейдите сt2.small наt2.medium. Это даст вам еще 10k блоков,которые будут быстро синхронизированы.
Этот подход сработал,хотя и потребовал некоторого ручного вмешательства.
PS: для получения лучших результатов в качестве изменяющейся пары можно использоватьt2.large +t2.medium,а неt2.small +t2.medium,как описано выше. Но разница будет незначительной.
solution : instance type changing
while syncing the node for Alphanet I have tried multiple instances : from T2.micro to T3.xlarge.
At some point I thought that RAM size or Network performance may play a role here. But Even T3.xlarge instance did not bring the whole node synced fast.
What really helped is changing the instance types periodically. You may have noticed that node is syncing much faster in very beginning, when it just started. Then, after some time, it became very slow again.
I've made an observation that even bigger AWS instance type won't allow you to finish this operation fast in one take .
The plan may be:
- Stop the baker, endorser, accuser and then stop the node itself
- Stop the t2.medium instance
- Change the type of your instance to t2.small
- Start the t2.small instance
- Start the node and then baker, endorser, accuser. While starting these processes do not forget to redirect the output to log files respectively: tezos.log, baker.log, endorser.log and accuser.log
- Start watching how fast new blocks are getting synced on a new
instance. Use
tail -f tezos.log
. You have to remember the block that new instance has started from - Leave it alone for sometime. You may want to come later and see how many blocks have been synced since you started the node. If I recall correctly, it may sync very fast up to 10 000 blocks or so, though it depends on the instance you have chosen. Instead of t2.small, you may have selected t2.large for instance.
- When sync process will eventually slow down, repeat operation again. This time migrate from t2.small to t2.medium. It will give you another 10k blocks synced fast.
This approach worked, though it required some manual interventions.
PS: for better results you may use t2.large + t2.medium as a changing pair, not t2.small + t2.medium as described above. But the difference won't be significant.
-
Я подозреваю,что причина,по которой вы видите начальную хорошую производительность на экземплярах TX,которые медленно деградируют,заключается в том,что эти типы экземпляров спроектированы таким образом,чтобы они могли временно увеличивать свои операции ввода-вывода и ЦП,чтобы справиться с небольшими периодами повышенной активности.Это называется разрывом и длится непродолжительное время,прежде чем вернуться к более посредственным характеристикам.Для устойчивой нагрузки ввода-вывода или ЦП требуется другой тип инстанса.Это,безусловно,относится к синхронизации узлов.I suspect the reason you see initial good performance on the TX instances that slowly degrades is because these instance types are designed so they can temporarily increase their IO and CPU to deal with small periods of increased activity. This is called bursting and only lasts for a short time before reverting to a more mediocre performance. For sustained IO or CPU load a different instance type is required. This would certainly be the case for a node sync.
- 0
- 2019-03-07
- xtzbaker
-
Получение следующей ошибки с использованием приведенной выше БД Alphanet: 7 марта 09:25:47 -node.main: запуск узла Tezos ... 7 марта,09:25:47 -node.main: локального однорангового обнаружения нет. 7 марта 09:25:47 -node.main: глобальный идентификатор пира:idrJtoLevBnyf6ZzUqcmyGBFKUssa7 7 марта 09:25:47 -node.worker: цепочка начальной загрузки ... tezos-node: Ошибка: В магазине отсутствует ключ: chain/8eceda2f/genesis/hashReceiving the following error using the Alphanet DB above: Mar 7 09:25:47 - node.main: Starting the Tezos node... Mar 7 09:25:47 - node.main: No local peer discovery. Mar 7 09:25:47 - node.main: Peer's global id: idrJtoLevBnyf6ZzUqcmyGBFKUssa7 Mar 7 09:25:47 - node.worker: bootstrapping chain... tezos-node: Error: Missing key in store: chain/8eceda2f/genesis/hash
- 0
- 2019-03-07
- AndyK
Итак,я установил узел Tezos на экземпляре AWS EC2t2.medium.Я выполнил инструкции здесь ,но дляalphanet вместоmainnet.
Я дошел до: ./tezos-node запустить --rpc-addr: 8732
Он работает и синхронизируется,но ОЧЕНЬ медленно.За пару часов работы данные,возвращаемые из «clientget timestamp»,продвинулись вперед всего на день или два.Я также часто получаю сообщения вроде p2p.mainmaintenance: слишком мало соединений (5)
Я попытался открыть ВСЕ порты для входа и выхода из экземпляра,чтобы убедиться,что трафик не блокируется.Это не имеет значения.Что случилось?Что мне нужно изменить?