SELECT
( @@key_buffer_size + @@query_cache_size + @@tmp_table_size
+ @@max_connections * (
@@read_buffer_size + @@read_rnd_buffer_size + @@sort_buffer_size
+ @@join_buffer_size + @@binlog_cache_size + @@thread_stack
) ) / 1024/1024/1024 AS MAX_MEMORY_GB
실제메모리사용량 (Actual Used Physical Memory) "Mem: total -(free + buffers + cached) buffers/cache: used"
실제메모리 사용률 ( total - free - buffers - cached) / total (total - buffer/cashe: free) /total"
기본적을 Connection의 메모리 사용량은
Connection 안에 read_buffer_size , read_buffer_size , read_rnd_buffer_size ,sort_buffer_size,join_buffer_size , binlog_cache_size , thread_stack 으로 구성 되어 있어서 설정 값 모두 더한 후 connection 수를 곱하면 됩니다.
항목 | Default(K) | 설정(M) | 내용 |
read_buffer_size | 256 | 2 | Disk 에서 메모리로 전송 할 Buffer Size |
read_rnd_buffer_size | 256 | 4 | Table Scan , orderby 시 sort_buffer_size 사이즈 넘경우 file로 기록 하고 |
sort_buffer_size | 256 | 4 | sort 할때 사용하는 메모리 사이즈 |
join_buffer_size | 128 | 4 | join 할때 사용하는 메모리 사이즈 NL JOIN 사용할때 이용 |
binlog_cache_size | 32 | 4 | # 2M ~ 8M Default 32K |
thread_stack | 256 | 0.25 | Sp 재귀호출시 사용 |
connection 수 | 메모리(Default) | 메모리(설정값) | 요구메모리량 |
1000 | 1.1G | 17G | 32G |
2000 | 2.2G | 35G | 64G |
3000 | 3.4G | 53G | 96G |
4000 | 4.6G | 73G | 128G |