windows操作系统对mysql性能的限制
假设mysql的访问量很大,同时连接数达到上千,并发sql数量在上万。如果跑在windows2003(32位)环境下,windows本身的OS限制在哪几个方面会限制mys...
假设mysql的访问量很大,同时连接数达到上千,并发sql数量在上万。
如果跑在windows 2003(32位)环境下,windows本身的OS限制在哪几个方面会限制mysql的运行?
比如:同时打开的文件数?tcp连接数?还有?
如何监控mysql的这些数据?如何提高windows的这些容量?
不要写一些大道理,我需要具体的可操作性的建议,谢谢。 展开
如果跑在windows 2003(32位)环境下,windows本身的OS限制在哪几个方面会限制mysql的运行?
比如:同时打开的文件数?tcp连接数?还有?
如何监控mysql的这些数据?如何提高windows的这些容量?
不要写一些大道理,我需要具体的可操作性的建议,谢谢。 展开
2个回答
展开全部
个人觉得,如果有那么大的业务量,单台服务器根本就支撑不起来.并发SQL上万,那样对磁盘的IO是多大的操作啊.
在WINDOWS下,有一个很大的问题就是.windows不支持unix://域socket,这个就很限制了mysql的性能.因为就算你在windows下使用127.0.0.1连接,也要通过lo来环回.
另外,如果有那么大的并发量,出现瓶径的地方绝对不是tcp连接数,windows下我不知道,linux某个进程打开FD的数量是有限,默认好象是1024,这个可以改,windows下也应该可以该.
那么大的并发量,肯定是磁盘IO出现问题.如果真的是在MYSQL出现连接资源不够的问题,你最应该考虑的是你的程序是否出了问题.又或者是你的sql出了问题,导致有线程一直没办法回收,导致没有足够的资源.
在WINDOWS下,有一个很大的问题就是.windows不支持unix://域socket,这个就很限制了mysql的性能.因为就算你在windows下使用127.0.0.1连接,也要通过lo来环回.
另外,如果有那么大的并发量,出现瓶径的地方绝对不是tcp连接数,windows下我不知道,linux某个进程打开FD的数量是有限,默认好象是1024,这个可以改,windows下也应该可以该.
那么大的并发量,肯定是磁盘IO出现问题.如果真的是在MYSQL出现连接资源不够的问题,你最应该考虑的是你的程序是否出了问题.又或者是你的sql出了问题,导致有线程一直没办法回收,导致没有足够的资源.
追问
已有多台负载,谢谢提醒。目前磁盘IO优化得还可以。只是担心可能会遭遇OS上限限制,所以想问一下。你的回答如果能再深入些就更好了。
听说有人使用单台多个mysqld.exe进程同时工作,等等类似的方法是为了解决什么问题呢?
追答
如果你确定你的磁盘IO没有问题,而是担心连接数的问题的话,把mysql的连接数提高一点就是了么.
如果还是担心连接数的问题,可以开两个mysql实例,不过感觉不现实.我还没碰到过有这个需要的,因为一般一个mysql实例的连接数还没到瓶颈,磁盘就到了,哪怕你用的是raid.
其实开两个实例,能解决的问题并不多,反而可能带来其他问题,比如说,如果是myisam的,如果开了两个实例,可能会出现争夺内存的问题.因为myisam的内存,是要手动调优的.
如果说你的硬件非常犀利,你单个mysql的socket连接数已经达到了系统限制,但是硬件资源还有很多没用上,这样可以考虑多实例
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
广告 您可能关注的内容 |