Discuz!官方免费开源建站系统

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索

实战开心农场之apache,sql优化!【1113更新】

[复制链接]
paopaozu 发表于 2009-11-12 13:04:41 | 显示全部楼层 |阅读模式
UCHome插件
语言编码:  
插件名称:
插件作者:
适用版本: UCHome 2.0
本帖最后由 paopaozu 于 2009-11-13 18:15 编辑

本贴讨论中服务器皆已hp dl360 g5 作为参考:(不在赘述)
基本配置:e5130 2.0g 至强 ,2g内存,3个146gb光纤硬盘raid5

1、安装win2003操作系统,选择连接时选择5000
2、修改httpd.conf文件,找到threadsperchild这一行,修改成这个样子
ThreadsPerChild 50000
MaxRequestsPerChild  0
3、修改httpd-mpm.conf文件,找到maxclients这一行,将所有的后面的数值改为500
MaxClients              500
4、修改sql下my.ini文件,找到max_connections这一行,将后面数值改为1500
5、修改sql下my.ini文件,找到wait_timeout这一行,修改后面数值为15
6、优化mysql缓存为小于2g
本配置经验证可在3000注册用户,同时在线350人下稳定运行,其他更大的压力测试进行中,偶的农场从6日开始运行,截止12日中午13点,在线352人,80个好友农场下稳定,230个好友下速度较慢,但可以接受,偶尔有sql连接失效情况,cpu占用15%-24%之间,因没有达到更多的同时在线用户,本配置还有修改余地,抛砖引玉,各大高手指教了!



20091113关于sql优化的问题的延续,今早发现很多用户连接不上sql服务器,此时用户数量上升至400+,处理一天,终获解决
1、问题一,sql数据库默认的my.ini文件中设置最大连接数无效,最大连接数这是再大也没用
首先,进入sql服务的dos状态,运行cmd打开dos窗口,进入sql的字符控制界面,进入方法,进入sql的安装目录中的bin目录,运行 mysql -u root -p 命令,在随后的提示符中输入密码进入字符管理界面,运行以下三个命令,默认你就是ini控制文件写的很大,启动的时候也只有1910个连接数,起码我的服务器是这个样子。
mysql> show global variables like '%max_connections%'; 此命令获得现在服务器的最大连接数
mysql> set global max_connections=10000; 此命令修改最大连接数为10000
mysql> show global variables like '%max_connections%';查看现有的服务器最大连接数
第一个问题解决,最大连接数不受ini控制问题,但是记得这个数值最大不能超过一万六千多,否则不成。具体是一万六千多多少,偶忘了
2、问题2,系统频繁出现连接不上sql的提示,此问题只出现在win2003操作系统中,查询后得知,问题出在微软的kb967723的tcp/ip安全补丁问题上,打上此补丁后,系统只开启5000以下的端口,当然不够用了,所以频繁出现连接不上的错误。
处理方法:
————————————————————————分界线——————————————————————
两种方法:
第一种:卸载KB967723补丁
登录服务器,进入控制面板 — 添加和删除程序 — (勾选上方的“显示更新”)在里面可以看到更新的KB967723这个补丁,然后就想卸载普通软件一样卸载,卸载中会提示你,如果卸载可能导致程序运行出错,没关系,选择“是”,继续卸载。卸载完成后重启数据库服务器。
第二种:修改注册表
本方法是微软给出的修改注册表修复该Bug的的方法,原因是默认最大的临时 TCP 端口的数是 5000 适用于一节中包含的产品中。 在这些产品中添加一个新参数。 要提高临时端口的上限,请按照下列步骤操作:

启动注册表编辑器。
在的注册表中找到以下子项,然后单击 参数 : HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters
  
在 编辑 菜单上单击 新建 ,,,然后添加下面的注册表项: 数值名称: MaxUserPort
值类型: DWORD
值数据: 65534
有效范围: 5000-65534 (十进制)
默认值: 0x1388 (5000 十进制)
说明: 此参数将控制程序从系统请求任何可用的用户端口时使用的最大端口数。 通常,1024 的值和包含的 5000 之间分配临时的 (短) 端口。
  
退出注册表编辑器,并重新启动计算机。
微软原文链接:http://support.microsoft.com/kb/q196271
  
如果不会修改注册表编辑器,也可以下载补丁来执行,补丁下载地址:,下载后直接双击执行压缩包中的reg文件即可。
以上两种方法,第一种已经得到验证可以正确解决,第二种方法正在验证中。

到此,此服务器成功支持同时在线400+人玩农场游戏,速度可以接受!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
81jun 发表于 2009-11-12 13:15:17 | 显示全部楼层
不错!我来测试下
回复

使用道具 举报

careerhome 发表于 2009-11-12 13:18:12 | 显示全部楼层
必火?????????????
回复

使用道具 举报

 楼主| paopaozu 发表于 2009-11-12 14:56:12 | 显示全部楼层
顶下,昨天调试了整整一下午,搞出来的参数,不停的重启服务,最终稳定在这个状态!希望更多的人看到,当然最好是能优化下数据结构,毕竟服务器不是谁都能拿出来的,而且cpu占用有些偏高!
回复

使用道具 举报

兰色雨 发表于 2009-11-12 15:06:25 | 显示全部楼层
我的服务器,8CPU,8G内存,访问人数一般在2000左右,自从装上农场后就经常当机。刷新就好,有时会刷新好几次才正常,高手指点下怎么优化才能达到最佳。。感谢
回复

使用道具 举报

anont 发表于 2009-11-12 18:51:37 | 显示全部楼层
前排留名!!!
回复

使用道具 举报

myfreeke 发表于 2009-11-12 19:49:33 | 显示全部楼层
如果想更加多的人,就分开前端反向代理加缓存功能.反向代理使用nginx,后端APP也将APACHE修改为NGINX
回复

使用道具 举报

coldhair 发表于 2009-11-12 20:29:18 | 显示全部楼层
好办法啊,不错
回复

使用道具 举报

 楼主| paopaozu 发表于 2009-11-12 22:16:29 | 显示全部楼层
如果想更加多的人,就分开前端反向代理加缓存功能.反向代理使用nginx,后端APP也将APACHE修改为NGINX
myfreeke 发表于 2009-11-12 19:49



    这个高深了些吧?一个局域网应用,应该不用搞这么复杂吧?今天在线突破400,内存占用1.2gb,有些高!实在不成就换linux或者freebsd了!感觉问题出在数据库规划上,而不是在底层做这些,再次呼吁高人修改表结构及调用!
回复

使用道具 举报

 楼主| paopaozu 发表于 2009-11-12 22:19:09 | 显示全部楼层
我的服务器,8CPU,8G内存,访问人数一般在2000左右,自从装上农场后就经常当机。刷新就好,有时会刷新好几 ...
兰色雨 发表于 2009-11-12 15:06



     操作系统?服务软件?应用?数据库类型、版本?总要有个优化方向啊!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|Discuz! 官方站 ( 皖ICP备16010102号 )star

GMT+8, 2024-11-19 22:50 , Processed in 0.028202 second(s), 4 queries , Gzip On, Redis On.

Powered by Discuz! X3.4

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表