> 3000个连接(1000个盒子的3个工人)(盒子最多700个连接,已经)
>重写
当前设置:
> AWS High-CPU Extra Large Instance (c1.xlarge)
> Ubuntu 10.04
> MysqL 5.5.19
> InnoDB表
配置是:my-innodb-heavy-4G.cnf.具体修改如下:
> max_connections = 65000
> innodb_buffer_pool_size = 5G
否则一切都是默认的.你们对不同的MysqL设置有什么建议?
考虑因素是:
> MysqL群集
>主/从复制(我不知道这里会有很多收获.)
我们已经在使用AWS提供的功能最强大的盒子,所以现实看来它看起来像分布式系统可能就是我们应该采用的方式.专用硬件可能是一种可能性,但这是一个很长的镜头.
你有什么建议/想想我们应该如何进行?我缺少一个神奇的配置吗?
提前致谢,
贾斯汀
解决方法
如果您偏向写入,MysqL复制(主/从,双主等)将无济于事.要进行复制,必须在所有系统上“转发/执行”写入…这很容易降低全局性能.注意:如果你有表争用(锁定整个表),复制可能很有用,但如果你使用的是innodb,我会惊讶于这种情况经常发生.此外,在危机/恢复情景中节省的时间可以减轻拥有奴隶的性能成本 – 但这不是问题.
您可以研究分片的概念.与MysqL-Proxy和精心设计的LUA脚本结盟,您可以自动重写SQL查询以将写入分割到MysqL系统集群(注意AWS实例的故障率).
虽然你说这是一个很长的镜头,但应该仔细研究专用硬件选项.大多数IAAS(例如AWS / EC2)环境都准备好对读取IO进行非常大的偏见.在专用硬件上,您可以利用SSD缓存和/或存储分层.您还可以利用专用SAN,其中I / O OPS容量可根据您的特定要求进行定制.