51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

查看: 5297|回复: 6
打印 上一主题 下一主题

[原创] memcache set 失败过多

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2011-6-14 11:07:49 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
大家好:
     有人用过memcache 频繁的作写操作吗?
业务是这样的:
   我们一个业务要求:
    客户可以自己手动刷新自己的房源信息, 这个刷新就是更新时间,
     但是我们的客户群有2万人左右,   
     每一次刷新房源的话,可以刷新5个房源. 也就是2万*5 这么一个并发量.
     刷新的时间间隔是 3分钟:

现在出现的问题:
    刷新的数量不正确如: 一个客户刷新问题是100次,如果刷新一次,每一次刷新房源数量是5的话,他就只剩下95次了, 但是客户这个刷新次数是还是100,也就是memcache Set 失败了. 这个现象不是全部用户都这样的,只是一部分用户出现这种情况. 我们通过日志发现有部分set 失败了. 做减法操作失败了. 找了许多的资料但是都没有找到可以解决问题的办法,. 希望网络有高人指点.
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

该用户从未签到

2#
 楼主| 发表于 2011-6-14 13:14:54 | 只看该作者
针对memcache 本身,只有简单的 set , get 操作. 
 测试发现:在200 - 400 并发情况下:set 失败数为0 , get 失败率也为0; 只发现了如下的错误信息
  [Tue Jun 07 11:01:48 2011] [error] [client 10.1.71.54] connect memcache fail: 10.11.162.246:11211
[Tue Jun 07 11:01:49 2011] [error] [client 10.1.71.52] PHP Notice:  session_start(): Server 10.11.162.246 (tcp 11211) failed with: Connection timed out (110) in /data/www/vip.51f.com/manager.php on line 8

  两种类型的错误.但是这种错误很少.不知道为什么,用memcache 会有这么多的问题...唉!! 
回复 支持 反对

使用道具 举报

该用户从未签到

3#
发表于 2011-6-14 17:00:24 | 只看该作者
都是链接的问题,第一个链接失败,第二个链接超时。
因为你说的,出现的问题很少,也就说,服务程序和memcached的连接是正常的,可能是在大并发量的情况下,才会出现。不知道你用的memcached是什么版本,如果是memcached 1.4.5
你试试,启动memcached时,增加参数-t (number of threads to use),设置大点
回复 支持 反对

使用道具 举报

  • TA的每日心情
    奋斗
    2022-5-8 19:23
  • 签到天数: 137 天

    连续签到: 1 天

    [LV.7]测试师长

    4#
    发表于 2011-6-14 21:39:15 | 只看该作者
    连接数过多,超时了,没办法
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    5#
     楼主| 发表于 2011-6-17 11:20:37 | 只看该作者
    有可能是网络的原因? 通过stats 查看 , 链接数在 3000左右的, 没有达到10000 ;  机器配置是: 16cpus / 16g mem /
        现在只能怀疑是网络的原因造成的.
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    6#
     楼主| 发表于 2011-6-17 11:23:14 | 只看该作者
    本帖最后由 superfang 于 2011-6-17 11:28 编辑

    回复 3# TestFuture


        这个参数效果不太好的:  我以前做过对比: 400并发情况下, -t  1  比 -t 4 性能还要好的. 不知道为什么? 所有的硬件资源都在合理的使用范围内的.听官方文档说,如果设置的线程数量超过cpu的数量后,有可能会造成 资源争用的情况, 反而性能会有所下降的.
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    7#
     楼主| 发表于 2011-6-17 11:34:29 | 只看该作者
    回复 4# msnshow


        问题出现了: 都有解决的办法,只是现在没有找到.
       解决办法:
      1) 业务分离,将访问最多的业务单独开启一个端口, 通过压力测试, 查看stats 情况 ,将链接数失败的原因找到. 是一个业务这种现象还是多个业务都是这种情况
      2) 跟踪网络: 查看网络有没有链接不上或是ping 不通的情况.
    但是都是自己的想法, 开发有的时候几乎都不配合做. 做一点实事, 感觉真难啊....
    回复 支持 反对

    使用道具 举报

    本版积分规则

    关闭

    站长推荐上一条 /1 下一条

    小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

    GMT+8, 2024-5-9 19:27 , Processed in 0.077729 second(s), 27 queries .

    Powered by Discuz! X3.2

    © 2001-2024 Comsenz Inc.

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