mysql的服务器内存64G,请教优化配置

myplease 发布于 2012/06/19 08:26
阅读 5K+
收藏 0

目前是用作一台纯数据库服务器,单机多实例设置主从,然后hugepages为32G

现在不知道该如何去优化这个my.cnf,晚上查到一个最大内存的使用量查询方法,结果出来的结果是5G都不到,

贴上mysqld1的配置,求优化

skip-external-locking

key_buffer_size = 1024M

max_allowed_packet = 32M

table_open_cache = 512

sort_buffer_size = 2M

read_buffer_size = 2M

read_rnd_buffer_size = 8M

myisam_sort_buffer_size = 128M

thread_cache_size = 8

query_cache_size = 64M

thread_concurrency = 24

skip-name-resolve

skip_slave_start = 1

log-bin = /path/binlogs/mysqld-bin

log-bin-index =  /path/binlogs/mysqld-bin.index

server-id = 1

binlog_format=mixed

expire-logs-days = 21

加载中
0
壮哉我大东北
壮哉我大东北
访问mysqltuner.pl下载脚本自动配置
皮总
皮总
回复 @hellokitty1 : perl 的,我拿来玩了一下,这工具能给一些建议
m
myplease
执行成功,生成的东西在哪- -
m
myplease
需要什么前提么? python 或者 sh都无法执行成功
0
鉴客
鉴客

这配置太奢侈了!!!!

问题是你需要这么大的配置吗?如果实际只需要 5G,那么查出来 5G 也正常啊

看看系统的负载怎样呢?

鉴客
鉴客
回复 @hellokitty1 : 没上线的系统占用这点内存正常吧
m
myplease
还没上线了,如何去测试系统负载呢?
0
K_Tao
K_Tao
至少上线前应该做个压力测试吧?你系统设计的指标至少在需求时就应该大致明确了啊,比如用户规模,并发量,表数据量等等...如果前期只重功能埋头写代码,后面再来优化,时间精力不比写代码少...
m
myplease
这个道理也是明白的,现在就在压力测试,悲催的dz7.2
0
皮总
皮总
skip-external-locking

key_buffer_size = 20480M

max_allowed_packet = 32M

table_open_cache = 2048

sort_buffer_size = 256M

read_buffer_size = 256M

read_rnd_buffer_size = 128M

myisam_sort_buffer_size = 512M

thread_cache_size = 32

query_cache_size = 2048M

thread_concurrency = 24

max_connections = 4096

tmp_table_size = 64M

skip-name-resolve

skip_slave_start = 1

log-bin = /path/binlogs/mysqld-bin

log-bin-index =  /path/binlogs/mysqld-bin.index

server-id = 1

binlog_format=mixed

expire-logs-days = 21

m
myplease
回复 @皮总 : 什么都瞒不过皮总,还想凑合跑一个redis
皮总
皮总
两个都跑满也才 40G ,你还要24G 做其他事情呢
m
myplease
皮总,mysql-hugepages为32G,另外运行两个实例,key_buffer_size设20个G,会不会有啥影响?
0
m
myplease

引用来自“皮总”的答案

skip-external-locking

key_buffer_size = 20480M

max_allowed_packet = 32M

table_open_cache = 2048

sort_buffer_size = 256M

read_buffer_size = 256M

read_rnd_buffer_size = 128M

myisam_sort_buffer_size = 512M

thread_cache_size = 32

query_cache_size = 2048M

thread_concurrency = 24

max_connections = 4096

tmp_table_size = 64M

skip-name-resolve

skip_slave_start = 1

log-bin = /path/binlogs/mysqld-bin

log-bin-index =  /path/binlogs/mysqld-bin.index

server-id = 1

binlog_format=mixed

expire-logs-days = 21

2584.2734GB。。。

SET @kilo_bytes = 1024;
SET @mega_bytes = @kilo_bytes * 1024;
SET @giga_bytes = @mega_bytes * 1024;
SET @innodb_buffer_pool_size = 2 * @giga_bytes;
SET @innodb_additional_mem_pool_size = 16 * @mega_bytes;
SET @innodb_log_buffer_size = 8 * @mega_bytes;
SET @thread_stack = 192 * @kilo_bytes;
SELECT
( @@key_buffer_size + @@query_cache_size + @@tmp_table_size
+ @innodb_buffer_pool_size + @innodb_additional_mem_pool_size
+ @innodb_log_buffer_size
+ @@max_connections * (
@@read_buffer_size + @@read_rnd_buffer_size + @@sort_buffer_size
+ @@join_buffer_size + @@binlog_cache_size + @thread_stack
) ) / @giga_bytes AS MAX_MEMORY_GB;
0
猪脑壳
猪脑壳

引用来自“Cicku”的答案

访问mysqltuner.pl下载脚本自动配置
自己编译的MYSQL如何使用呢?谢谢。。
壮哉我大东北
壮哉我大东北
自己编译的一样啊,这个脚本只是生成配置文件,你自己复制一份就可以了
0
猪脑壳
猪脑壳

引用来自“猪脑壳”的答案

引用来自“Cicku”的答案

访问mysqltuner.pl下载脚本自动配置
自己编译的MYSQL如何使用呢?谢谢。。

主要是运行时提示:

./mysqltuner.pl 

 >>  MySQLTuner 1.2.0 - Major Hayden <major@mhtx.net>

 >>  Bug reports, feature requests, and downloads at http://mysqltuner.com/

 >>  Run with '--help' for additional options and output filtering

which: no mysqladmin in (/usr/lib64/qt-3.3/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin)

[!!] Unable to find mysqladmin in your $PATH.  Is MySQL installed?

[root@www bin]# 

 

壮哉我大东北
壮哉我大东北
可能需要手动指定你的mysqladmin位置
0
壮哉我大东北
壮哉我大东北
好像自动修改了。。。。我好久没用这个脚本了。。。。。因为我部署服务器很长时间了。。。您要不自己看看提示信息?
0
猪脑壳
猪脑壳

引用来自“Cicku”的答案

好像自动修改了。。。。我好久没用这个脚本了。。。。。因为我部署服务器很长时间了。。。您要不自己看看提示信息?
恩,只好做了一个ln -s 解决问题,谢谢你。
返回顶部
顶部