From 443b2e0fabe9dfbe78d7fe857b29e74f7533da39 Mon Sep 17 00:00:00 2001 From: Sverker Eriksson Date: Tue, 23 Jan 2018 22:26:44 +0100 Subject: erts: Add migration options "acnl" and "acfml" acnl: Abandon Carrier Nr Limit acfml: Abandon Carrier Free block Min Limit --- erts/doc/src/erts_alloc.xml | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) (limited to 'erts/doc') diff --git a/erts/doc/src/erts_alloc.xml b/erts/doc/src/erts_alloc.xml index 8ab35851c1..0d2b89ae42 100644 --- a/erts/doc/src/erts_alloc.xml +++ b/erts/doc/src/erts_alloc.xml @@ -478,6 +478,28 @@ allocators based on the alloc_util framework, except temp_alloc (which would be pointless).

+ + acfml ]]> + + +

Abandon carrier free block min limit. A valid ]]> + is a positive integer representing a block size limit. The largest + free block in a carrier must be at least bytes large, for the + carrier to be abandoned. The default is zero but can be changed + in the future.

+

See also acul.

+
+ + acnl ]]> + + +

Abandon carrier number limit. A valid ]]> + is a positive integer representing max number of abandoned carriers per + allocator instance. Defaults to 1000 which will practically disable + the limit, but this can be changed in the future.

+

See also acul.

+
+ as bf|aobf|aoff|aoffcbf|aoffcaobf|gf|af]]> -- cgit v1.2.3 From defd43985282606e841e2bcb29ad7414080d5a80 Mon Sep 17 00:00:00 2001 From: Sverker Eriksson Date: Fri, 26 Jan 2018 18:42:32 +0100 Subject: erts: Add age order first fit allocator strategies ageffcaoff: Age First Fit Carrier, Address Order First Fit (within carrier) ageffcbf : Age First Fit Carrier, Best Fit (within carrier) ageffcaobf: Age First Fit Carrier, Address Order Best Fit (within carrier) Prefer old carriers, the older the better. --- erts/doc/src/erts_alloc.xml | 37 +++++++++++++++++++++++++++++++++++-- 1 file changed, 35 insertions(+), 2 deletions(-) (limited to 'erts/doc') diff --git a/erts/doc/src/erts_alloc.xml b/erts/doc/src/erts_alloc.xml index 0d2b89ae42..4b43836742 100644 --- a/erts/doc/src/erts_alloc.xml +++ b/erts/doc/src/erts_alloc.xml @@ -225,6 +225,33 @@ used. The time complexity is proportional to log N, where N is the number of free blocks.

+ Age order first fit carrier address order first fit + +

Strategy: Find the oldest carrier that + can satisfy the requested block size, then find a block within + that carrier using the "address order first fit" strategy.

+

Implementation: A balanced binary search tree is + used. The time complexity is proportional to log N, where + N is the number of free blocks.

+
+ Age order first fit carrier best fit + +

Strategy: Find the oldest carrier that + can satisfy the requested block size, then find a block within + that carrier using the "best fit" strategy.

+

Implementation: Balanced binary search trees are + used. The time complexity is proportional to log N, where + N is the number of free blocks.

+
+ Age order first fit carrier address order best fit + +

Strategy: Find the oldest carrier that + can satisfy the requested block size, then find a block within + that carrier using the "address order best fit" strategy.

+

Implementation: Balanced binary search trees are + used. The time complexity is proportional to log N, where + N is the number of free blocks.

+
Good fit

Strategy: Try to find the best fit, but settle for the best fit @@ -467,7 +494,8 @@ fetched, it will function as an ordinary carrier. This feature has special requirements on the allocation strategy used. Only - the strategies aoff, aoffcbf, and aoffcaobf + the strategies aoff, aoffcbf, aoffcaobf, + ageffcaoffm, ageffcbf and ageffcaobf support abandoned carriers.

This feature also requires multiple thread specific instances @@ -501,7 +529,7 @@ - as bf|aobf|aoff|aoffcbf|aoffcaobf|gf|af]]> + as bf|aobf|aoff|aoffcbf|aoffcaobf|ageffcaoff|ageffcbf|ageffcaobf|gf|af]]>

Allocation strategy. The following strategies are valid:

@@ -512,6 +540,11 @@
aoffcaobf (address order first fit carrier address order best fit) + ageffcaoff (age order first fit carrier address order first fit) + ageffcbf (age order first fit carrier best fit) + + ageffcaobf (age order first fit carrier address + order best fit) gf (good fit) af (a fit) -- cgit v1.2.3 From d1e89f8df4be7197fdab36a3e1662183a7dfe6ae Mon Sep 17 00:00:00 2001 From: Sverker Eriksson Date: Thu, 25 Jan 2018 19:05:50 +0100 Subject: erts: Add system_flags(erts_alloc,"+M?sbct *") to change sbct limit in runtime for chosen allocator type. With great power comes great responsibility. --- erts/doc/src/erlang.xml | 37 +++++++++++++++++++++++++++---------- 1 file changed, 27 insertions(+), 10 deletions(-) (limited to 'erts/doc') diff --git a/erts/doc/src/erlang.xml b/erts/doc/src/erlang.xml index 24a091073d..5f3652eeb3 100644 --- a/erts/doc/src/erlang.xml +++ b/erts/doc/src/erlang.xml @@ -6707,6 +6707,23 @@ ok + Set system flag for erts_alloc. + +

Sets system flags for + erts_alloc(3). + Alloc is the allocator to affect, for example + binary_alloc. F is the flag to change and + V is the new value.

+

Only a subset of all erts_alloc flags can be changed + at run time. This subset is currently only the flag + sbct.

+

Returns ok if the flag was set or notsup if not + supported by erts_alloc.

+
+
+ + + Set system flag fullsweep_after.

Sets system flag fullsweep_after. @@ -6725,7 +6742,7 @@ ok - + Set system flag microstate_accounting.

@@ -6738,7 +6755,7 @@ ok - + Set system flag min_heap_size.

Sets the default minimum heap size for processes. The size @@ -6753,7 +6770,7 @@ ok - + Set system flag min_bin_vheap_size.

Sets the default minimum binary virtual heap size for @@ -6770,7 +6787,7 @@ ok - + Set system flag max_heap_size. @@ -6788,7 +6805,7 @@ ok - + Set system flag multi_scheduling.

@@ -6843,7 +6860,7 @@ ok - + Set system flag scheduler_bind_type. @@ -6969,7 +6986,7 @@ ok - + Set system flag scheduler_wall_time.

@@ -6981,7 +6998,7 @@ ok - + Set system flag schedulers_online.

@@ -7009,7 +7026,7 @@ ok - + Set system flag trace_control_word.

Sets the value of the node trace control word to @@ -7023,7 +7040,7 @@ ok - + Finalize the time offset.

-- cgit v1.2.3