免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 4139 | 回复: 4
打印 上一主题 下一主题

关于 Tokyo Cabinet和memcahcd 高并发访问情况下time_wait很多求帮助... [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2009-08-15 11:29 |只看该作者 |倒序浏览
我使用了ttserver来做点击率统计.由于点击率非常大.导致服务器time_wait也很高..
[oopp@web-* ~]# netstat -n |grep TIME_WAIT |awk '/^tcp/ {print $5 }' |awk -F : ' {++S[$1]} END {for(a in S) print a, S[a]}' |sort -k 2rn |head -n 10
192.*.*.74 35779
127.0.0.1 3251
192.*.*.* 3140
192.*.*.* 584
192.*.*.* 450
192.*.*.* 322
192.*.*.* 294
主要是192.*.*.74 用于点击率统计的.
内核参数我已经修改过
但是效果还是不明显.不知道大虾有办法解决么
net.ipv4.tcp_syncookies = 1
net.ipv4.tcp_tw_reuse = 1
net.ipv4.tcp_tw_recycle = 1
net.ipv4.tcp_fin_timeout = 15
net.ipv4.tcp_keepalive_time = 300
net.ipv4.netfilter.ip_conntrack_tcp_timeout_time_wait = 30
net.ipv4.netfilter.ip_conntrack_tcp_timeout_close_wait = 15
net.ipv4.netfilter.ip_conntrack_tcp_timeout_fin_wait = 30

php 连接memcahced 不可以使用udp方式么我写了一个测试脚本
<?
error_reporting(E_ALL);
ini_set("display_errors", 1);
$tt = new Memcache();
$tt->connect( 'udp://192.168.1.33', 11212 );
$tt->set('test', 'PHP connet to memcahed');
echo $tt->get('test');
$tt->close();
?>
请大侠们帮忙看看...

论坛徽章:
0
2 [报告]
发表于 2009-08-15 14:21 |只看该作者
TC本身他有一个独占的锁,当有进程使用的时候他会让其他的进程等待,不知道TT有没有这个问题。反正在python下的tc是有这样的问题的

论坛徽章:
0
3 [报告]
发表于 2009-08-15 17:43 |只看该作者
是这个问题.我想使用udp方式连接memcahce和tt 但是貌似我的php memcache.so 不支持 udp协议...nnd
有大侠指教一下么.

论坛徽章:
0
4 [报告]
发表于 2009-08-16 11:24 |只看该作者
你可以考虑开启多个tt进程,用来使用多个tc库,按照一定的规则对他进行负载均衡。这样应该可以解决问题,至于UDP方式连接TT我没用过,不太清楚了。

论坛徽章:
1
技术图书徽章
日期:2013-12-05 23:25:45
5 [报告]
发表于 2009-08-16 13:36 |只看该作者
pecl-memcache 3.x版本才支持udp:
The pecl memcache php extension has supported for a long time the memcache session.save_handler, but with the release 3.0.x (still in beta at this time) this brings in a set of interesting features for us:
- UDP support
- Binary protocol support
- Non-blocking IO using select()
- Key and session redundancy (values are written to N mirrors)
- Improved error reporting and failover handling

Installing the php memcache module is very simple and can be done either by using distribution repositories (the version we want to use 3.0.x will probably not be available) or by using pecl or manual compilation:

Using pecl:
pecl install memcache-3.0.4
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP