> On Mar 4, 2015, at 2:22 PM, Bora Kou <b...@zendesk.com> wrote:
> 
> Hi,
> 
> We have a 6 nodes riak cluster configured with 256 size.  We are using 
> versions 1.4.8. Occasionally, we see the server return 503 response.  Looking 
> at the log, it seems that we have a lot of warning about reading large object 
> and busy_dist_port.  The majority of the objects are less than 2MB but we do 
> have some large objects in the ranch of 5-15MB.
> 
> 
> These are the two type of log entries we consistently see across all nodes 
> when that happen:
> 
> 2015-03-04 17:53:48.149 [warning] <0.1142.0>@riak_kv_vnode:do_get_object:1299 
> Reading large object of size 5498696 from...
> 
> 2015-03-04 19:06:35.824 [info] 
> <0.95.0>@riak_core_sysmon_handler:handle_event:92 monitor busy_dist_port 
> <0.32259.1162> 
> [{initial_call,{riak_kv_get_fsm,init,1}},{almost_current_function,{gen_fsm,loop,7}},{message_queue_len,0}]
>  {#Port<0.3353>,'riak@servername...'}
> 
> The doc suggest increasing +zdbbl to deal with busy_dist_port.  But does 
> anybody have any other suggestion to what other parameters I should look at 
> to improve the situation?

Hi Bora,

Given that most of the internode communication of Riak is performed over 
Distributed Erlang, which uses a single TCP connection between nodes, storing 
large objects [3] can create throughput problems in the cluster such as head of 
line blocking [1] and filling up the Erlang’s bounded distribution buffers 
(messages are stored here waiting to be sent over the TCP connection; any 
message attempting to perform a TCP send will synchronize on this buffer) [2]. 

Increasing zdbbl increases the size of this buffer, which, if you’re system has 
the available memory is a smart choice.  Carefully balance increasing the 
distribution buffer size with available system memory, given you don’t want to 
overflow into virtual memory, which will further slow down your system.

If you’re going to be storing objects greater than 1 MB, we recommend using 
Riak CS.

- Christopher

[1] http://en.wikipedia.org/wiki/Head-of-line_blocking
[2] 
http://docs.basho.com/riak/latest/community/faqs/logs/#riak-logs-have-busy_dist_port-messages
[3] 
http://stackoverflow.com/questions/24389183/riak-returns-an-error-reading-large-object-of-size-when-a-mapreduce

Christopher Meiklejohn
Senior Software Engineer
Basho Technologies, Inc.
cmeiklej...@basho.com
_______________________________________________
riak-users mailing list
riak-users@lists.basho.com
http://lists.basho.com/mailman/listinfo/riak-users_lists.basho.com

Reply via email to