原帖由 ipaddr 于 2006-4-27 10:42 发表
MYSQL连接数过多,与PHP无关.修改一下MYSQL的配置,
原帖由 北京野狼 于 2006-4-27 10:54 发表
别用mysql_pconnect, 没什么用处
原帖由 北京野狼 于 2006-4-27 10:54 发表
别用mysql_pconnect, 没什么用处
原帖由 ipaddr 于 2006-4-27 11:17 发表
建立数据库连接的开销很大,使 用PCONNECT是能明显提升性能的.
原帖由 北京野狼 于 2006-4-27 11:24 发表
[code]对 WEB 服务器的工作和分布负载没有完全理解的读者可能会错误地理解永久连接的作用。特别的,永久连接不会在相同的连接上为您提供建立“用户会话”的能力,也不提供有效建立事务的能力。实际上,从严 ...
原帖由 sickcat2004 于 2006-4-27 11:27 发表
两位喜欢钻研的老大,我的问题好像跟pconnetc 很connetc 搞不上联系吧!!
mysql 最大能多少在线啊,估计是1000还不够 吧
原帖由 sickcat2004 于 2006-4-27 11:27 发表
两位喜欢钻研的老大,我的问题好像跟pconnetc 很connetc 搞不上联系吧!!
mysql 最大能多少在线啊,估计是1000还不够 吧
原帖由 ipaddr 于 2006-4-27 11:28 发表
我没说PCONNECT能扩展功能呀,
我只是说PCONNCECT能提升性能.没说功能会扩充.
原帖由 北京野狼 于 2006-4-27 11:30 发表
也许和pconnet有关系, 这种所谓永久链接除了耗资源意义不大。
我不大相信你的网站能并发1000个。 标准的CONNECT函数php使用完毕会close.
原帖由 夜猫子 于 2006-4-27 11:40 发表
用SHOW [FULL] PROCESSLIST看看队列里是不是有很多卡住的sql
再记录一下哪些查询时间过长的sql,大概记得是在my.cnf里设置long_query_time,在mysql manula找找The Slow Query Log看
我怀疑是你的sql效率问题导 ...
原帖由 james.liu 于 2006-4-27 12:11 发表
正好让"夜猫子"发挥了。。。呵呵
我倾向于夜猫子的高见
原帖由 北京野狼 于 2006-4-27 11:31 发表
我也没提扩展啊。
能够提升什么性能 ?
原帖由 ipaddr 于 2006-4-27 13:06 发表
用PHP打开数据库,并做查询,最后关闭,分别用PCONNECT,和CONNECT比较一下,跑一千个循环,比较一下就清楚了.
原帖由 ipaddr 于 2006-4-27 13:11 发表
一个PHP里面循环1000次,
每次都打开,查询,关闭.
要是能摸拟成1000个并发连接,就更好了.
原帖由 ipaddr 于 2006-4-27 13:08 发表
如果只是一个小网站使用这个数据库,那我也赞同夜猫子的观点,是有SQL卡住了.
很有可能是数据库设计不当,或查询使 用不当造成的.
原帖由 北京野狼 于 2006-4-27 13:12 发表
哦,问题是你为什么要在一个php 程序里面不停的连接数据库呢?
一般程序在开始连接一次就可以, 有什么php程序需要不停的重复connect.
原帖由 sickcat2004 于 2006-4-27 13:15 发表
是这样的:原来的bbs 有3000多注册用户,平均在线200人左右
新的bbs 别人不知道目录测试访问中
原帖由 ipaddr 于 2006-4-27 13:19 发表
这个MYSQL服务器,只有这个新的BBS在用吗?有没有其它的程序在连这个服务器呢?
连接太多,是指MYSQL服务器的连接太多,而不是某个数据库,
原帖由 ipaddr 于 2006-4-27 13:18 发表
大哥,这是测试呀,模拟1000次数据库连接,PCONNECT,和CONNECT的性格差距呀.
原帖由 北京野狼 于 2006-4-27 13:27 发表
你怎么换不过来逻辑呢。 不用测试,我也知道这样PCONNECT,效率高。
但是你什么程序有机会利用PCONNECT 。 除非你用php做后台的东西。
原帖由 sickcat2004 于 2006-4-27 13:25 发表
旧的在用,新的没有对外开放,原来的程序不是我开发的,有一个bbs,一个guestbook,然后公司的4个编辑都在用,
旧bbs有3000多注册用户,估计在线200人左右
原帖由 ipaddr 于 2006-4-27 13:31 发表
请问你有机会用CONNECT吗?有机会用这个,就可以考虑,是否采用PCONNECT,
PCONNECT会提高点性能,这是事实,没必要去争这个问题吧?
原帖由 sickcat2004 于 2006-4-27 13:18 发表
几个大哥大帮看下小菜鸟弱弱问那个问题,我的session会话是保存在数据库里面的,然后又硬盘缓存了一次,但是新生成的文件权限不够不能被读取导致session失效 ,有什么法子能让代码生成的文件直接有读或者写的权限 ...
原帖由 北京野狼 于 2006-4-27 13:33 发表
有机会用CONNECT, 没必要考虑PCONNECT
PCONNECT会提高点性能,不是事实。
我从未写过一个程序里面两次以上CONNECT的程序,不需要PCONNECT. 到底提高性能在那里?
原帖由 ipaddr 于 2006-4-27 13:35 发表
大哥,你脑袋真是转不过弯呢.
一个程序里用一个CONNECT,如果这个程序,被访问1000次,请问是不是连接了1000次数据库?如果用PCONNECT,是不是会提高性能?
同一个程序,谁会有几个CONNET呀/?
原帖由 北京野狼 于 2006-4-27 13:40 发表
我问过你是 一千个循环是一个php程序里面做1000次,还是循环执行1000个php程序?
如果程序被访问1000次 PCONNECT 未必是你想像的
原帖由 北京野狼 于 2006-4-27 13:42 发表
Pconnect也要看你是怎样使用php,和apache
原帖由 ipaddr 于 2006-4-27 13:42 发表
测试是在一个程序里循环1000 次,目的是模拟一个程序,被访问1000次.效果差不多.
原帖由 ipaddr 于 2006-4-27 13:44 发表
你怎么爱钻牛角尖呢,
我问问你,用跑PHP的时候,还用IIS跑?
我们只讨论一般情况下,不是所有情况,不是绝对.!!!!!!
原帖由 北京野狼 于 2006-4-27 13:44 发表
两种测试方法,效果天差地别。 1个线程或者进程,和1000个线程
原帖由 北京野狼 于 2006-4-27 13:45 发表
和IIS毫无关系,apache也不见得有用处。 你不理解PCONNECT的真正的作用
原帖由 sickcat2004 于 2006-4-27 13:49 发表
友谊第一,讨论第二
两位大哥都是我要十分感谢的对象
原帖由 北京野狼 于 2006-4-27 13:49 发表
一个线程跑1000次,和1000个线程跑一次,效果是差远了。
原帖由 ipaddr 于 2006-4-27 13:51 发表
那你是真不理解什么叫PCONNECT了,
PCONNECT的作用,就在线程退出后,连接继续保持,
原帖由 北京野狼 于 2006-4-27 13:54 发表
好了,就算你不了解线程见关系? 一个线程循环1000次至少不是并发吧。
PHP 会为向您的 WEB 服务器提出的每个 PHP 页面请求生成并结束一个 PHP 解释器线程。由于该线程会随每个请求的结束而结束,因此 ...
PHP 会为向您的 WEB 服务器提出的每个 PHP 页面请求生成并结束一个 PHP 解释器线程。由于该线程会随每个请求的结束而结束,因此任何在这个线程中利用的任何资源(例如指向 SQL 数据库服务器的连接)都会随线程的结束而关闭。在这种情况下,您使用永久连接不会获得任何地改变――因为它们根本不是永久的。
原帖由 ipaddr 于 2006-4-27 13:57 发表
这是你所说的特殊情况,
这里说了,PCONNECT不是永久连接,而是等于CONNECT,而且,一般PHP和APACHE的结合方式,也不是这种吧?这是特殊情况.
我的意思是,真正的PCONNECT比CONNECT来说,是有性能优势.
原帖由 ipaddr 于 2006-4-27 13:57 发表
这是你所说的特殊情况,
这里说了,PCONNECT不是永久连接,而是等于CONNECT,而且,一般PHP和APACHE的结合方式,也不是这种吧?这是特殊情况.
我的意思是,真正的PCONNECT比CONNECT来说,是有性能优势.
原帖由 夜猫子 于 2006-4-27 12:07 发表
一旦队列开始卡住,卡1000个不是不能想象的,mysql这方面的记录不太好,总之是个可能吧,难说是主板上有虫子也说不定,楼主可以到机房瞧瞧,哈哈
原帖由 moonking1025 于 2006-4-27 14:05 发表
max_connections = 1000
这个不成,你设定这个,如果遇到攻击或者DNS反解析的时候,也会超过的
你先在能进入mysql>环境时,看看都有那些连接,如果有不认是的IP,就是你这个服务器遇到攻击了
你在启动mysq ...
原帖由 moonking1025 于 2006-4-27 14:12 发表
这个是有可能的,不是主机的问题,可以说是一个老问题了,就是域名反解析,如果解析不了,那么这个IP的连接数字会越来越高,直到饱和连接。
你用SHOW PROCESSLIST 可以看到,基本就是几个IP,或者就是一个IP ...
原帖由 moonking1025 于 2006-4-27 14:20 发表
不会吧,你要没有重启权限,那就没办法了。公司不会这么搞吧,在说重启一下,几秒的事情呀,现在如果连接数字到最大了,别人也用不了了??
原帖由 sickcat2004 于 2006-4-27 14:24 发表
公司不会这样搞,但是部门主管和系统管理员喜欢这样搞 ,我申请个权限要3天才能批下来,汗,我过会才能用,现在我改成5000战时 顶得住 就是不知道能撑到多久
原帖由 moonking1025 于 2006-4-27 14:24 发表
是这样,一般内网开发,管理员很少设置服务器的域名反解析,但mysql回去检查,你用--skip-name-resolve 这个参数可以把这个检查去掉,基本上就没问题了,如果你要我详细给你解释这个问题,呵呵,那是逼我去读mysq ...
原帖由 北京野狼 于 2006-4-27 14:26 发表
决无可能,和域名反解析毫无关系。
反解析谁呢?
原帖由 moonking1025 于 2006-4-27 14:29 发表
出现这个问题,肯定是需要其他服务器,连接这台数据库服务器,不会是本地使用,既然有远程连接,你说反解谁呢?呵呵
原帖由 moonking1025 于 2006-4-27 14:29 发表
出现这个问题,肯定是需要其他服务器,连接这台数据库服务器,不会是本地使用,既然有远程连接,你说反解谁呢?呵呵
原帖由 sickcat2004 于 2006-4-27 14:48 发表
两位大大,是远程服务器,是可以远程连接,但是是限制了ip 的,呵呵,两位老大务须多女
首先,当连接的时候本函数将先尝试寻找一个在同一个主机上用同样的用户名和密码已经打开的(持久)连接,如果找到,则返回此连接标识而不打开新连接。
其次,当脚本执行完毕后到 SQL 服务器的连接不会被关闭,此连接将保持打开以备以后使用(mysql_close() 不会关闭由 mysql_pconnect() 建立的连接)。
在使用永久连接时还有一些特别的问题需要注意。例如在永久连接中使用数据表锁时,如果脚本不管什么原因无法释放该数据表锁,其随后使用相同连接的脚本将会被永久的阻塞,使得您需要重新启动 httpd 服务或者数据库服务。另外,在使用事务处理时,如果脚本在事务阻塞产生前结束,则该阻塞也会影响到使用相同连接的下一个脚本。
欢迎光临 Chinaunix (http://bbs.chinaunix.net/) | Powered by Discuz! X3.2 |