diff options
| author | Matthew Sackman <matthew@lshift.net> | 2009-07-06 11:50:28 +0100 |
|---|---|---|
| committer | Matthew Sackman <matthew@lshift.net> | 2009-07-06 11:50:28 +0100 |
| commit | 87f54b87942e72ed663ea2272ee49d835e4605c8 (patch) | |
| tree | 96638a9340fd91ec017dd1d6344b5f030094b0bc /src | |
| parent | e5962c4232be43111fb7ca4a60fa0360f49ee9f5 (diff) | |
| download | rabbitmq-server-git-87f54b87942e72ed663ea2272ee49d835e4605c8.tar.gz | |
testing shows these values work well. The whole thing works pretty well. Obviously, converting a mixed queue to disk does take some time and the values are deliberately set low to save memory because on this transition, the disk_queue mailbox will go insane and eat lots of memory very quickly. But it seems about the right balance. I'll add documentation next
Diffstat (limited to 'src')
| -rw-r--r-- | src/rabbit_disk_queue.erl | 2 | ||||
| -rw-r--r-- | src/rabbit_mixed_queue.erl | 2 | ||||
| -rw-r--r-- | src/rabbit_queue_mode_manager.erl | 4 |
3 files changed, 4 insertions, 4 deletions
diff --git a/src/rabbit_disk_queue.erl b/src/rabbit_disk_queue.erl index 6674ce0e4d..84fbd76018 100644 --- a/src/rabbit_disk_queue.erl +++ b/src/rabbit_disk_queue.erl @@ -518,7 +518,7 @@ handle_cast({set_mode, Mode}, State) -> end)(State)); handle_cast(report_memory, State) -> Bytes = memory_use(State), - rabbit_queue_mode_manager:report_memory(self(), Bytes), + rabbit_queue_mode_manager:report_memory(self(), 2 * Bytes), noreply(State). handle_info({'EXIT', _Pid, Reason}, State) -> diff --git a/src/rabbit_mixed_queue.erl b/src/rabbit_mixed_queue.erl index d9c4689851..df241a6db8 100644 --- a/src/rabbit_mixed_queue.erl +++ b/src/rabbit_mixed_queue.erl @@ -541,7 +541,7 @@ is_empty(#mqstate { length = Length }) -> estimate_queue_memory(#mqstate { memory_size = Size, memory_gain = Gain, memory_loss = Loss }) -> - {Size, Gain, Loss}. + {4 * Size, Gain, Loss}. reset_counters(State) -> State #mqstate { memory_gain = 0, memory_loss = 0 }. diff --git a/src/rabbit_queue_mode_manager.erl b/src/rabbit_queue_mode_manager.erl index 30695404c3..ea4633e6a4 100644 --- a/src/rabbit_queue_mode_manager.erl +++ b/src/rabbit_queue_mode_manager.erl @@ -87,7 +87,7 @@ init([]) -> process_flag(trap_exit, true), %% todo, fix up this call as os_mon may not be running {MemTotal, MemUsed, _BigProc} = memsup:get_memory_data(), - MemAvail = (MemTotal - MemUsed) / 3, %% magic + MemAvail = MemTotal - MemUsed, {ok, #state { available_tokens = ?TOTAL_TOKENS, mixed_queues = dict:new(), callbacks = dict:new(), @@ -128,7 +128,7 @@ handle_call(info, _From, State) -> { lowrate_queues, priority_queue:to_list(Lazy) }, { hibernated_queues, queue:to_list(Sleepy) }], State1}. - + handle_cast({report_memory, Pid, Memory, BytesGained, BytesLost, Hibernating}, State = #state { mixed_queues = Mixed, available_tokens = Avail, |
