DB需要分配合理的mysql, 分配少了容易造成资源浪费,未充分利用资源,影响性能;分配多了会使用到swap从而影响性能,甚至OOM;
操作系统内存 = mysql 内存占用 + 操作系统使用内存
mysql内存 = 全局分配内存 + (session级别内存占用) x 最大会话数
计算摘自《Mysql拍错指南》
set names utf8;
use test;
drop procedure if exists sp_mem;
delimiter //
create procedure sp_mem()
begin
select (@@query_cache_size +
@@innodb_additional_mem_pool_size +
@@key_buffer_size +
@@innodb_buffer_pool_size +
@@innodb_log_buffer_size
)/1024/1024 as ' global memory size(MB) ';
select @@max_connections as 'connections';
select (@@global.net_buffer_length +
@@thread_stack +
@@global.query_prealloc_size +
@@global.read_rnd_buffer_size +
@@global.sort_buffer_size +
@@global.myisam_sort_buffer_size +
@@global.bulk_insert_buffer_size +
@@global.preload_buffer_size +
@@binlog_cache_size +
@@binlog_stmt_cache_size
)/1024/1024 as 'sesstion(MB)';
end
//
delimiter ;
call sp_mem();