summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorMatthew Sackman <matthew@lshift.net>2009-07-06 11:50:28 +0100
committerMatthew Sackman <matthew@lshift.net>2009-07-06 11:50:28 +0100
commit87f54b87942e72ed663ea2272ee49d835e4605c8 (patch)
tree96638a9340fd91ec017dd1d6344b5f030094b0bc /src
parente5962c4232be43111fb7ca4a60fa0360f49ee9f5 (diff)
downloadrabbitmq-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.erl2
-rw-r--r--src/rabbit_mixed_queue.erl2
-rw-r--r--src/rabbit_queue_mode_manager.erl4
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,