云计算之路-阿里云上:受够了OCS,改用ECS+Couchbase跑缓存

当今天早上在日志中发现这样的错误之后,对阿里云OCS(mecached缓存服务)的积怨倾泻而出。


2014-06-08 07:15:56,078 [ERROR] Enyim.Caching.Memcached.MemcachedNode
System.IO.IOException: Failed to write to the socket ‘10.160.124.220:11211‘. Error: ConnectionReset

这个问题我们4月份发现过的,当时给OCS起了个外号叫“会断连接的memcached”,用了近1个月时间才解决。这次升级后又出现了,虽然不是故意为之,但是如果是淘宝用的memcached,你们敢断连接吗?虽然这个问题后来说彻底解决了,以后不会再出现了,但是无法平息我们对OCS的不满。

细数一下OCS的罪状:

1.
每次升级都要出点问题:断连接,缓存过期时间丢失,连黑色n秒问题都是在某次OCS升级后出现的。。。这次升级后,又出现了socket读取缓存数据有时超过500ms的情况。

2.
单条缓存数据最大限制不是memcached标准的1M,而是1000000字节(比1M少了48576个字节),超过这个限制的内容没有提供缓存解决方案。

3. 缓存数据不支持压缩,而且竟然按缓存容量收费(后来我们自己在代码中压缩后再写入OCS,容量省了一半)。

4. 在我们网站的访问高峰与低峰,缓存容量相差几倍,可是OCS只能按固定容量购买,结果只好按最高峰的容量购买(最容易实现弹性计算的却弹不起来)。

5. 20G容量的OCS一个月要1100多元,而8核CPU/32G内存的云服务器一个月也不过1400多元,性价比一点不高。

6. 没有命令行接口(telnet不让连),查看/删除缓存都得要自己写代码操作。

细数之后,我们的怨气没了——这么多问题,我们还用它干吗?自己用ECS(云服务器)跑memcached也比这靠谱啊。

于是立即动手,买了2台8核16G的ECS。1台用Couchbase跑memcached,缓存除博文内容的数据(单条数据不会超过1M);1台用Couchbase跑NoSQL,缓存博文内容,超过1M的内容也能缓存(用OCS时,只能用数据库硬扛)。

部署好之后感觉良好,的确比OCS更靠谱,就连监控也比OCS方便多了。

memcached监控图:

NoSQL监控图:

telnet连上去,可以通过命令自如地进行操作。

当初对OCS的美好期待——以为推出比较晚的OCS是因为慢工出细活,现在却成了泡影。

时间: 2024-11-05 17:51:46

云计算之路-阿里云上:受够了OCS,改用ECS+Couchbase跑缓存的相关文章

云计算之路-阿里云上:对“黑色n秒”问题的最终猜想——CPU C-states引起的

如果说2013年云计算之路的主题是"踩坑",那么2014年我们希望云计算之路的主题变成"填坑"--当然填坑是阿里云来完成的,我们只是见证曾经的坑坑洼洼变成平坦大道. 15号(周四)晚上我们发现了SLB会话保持的坑,16号晚上阿里云成功定位并进行修复,这两天正式发布后会填平这个坑.这次从踩坑到填坑的过程是最痛快的一次. 接下来我们的目标锁定在"黑色n秒"(刚发现一个英文说法:stuck for x seconds)这个坑我们最多.最神秘.最诡异的坑

云计算之路-阿里云上:“黑色1秒”最新线索——w3tp与w3dt

向大家分享一下最近排查"黑色1秒"问题的进展,"黑色1秒"的问题表现详见什么是黑色1秒. 1. 发生在w3wp进程内 判断依据:"黑色1秒"期间,http.sys的HTTP Service Request Queues\ArriveRate正常,W3SVC_W3WP\Requests/Sec正常. 2. 请求未进入.NET线程池 判断依据:"黑色1秒"期间静态文件的请求也不能被处理,如果"黑色1秒"发生在.

云计算之路-阿里云上:消灭“黑色n秒”第三招——禁用网卡的TCP/IP Offload

程咬金有三板斧,我们有三招.在这篇博文中我们要出第三招,同时也意味着昨天在"希望的田野"上的第二招失败了. 前两招打头(CPU)不凑效,这一招要换一个部位,但依然要坚持攻击敌人最弱(最忙最累)部位的原则.那除了CPU,最忙最累的部位是哪里呢?对于Web服务器来说,毫无悬念,当然是网卡.而且阿里云的云服务器,所有的网络负载都集中在一块内网网卡上,SLB(负载均衡)用它,OCS(缓存服务)用它,RDS(数据库服务)也用它.所以,就对它出招! 招式受这篇博文(XenServer – Wind

云计算之路-阿里云上:因为网络问题,物理机换回虚拟机

今天早上7:00开始的从阿里云虚拟机到物理机的切换(详见切换至物理机验证“黑色1秒”是否与虚拟机有关),由于遭遇阿里云网络问题提前结束,14:38更改了DNS解析将流量切换回虚拟机. 网络问题是我们在14:30左右发现的,当时用浏览器打不开网站.用Firefox测试,显示连接超时. Ping发现很多丢包: 780 packets transmitted, 737 packets received, 5.5% packet loss round-trip min/avg/max/stddev =

云计算之路-阿里云上:Wireshark抓包分析一个耗时20秒的请求

这篇博文分享的是我们针对一个耗时20秒的请求,用Wireshark进行抓包分析的过程. 请求的流程是这样的:客户端浏览器 -> SLB(负载均衡) -> ECS(云服务器) -> SLB -> 客户端浏览器. 下面是分析的过程: 1. 启动Wireshark,针对内网网卡进行抓包. 2. 在IIS日志中找出要分析的请求(借助Log Parser Studio) 通过c-ip(Client IP Address)可以获知SLB的内网IP,在分析Wireshar抓包时需要依据这个IP进

云计算之路-阿里云上:超过70秒的请求抓包分析

超过70秒的请求是通过分析IIS日志发现的: 10.159.63.104是SLB的内网IP. 通过Wireshark抓包分析请求是9:22:21收到的(tcp.stream eq 23080): 09:22:21.299838000 10.159.63.104 10.161.241.208 HTTP 291 GET /eastsea/p/3764040.html HTTP/1.0 这个请求响应内容的长度是:Content-Length 1154110(1.1MB) 云服务器(ECS)在收到请求后

云计算之路-阿里云上:CPU 100%引发的状况

今天下午17:00-17:05之间,在请求量没有明显变化的情况下,SLB中的1台云服务器的CPU突然串到100%(当时SLB中一共有3台云服务器),见下图: 造成的直接后果是请求执行时间变得超长,最长竟然达到了53秒(下图中的紫色线条). 另外伴随的表现是大量请求排队. 再看看这个时间段其它2台服务器的表现: 从这些现象分析,我们猜测CPU 100%这台云服务器出现了CPU资源争抢问题,将之从SLB中摘除后恢复正常. 云计算之路-阿里云上:CPU 100%引发的状况,布布扣,bubuko.com

云计算之路-阿里云上:什么是“黑色1秒”?

为了更好地分享我们解决"黑色1秒"问题的过程,在这篇博文中我们将专门描述一下"黑色1秒"问题的表现. "黑色1秒"是我们使用阿里云以来继"黑色10秒"之后遭遇的最奇特.最诡异.最难以捉摸.最富有戏剧性的问题. 它有2个最显著的特征: 第一个是最直观的表现,在Windows性能监视器(Performace Monitor)中会出现1秒的ASP.NET Applications -> Requests/Sec(简称QPS)为

云计算之路-阿里云上:消灭“黑色n秒”第一招——不让CPU空闲

昨天对"黑色n秒"问题的最终猜想以失败而告终,从而让我们结束了被动猜想阶段,进入了主动进攻阶段--出招. 今天出第一招--用C#写个小程序,让其在每个CPU核上运行一个线程,不让任何一个CPU核进入空闲(idle)状态,以进一步排除CPU idle引起的"黑色n秒". 在这一招中,借助的最重要的武器是System.Diagnostics.ProcessThread.ProcessorAffinity.通过给ProcessorAffinity设置一个掩码,就可以指定当

云计算之路-阿里云上:消灭“黑色n秒”第二招——给w3wp进程指定CPU核

虽然昨天的第一招失败了,但是从失败中我们学到了与多核CPU相关的Processor Affinity(处理器关联)的知识. 既然我们可以让.NET程序的不同线程运行于指定的CPU核,那是不是也可以让IIS应用程序池的进程w3wp运行于指定的CPU核? 虽然看起来"黑色n秒"似乎与w3wp运行于哪些CPU核没有什么关系,但是我们既然把怀疑对象锁定在CPU,那么任何与CPU相关的线索都不能放过.即使失败,也会满载而归,因为如果没有"黑色n秒"这个问题的驱动,我们根本不会