Riak съедает 100% CPU при установке OSX

Этот вопрос связан с:

Узел Riak не работает, но использует 100% ЦП

но так как плакат, кажется, ушел, я публикую здесь свой случай.

Вчера вечером я установил erlang (R15B01) из исходников, используя параметры конфигурации с веб-сайта Riak:

http://docs.basho.com/riak/1.2.1/tutorials/installation/Installing-Erlang/#Installing-on-Mac-OS-X

и Riak (1.4.1) на моем MacBook Pro 2013 года (i7 2,8 ГГц, 16 ГБ оперативной памяти, OSX 10.8.3). Я не менял ulimit, так как предполагал, что он подойдет для ванильного прогона.

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

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

Просматривая журналы, я вижу следующую ошибку, повторяющуюся миллион раз:


2013-10-11 09:04:04.266 [error]  CRASH REPORT ¥
 Process  with 0 neighbours exited with reason: ¥
 call to undefined function eleveldb:o

также множество отчетов о сбоях:


2013-10-11 09:14:47 =CRASH REPORT====
  crasher:
    initial call: riak_kv_index_hashtree:init/1
    pid: 
    registered_name: []
    exception exit: {{undef,[{eleveldb,open,
["./data/anti_entropy/479555224749202520035584085735030365824602865664",
[{create_if_missing,true},{max_open_files,20},{write_buffer_size,12886952}]],[]},
{hashtree,new_segment_store,2,[{file,"src/hashtree.erl"},{line,499}]},{hashtree,new,2,
[{file,"src/hashtree.erl"},{line,215}]},{riak_kv_index_hashtree,do_new_tree,2,
[{file,"src/riak_kv_index_hashtree.erl"},{line,421}]},{lists,foldl,3,[{file,"lists.erl"},
{line,1197}]},{riak_kv_index_hashtree,init_trees,2,[{file,"src/riak_kv_index_hashtree.erl"},
{line,366}]},{riak_kv_index_hashtree,init,1,[{file,"src/riak_kv_index_hashtree.erl"},
{line,226}]},{gen_server,init_it,6,[{file,"gen_server.erl"},{line,304}]}]},
[{gen_server,init_it,6,[{file,"gen_server.erl"},{line,328}]},{proc_lib,init_p_do_apply,3,
[{file,"proc_lib.erl"},{line,227}]}]}
    ancestors: [,riak_core_vnode_sup,riak_core_sup,]
    messages: []
    links: []
    dictionary: []
    trap_exit: false
    status: running
    heap_size: 987
    stack_size: 24
    reductions: 492
  neighbours:

erlang.log говорит


=====
===== LOGGING STARTED Fri Oct 11 09:04:01 CEST 2013
=====
Node '[email protected]' not responding to pings.
config is OK
!!!!
!!!! WARNING: ulimit -n is 2560; 4096 is the recommended minimum.
!!!!
Exec: /tmp/riak-1.4.1/rel/riak/bin/../erts-5.9.1/bin/erlexec 
-boot /tmp/riak-1.4.1/rel/riak/bin/../releases/1.4.1/riak
-config /tmp/riak-1.4.1/rel/riak/bin/../etc/app.config
-pa /tmp/riak-1.4.1/rel/riak/bin/../lib/basho-patches
-args_file /tmp/riak-1.4.1/rel/riak/bin/../etc/vm.args -- console
Root: /tmp/riak-1.4.1/rel/riak/bin/..
Erlang R15B01 (erts-5.9.1) [source] [64-bit] [smp:8:8] [async-threads:64]
 [kernel-poll:true]

Eshell V5.9.1  (abort with ^G)
([email protected])1>

Менее чем через 10 м уже есть 144 МБ файлов журналов с вариантами выше.


person si28719e    schedule 11.10.2013    source источник
comment
Я думаю, вам, возможно, придется переустановить свой риак, на этот раз убедитесь, что все зависимости доступны   -  person Muzaaya Joshua    schedule 12.10.2013
comment
в документации сказано, что eleveldb включен по умолчанию, а на странице riak нет дополнительной информации о том, как его установить.   -  person si28719e    schedule 12.10.2013
comment
Какие ошибки можно найти в файле error.log?   -  person Christian Dahlqvist    schedule 12.10.2013
comment
Единственное, что я заметил, это отсутствие leveldb в верхней части моего поста. это из error.log. подробности об этом, по-видимому, есть в crash.log, который является второй цитатой из моего сообщения выше. я думаю, leveldb по какой-то причине не установлен?   -  person si28719e    schedule 13.10.2013


Ответы (2)


У меня была такая же проблема при сборке riak 1.4.6 из исходников.

Я изменил в файле etc / app.config строку на

{anti_entropy, {off, []}},

Leveldb используется AAE. См. Параметр конфигурации anti_entropy_leveldb_opts.

person Ron    schedule 01.01.2014

Используйте процесс устранения:

Без дополнительной информации сложно сказать. Используется ли 200% beam.smp? Вы видите что-нибудь в console.log, error.log или crash.log, что указывало бы на то, что происходит что-то странное? Обмениваются ли в данный момент клиенты с кластером? Если да, то какой клиент / протокол они используют и какие операции выполняются (например, get / put / map reduce / и т. Д.)?

Ссылки

person Community    schedule 10.12.2013