mirror of https://github.com/sipwise/kamailio.git
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
15 years ago | |
|---|---|---|
| .. | ||
| doc | 15 years ago | |
| Makefile | 15 years ago | |
| README | 15 years ago | |
| malloc_test.c | 15 years ago | |
README
1. malloc_test Module
Andrei Pelinescu-Onciul
iptelorg GmbH
Copyright © 2010 iptelorg GmbH
Revision History
Revision $Revision$ $Date$
__________________________________________________________________
1.1. Overview
1.2. Parameters
1.2.1. check_content
1.3. Functions
1.3.1. mt_mem_alloc(size)
1.3.2. mt_mem_free()
1.4. malloc_test RPC Functions
1.4.1. mt.mem_alloc size [unit]
1.4.2. mt.mem_free [size] [unit]
1.4.3. mt.mem_used [unit]
1.4.4. mt.mem_rnd_alloc min max total [unit]
1.4.5. mt.mem_test_start min max total min_int max_int total_time
[unit]
1.4.6. mt.mem_test_stop id
1.4.7. mt.mem_test_destroy id
1.4.8. mt.mem_test_destroy_all id
1.4.9. mt.mem_test_list [id] [unit]
1.1. Overview
This is a debugging/test module. It implements functions (both script
and rpcs) that can be used to stress the memory allocator or force
memory leaks.
Warning
This module should never be used in a production environment.
1.2. Parameters
Revision History
Revision $Revision$ $Date$
1.2.1. check_content
When doing the tests, check also for the possibility of the memory
being overwritten. When activated, the allocated memory will be filled
with a special pattern, that will be checked on free.
Default: 0 (off).
It can be changed also at runtime, via the rpc interface.
Example 1. Set check_content in the config file
modparam("malloc_test", "check_content", 1)
Example 2. Set check_content at runtime via sercmd
$ sercmd cfg.set_now_int malloc_test check_content 1
1.3. Functions
Revision History
Revision $Revision$ $Date$
1.3.1. mt_mem_alloc(size)
Allocates size bytes.
Note
This is a debugging function for simulating memory leaks or stressing
the memory allocator. It should not be used in production setups
Example 3. men_alloc usage
...
mem_alloc(1048576); # 1MB
...
1.3.2. mt_mem_free()
Frees all the memory allocated with mem_alloc() up to this point.
Note
This is a debugging function for simulating memory leaks or stressing
the memory allocator. It should not be used in production setups
Example 4. mem_free usage
...
mem_free();
...
1.4. malloc_test RPC Functions
Revision History
Revision $Revision$ $Date$
1.4.1. mt.mem_alloc size [unit]
Allocates the specified number of bytes. unit is optional and can be
one of:
* b - bytes
* k - KB
* m - MB
* g - GB
Example 5. mt.mem_alloc usage
$ sercmd mt.mem_alloc 10 k
1.4.2. mt.mem_free [size] [unit]
Frees at least size bytes from the memory allocated by other
malloc_test functions (e.g. mt.mem_alloc).
size is optional. If missing, everything will be freed.
unit is optional and can be one of:
* b - bytes
* k - KB
* m - MB
* g - GB
Example 6. mt.mem_free usage
$ sercmd mt.mem_free 1 m
1.4.3. mt.mem_used [unit]
Returns/displays how many bytes are allocated. The default unit is
bytes (for all the possible units see above).
unit is optional and can be one of:
* b - bytes
* k - KB
* m - MB
* g - GB
Example 7. mt.mem_used usage
$ sercmd mt.mem_used
9221460
1.4.4. mt.mem_rnd_alloc min max total [unit]
Allocates total_size memory, in pieces of random size between min ..
max (inclusive). unit is optional and represents the unit for all the
given sizes (see above).
Example 8. mt.mem_rnd_alloc usage
$ sercmd mt.mem_rnd_alloc 1 64 10240 k
1.4.5. mt.mem_test_start min max total min_int max_int total_time [unit]
Starts a malloc test that will take total_time to execute. Memory
allocations will be performed at intervals randomly chosen between
min_int and max_int (in ms). Each allocation will have a randomly
chosen size between min and max unit bytes. After total unit bytes are
allocated, everything is released/freed again and the allocations are
restarted. All the times are expressed in milliseconds. unit is
optional and represents the unit for all the given sizes (see above).
Several tests can be run in parallel.
Returns the test id.
Example 9. mt.mem_test_start usage
$ sercmd mt.mem_test_start 15 64 25000 128 1500 3600000 k
1
1.4.6. mt.mem_test_stop id
Stops the test indentified by id.
Example 10. mt.mem_test_stop usage
$ sercmd mt.mem_test_stop 1
1.4.7. mt.mem_test_destroy id
Destroys the test indentified by id (besides stopping it, it also frees
all the data, including the statistics).
Example 11. mt.mem_test_destroy usage
$ sercmd mt.mem_test_destroy 1
1.4.8. mt.mem_test_destroy_all id
Destroys all the running or stopped tests.
Example 12. mt.mem_test_destroy_all usage
$ sercmd mt.mem_test_destroy_all
1.4.9. mt.mem_test_list [id] [unit]
Returns/displays data about the test identified by id, or if no id is
specified, it lists all the tests (running or stopped).
unit is optional. The default is is bytes (for all the possible units
see above).
Example 13. mt.mem_test_list usage
$ sercmd mt.mem_test_list
{
ID : 2
run time (s) : 1471
remaining (s): 2128
allocations : 1749
errors : 24
overflows : 2
total alloc : 69614530
min : 15360
max : 65536
total : 25600000
}
{
ID : 1
run time (s) : 3600
remaining (s): 0
allocations : 4268
errors : 640
overflows : 4
total alloc : 144220713
min : 15360
max : 65536
total : 29696000
}