复习了一下ApacheBench的用法,兼谈服务性能测试的多因素问题

我最近有点关注 python web 开发,看了不少关于高性能IO库的对比评测,没怎么看明白,突然觉得自己对于 ab 的用法似乎不怎么想得起来了,于是复习了一下。

实验环境要尽量简单,要能凸显影响性能的几个因素,并能通过改变其中的单个因子再观察性能变化,来得到各因子和性能之间的关系。

服务器端 gunicorn -w 4 -k sync 执行一个只有一句 time.sleep(1) 的服务器程序,确保每次请求的服务时间不低于一秒

ab -c4 的情况下:

Concurrency Level: 4
Time taken for tests: 25.248 seconds
Complete requests: 100
Failed requests: 2
(Connect: 0, Receive: 2, Length: 0, Exceptions: 0)
Write errors: 0
Total transferred: 16000 bytes
HTML transferred: 1400 bytes
Requests per second: 3.96 [#/sec] (mean)
Time per request: 1009.932 [ms] (mean)
Time per request: 252.483 [ms] (mean, across all concurrent requests)
Transfer rate: 0.62 [Kbytes/sec] received

Connection Times (ms)
min mean[+/-sd] median max
Connect: 0 951 217.0 1009 1013

测试结果中需要注意的:

  1. Time taken for tests * Concurrency Level == Time per request * Complete requests都是处理所有的请求的总耗时。
  2. Time per request(mean) == Time taken for tests/Complete requests

注意:建立连接耗时最大值接近一秒。

并发数提高一倍,ab -c8 的情况下:

Concurrency Level: 8
Time taken for tests: 25.114 seconds
Complete requests: 100
Failed requests: 11
(Connect: 0, Receive: 11, Length: 0, Exceptions: 0)
Write errors: 2
Total transferred: 16000 bytes
HTML transferred: 1400 bytes
Requests per second: 3.98 [#/sec] (mean)
Time per request: 2009.158 [ms] (mean)
Time per request: 251.145 [ms] (mean, across all concurrent requests)
Transfer rate: 0.62 [Kbytes/sec] received

Connection Times (ms)
min mean[+/-sd] median max
Connect: 0 1507 756.6 2005 2015

需要注意的是:

  1. Time per request 翻倍了,而 Time per request * Completed requests 自然也就翻倍了。而 Requests per second 并没有随着并发数的增加而提高。服务器端 sync worker 每次只能处理一个请求,在客户端并发超过服务器端 worker 数,而请求又不能快速处理完毕的情况下,会造成请求积累,所以处理时间会变长
  2. 建立连接耗时的最大值也翻倍了

服务器改用 -k eventlet 试试呢?

客户端先用四个并发:

Concurrency Level: 4
Time taken for tests: 25.097 seconds
Complete requests: 100
Failed requests: 0
Write errors: 0
Total transferred: 16000 bytes
HTML transferred: 1400 bytes
Requests per second: 3.98 [#/sec] (mean)
Time per request: 1003.861 [ms] (mean)
Time per request: 250.965 [ms] (mean, across all concurrent requests)
Transfer rate: 0.62 [Kbytes/sec] received

Connection Times (ms)
min mean[+/-sd] median max
Connect: 0 0 0.2 0 1

注意建立连接耗时比 -k sync 时大大降低

八并发呢?

Concurrency Level: 8
Time taken for tests: 13.046 seconds
Complete requests: 100
Failed requests: 0
Write errors: 0
Total transferred: 16000 bytes
HTML transferred: 1400 bytes
Requests per second: 7.67 [#/sec] (mean)
Time per request: 1043.689 [ms] (mean)
Time per request: 130.461 [ms] (mean, across all concurrent requests)
Transfer rate: 1.20 [Kbytes/sec] received

Connection Times (ms)
min mean[+/-sd] median max
Connect: 0 0 0.5 0 3

处理能力翻倍了;建立连接耗时依然很小

这是服务器端异步处理的好处:一个 worker 可以处理多个并发请求,也就是说目前服务器的处理能力是高于 -w 4 参数指明的 worker 数的。

我认为:

  • Concurrency Level 和 Requests per second 比较接近的情况,说明服务器还没到性能极限
  • ab 压力测试过程中出现大量错误,可能是服务器过载的表现
  • sync 的情况下,显然并发数是不能超过 worker 数的
  • async 类型的 worker,并发数和 worker 数的比例关系,和服务程序的复杂度有关,和 CPU 核数也有关
Posted in 默认分类 | Leave a comment

7月份去了厦门游玩

一直想去南方游玩,直到六七月份才确定把厦门作为目的地;直到谢同学、雷总、漪澜等人突然决定要去云南,我才定下和他们同一天出发,匆匆忙忙。先是在海航网站买了票,又托雷总用支付宝红包买了回程票,再去携程翻了好久,翻了一个价格勉强能接受的宾馆。但我始终强忍着,没有看旅游攻略,因为以前总是计划性太强,疲于奔波,比不放假还累,这次一定要随心所欲,玩到哪算哪。

13日早晨,我开车带谢、雷去了机场,到停车场把车交给时间不太紧张的谢,我自己从T2赶去T1了。或许是海航惩罚我选水果餐,我的登机牌不能自助办理,我又耐心不足,排了好几次柜台又放弃了好几次,还忽悠前面两位第一次坐飞机、二代身份证、没行李的旅客去自助办理,终于换了登机牌,而此时已经只剩下半个小时,有幸走了加急安检通道。飞机上先给我发了水果餐,然后又给全飞机包括我发了标准餐,好充实~

到厦门之后,看到免费手绘地图,拿了一张,是手礼网的美食旅游图,不得不称赞广告做得到位!出了候机楼,马上就是阳光的暴晒,感觉只热不潮湿。我按姚师兄的建议,在机场外绕了半天,先走到厦门航空、厦门太古门口,然后又绕回南停车场,找到公交站,坐37路公交车到火车站(湖东),车站对门就是我团厦门站办公室。上楼,因为多多33给我说错了房间号,我还看了半天,正欲推门进去时,两位在外抽烟的同事想问我,我于是主动出击,推门进去问东溟在吗,然后就被迎进去了。一进门,见到了多多美女和东溟jj(以前她在总部,人称东哥),跟大家打了招呼之后,在男厕所“小团”门口拍照留念;东溟jj还笑话我居然戴工牌和名片,显得不够亲近,我解释说是为了方便对切口。然后我们三人,加上摄影师郑先生,还有另一个mm一起去楼下商场饭饭。饭后请多多美女给我指了一些常见游玩的地方,我就坐公交车去宾馆了。宾馆挺有意思,居然是个退盟的如家,呵呵

办理入住之后,就去轮渡码头,坐了15块钱的观光船,先绕鼓浪屿视察一圈,然后登岛。鼓浪屿码头给我的感觉不是太好,很多个人执业的导游围着登岛的客人招揽生意,感觉导游量有点过剩,我往右走了几步远离码头之后,导游费就从20降低到了10块。又走了几步,拐进福州路,进了小道,绕了几道弯,过了环卫码头,恰逢日落,赶快把手机相机掏出来一顿狂拍,好美的日落!

晚霞看完日落,把手机拍的照片发给妈妈和各位mms。休息一下之后,顺着环岛的小路走到南边沙滩,吃了个沙茶面、海蛎煎,继续走,又喝了杯咖啡(下次不喝冰摩卡了,不好喝!),在咖啡店坐了良久,好累。飞机从岛上空飞过,一架又一架;天上的丝丝云,感觉很干净。好累,回去了。

很喜欢鼓浪屿。晚上回来买了88元鼓浪屿景点套票+导游,居然是第一单,算是支持一下美团厦门站的兄弟姐妹们!

 

第二天早晨跑去轮渡码头,想用美团券现场跟团去鼓浪屿,但只约到下午那一场,只好去对面的大清一等邮局,把昨天在船上买的明信片消耗了一下,然后坐公交车回去了。本来想看看南普陀寺,但是看到门口people mountain people sea我就害怕了,改玩厦门大学,穿过去之后发现厦大真是厉害了!一般的学校顶多有个人工湖啥的,人家厦大直接就是一片海!白城校门出去之后有个天桥,过了天桥就是海滨浴场!但我没从这里出去,而是走到海滨校门,在学校食堂吃了个饭:四两米饭、两块鱼排、一份西红柿鸡蛋,5块钱,加上外人买饭差价,才六块八,想起当年在我们学校五块六只能吃个小鸡炖蘑菇加米饭,真是泪流满面!饭后去胡里山炮台看了看,发现这里居然是福州军区对金门前线广播站遗址。因为前一阵我刚读过《三体》,不禁浮想联翩……是红岸吗基地?其实事后想想,也可能不是红岸,而是黑暗森林威慑系统的发射站。炮台下面有个单向门,通往沙滩,但我还要回去的,所以没从这个门出去。

从炮台出来,已经大量失水,赶快喝脉动,然后坐公交车去轮渡,一个导游三个游客的微型旅游团出发去鼓浪屿。那个导游mm,我已经记不清是姓刘还是姓柳了,矮矮的黑黑的,问我上大学几年级了……其实我都上班五年啦,一是来游玩二是来考察我团当地的生意啦!上岛之后导游mm就介绍说,她们是唯一的总部设在鼓浪屿内的旅行社,然后我就感叹啊,说我团选择合作伙伴果然讲究,强强联手啊!跟着导游,从南路(左路)开始,逛了一些地方,看了钢琴博物馆,很是喜欢;菽庄花园内的借景也是很好的。天气太热,逛完之后我就请导游回去休息了。“不登日光岩不算到厦门”,于是又冒着暴晒去了日光岩,路上还买了莲雾和另外一个什么水果,还买了台湾小镜子,回头留着看看可以送给哪个mm。其实日光岩最顶端不算太好,人多拥挤,不如低一点的观景台。日光岩下来,想去看看郑成功纪念馆,结果发现已经下班了;去琴园看百鸟,其时已经很累了。走龙头路商业区(又买了个什么固体香水之类的东西,买贵了)到码头,回去也~

第三天早晨去了南普陀寺,但里面在维修,粗粗看了一下就上后山了,好累啊。到山顶,看到国家测绘标志,一个三角锥形的水泥骨架。过了测绘标志就是植物园,买票进去看看。这植物园倒是挺野的,不像北京植物园的人工痕迹那么重。从植物园出来,坐公交车又去了胡里山,从沙滩栈道走啊走的,路过炮台下面的单向门,走到了珍珠湾,突然想起这里是我团在卖的两家自行车出租店的所在地,于是找到300号那一家,租了个自行车,顺着环岛路骑。这里有个小插曲,其实租自行车的价格没那么贵,我说我团购还没买,他们就直接说可以按团购价,不过我还是坚持买了团购,为了支持厦门站的兄弟姐妹嘛。骑了没多远,就到“三民主义统一中国”对面了。掏出手机,终于搜到了对岸的信号,但tmd不能漫游!!打回北京联通客服,开通了国际(及港澳台)漫游,再连,还是连不上,可能是信号太弱了吧。站在这里,给游海北打了电话,说我看见了自由。然后继续往前,路过海滨浴场、路过横渡厦金海峡游泳活动现场,一直骑到“一国两制统一中国”,给张涛师兄打了电话。拍照之后掉头回来,路上快累死了,补充了水、脉动、冰椰汁等各种液体,还吃了一根烤肠,但感觉还是很空虚。等我回到自行车店,店员见到我第一句话就是:瘦了一圈。因为补水量太大(每小时补一公斤,都不用撒尿,全都出汗了),有点拉肚子,一直拉到回北京之后好几天。多多还在微博上说我疯了,这种天去骑自行车。其实栈道、租车那一会头上是有朵下雨的云的,但我骑出去之后就远离了,没被淋到太多雨。晚上洗澡,发现晒伤很严重,拉肚子也挺严重,但还是坚持出去吃了亚尖海鲜大排档。我真是不要命!

由于手机漫游没成功,我很不爽,于是又去美团买了去金门围观的游船票,约好次日取票。周一早晨直奔码头上船。天哪,我居然大方到买了200元的三楼茶座(船票才76元),就为了人少视野好。开了好久,路过了军控线,给军控线浮标拍照,发现这里很有《Ice Age》的感觉呢!很快,到了离自由只有一步的“三民主义统一中国”大担岛标语面前,掏出手机来强制漫游,发现对岸实力还是不行,中国联通四格信号,台湾四个运营商,其中只有中华电讯和台湾大哥大可以连上,一格;另外两家根本就连不上。然后开了数据漫游想翻墙,发现居然是广东联通的IP地址,翻墙失败不说,谢同学此时给我发微信,搞得我惨遭高额漫游!该拍的拍了,该漫游的漫游了,就开始往回开。其时我真的有跳船游过去的冲动,但游船解说员说大担岛上有防护网……回到轮渡码头,步行去第一码头坐了BRT。厦门BRT有意思啊,比北京的强,是在高架桥公交专用道上跑的,没多久就到火车站了。去厦门站办公室拉着同事一起饭饭。回到办公室恰逢总部培训新合同系统,我只好趴那玩ipad、去手礼网买特产(因为前一天在网上夸他们,被送了10块钱券)、睡觉。过了一会实在等不起了,拉着郑先生给我和多多、东溟在小美(厕所)门口拍了照片,就匆匆忙忙乘出租车走了。不过厦门实在很小,很快就到了机场,一进门就是手礼网柜台。办了自助登机牌,提货刷卡,大包小包的进安检去了。厦门机场安检不太好,楼上安检,然后下楼才到我的登机口。

剩下的就按部就班了。不过到北京之后我居然把iPad丢在飞机上了……太丢脸了,以前还笑话过别人呢,没想到自己也这样。先跑去MF值机,发现是CZ代理的,问MF的人在哪里(我以为MF是自己处理地面事务),跑去MF值班窗口问,她们问了一下之后让我去机场客服,我这时才想起来北京地面是BGS公司的,真是急糊涂了。领会iPad之后就回家了,好累,休息,明天上班!

 

厦门很热,但我很怀念。

Posted in 默认分类 | Tagged , , , , , , , | 1 Comment

版本差异还是发行版差异?

同事前几周在做 xen 虚拟机,玩了几天说 loop 内核模块的 max_loop=8 不够用,得改。今天我追了一下细节,发现了问题:
CentOS 5 里面用 virt-install 安装的 xen domU 虚拟机,用普通文件作为虚拟机的硬盘,在刚刚进入安装界面的时候已经生成了配置文件,其类型为 tap:aio ;而 Ubuntu 12.04 里用同样的方法安装,进入安装界面之后还没生成,不知道改存到哪去了,反正 /etc/libvirt/ 和 /var/lib/libvirt/ 都没有。用 virsh dumpxml 弄出来看了看,有一段 <driver name=’file’/> ;再用 losetup –all 查看,确实是把虚拟硬盘按 loopback 文件处理的。

细节差异:CentOS 5 用的是 -xen 内核做 dom0 ,而 Ubuntu 12.04 用的是普通内核,不带 -xen 后缀(甚至可以在此内核上再加载 kvm 模块!!),virsh 需要加 –connect xen:/// 参数,而不能自动判断。怀疑是不是因为 hypervisor 类型判断的问题,导致误动作了?

Posted in 默认分类 | Tagged , , | 2 Comments

打别人的车,让别人无车可打,但有时自己也打不到

2012年会的节目里有一句词:"打别人的车,让别人无车可打"反映了我团员工对工作积极认真,为了服务广大商户工作到夜间的精神,另一方面也说明了一个问题,就是夜间打车确实困难,不但别人无车可打,我们的人也经常无车可打。

上周二美兰大人注意到我在论坛发的召集顺风车的帖子,于是当天就有同事约夜班后一起走,我也就把原计划次日早晨提前来做的工作改在夜间了。2340左右我干完活就上网打发时间。零点,走了几个。零点半,浩哥要走,路过我座位才恍然大悟原来是我捎大家走。我犹豫要不要等齐人一起走,送下楼想起钥匙放楼上了,只好嘱咐注意安全目送她。一点,跟我约好的追我吧追我吧三金妹子、火星妞和李娜终于工作完成,我把她们分别送回家。

论距离,天通苑立水桥不算很远,但要冒着寒风步行回家也不是容易事,少说也得个吧钟头,路上还会路过分尸案案发地;打出租车,现在的出租车又太挑客,大半夜还妄图双向拉客,鄙视天通苑方向的单向客流,况且后半夜也确实没什么车。矛盾啊!还好天气逐渐转暖,这个矛盾会减缓几个月。

我尽一己之力,能帮助个别同事,但不能解决根本问题。如果公司能出面,或补贴费用,或约车派车,则善莫大焉。

Posted in 默认分类 | Tagged , , | Leave a comment

开始补入职培训课程

今天参加了入职培训课程,因为我来的时候直接投入工作了,没去参加培训;好像每次工作都这样,入职之后立刻投入战斗。作为一名互联网行业的老兵、美团的老兵,我今天终于补上了这一课。听HR姐姐讲她来美团的过程,也是那么的神奇;再听她讲以前我团的初期故事、中关村时期的故事,那些情景仿佛就在昨天。我是多么怀念每周听王兴在台上告诉我们,我们在全国已经有多少多少同事,开了多少多少分站的日子啊!局促不再,我团不但定义了行业,还引领了行业,我们更应该努力,创造下一个辉煌。

花絮:有个编辑部新来的姑娘一直看我,还笑。下课后我就去问她为啥笑,她居然说,她看我时我正好也在看她,所以就笑了。我呵呵。冷了两秒钟以后她问我啥星座的。我回答了之后就反调戏之,说姑娘你还没有男朋友吧。结果这句话被HR姐姐听见了,笑带严肃的批评了我,说你来补课的不是来泡妞的⋯⋯姐姐们啊,我是被调戏的好不好!被!

其实我们公司美女挺多的,我也有喜欢的。以后不能这样跟新来的小姑娘打情骂俏。否定追求,就是否定自己。谨以自勉。

Posted in 默认分类 | Tagged , | Leave a comment

加入我团一周年

2011年2月被逼换工作,一则不同寻常的招聘吸引了我:

  • 你常上的3~5个网站(如方便请注明在所活跃的社区里的ID)、常用的开发工具;
  • 你阅读过并推荐的3~5本技术类书籍;

这个看着很合我的口味呢,我也很认同这两个方面真正能体现技术人才的水平。搜了一下原文,是在美团网。直到这时,我才刚刚开始认识这个行业。看看各团,别家都不招我这个职位,一看就是做不大的,没打算专业分工,用其它岗位的人顶一下就将就了。而美团招聘的岗位齐全,分工明确,且美团是行业领跑者,深得我心。于是,2月15号投了简历过去。

没隔多久,收到面试电话,说随后给我发电邮通知具体地址,结果没收到;打电话问,再发,还没收到。直到今天,我才知道当时是写错了电邮地址,发给别人了。幸好我死心塌地打了好几次电话,问到了地址。

面试安排在某个工作日(据查应该是2月28日)的晚上,我下班后一路紧赶,终于赶到了中关村。路边的行道树,就像美团一周年官方电影里的样子,挂着彩灯,装点了冬夜的中关村。当时我还不知道远中悦来到底是哪个楼,打听了之后又不知道美团网为什么会开在一个酒店式公寓里。经酒店前台指点,找到了。当时是20点多吧,居然灯火通明,当时我心里就一咯噔:这里加班好猛啊!

面试是很顺利的,当时@murj 面试我之后,有点小激动,出去打了个电话之后回来跟我说现在就可以签下我。这话吓我一跳!说实话我当时对团购行业的了解也仅仅限于媒体报道,没想到这行的人真的如此凶猛。我连忙推辞说还是正常招聘流程,我跟人力资源部见见面吧。于是就有了第二次面试。第二次面试见了人力资源总监。这位总监是一位很端庄干练的女士,见面之后先递上名片,我也装模作样接下,很有商务礼仪的样子(其实我们技术人员没这么讲究的,只是礼仪对等而已)这次面谈主要谈了企业的行业地位、创始人的创业历史、技术部员工的待遇,人力资源总监这时才告诉我每周上六天班。又吓住我了!我于是再度推辞,要犹豫几天。

犹豫再三,我觉得对于已经近乎成熟的互联网行业,和我这样求稳的性格来说,能加入一个刚刚处于上升期的行业和企业的机会真的不会太多,而青春易逝,这也许是最后的机会了,终于还是决定加入美团。我一直认为,这是我有生以来最重要的一个决定,让我的事业重回上升区间的决定。决定之后,打电话给人力资源总监,没多久就收到offer letter,然后就开始辞职流程。我在前公司的地位也算还不错,有成绩,也获得了期权奖励,前公司领导让我说个数,想涨薪留我,但我还是婉拒了:“现在能给我的只有钱,但我想要的已经不只是钱了”。这也是我的性格体现,初期犹豫,一旦决定就不再反悔,必须表态明确,不给前司挽留之机。当天下午开始交接工作,把我负责建设的所有技术设施的结构讲给接班的同事。老同事们也很义气,祝愿我后续的工作顺利。在这期间还发生了美团DQ冰淇淋商业纠纷事件、美团海淀剧院发布会,更坚定了我投身团购行业的决心。

2011年的3月8日早高峰,我从驻地出发,随上班人流一起去中关村,进行了上班路线的时间测量。我是不喜欢迟到的,时间测量可以给我计算起床时间提供依据。到达中关村之后跑去电影院看了一场电影,就算是给自己放个小假吧,那天电影院里只有我一个男观众。3月9日,我正式加入美团。

 

今天是2012年3月8日。初期猛烈的加班早已不再,我们经历了远中悦来挤在三四间小屋的时期,迎来了宽敞明亮的北苑办公区;经历了激烈竞争,赢得了市场地位,定义了一个行业,我们的创业激情丝毫没有衰退。是妇女节提醒了我,今天是我加入美团第一年的最后一天,感叹一下事业进步,期冀感情也能有进展。明天是新的一年的开始,我会继续,纵情向前。

Posted in 默认分类 | Tagged , | 9 Comments

我团年会

我团2012年年会于2月4日在北京大学百周年纪念讲堂举办了。废话不说,说几句和别人不一样的吧:

  1. 咱也是有徽章有签名照的人了!在我团,资历是通过工牌挂绳上挂的徽章来体现的(类似于军装上的勋表):年会徽章、周年庆徽章、内部认证考试徽章等;工牌背面还要附一张年会展板上签名时拍的照片。不太好的是给我拍的是侧面照,不过拍照的市场部MM的发型很不错哦!我们部门助理知道我还没婚配,主动帮忙打听了,顿时让我觉得我就是《情深深雨蒙蒙》里陆振华年轻的时候……
  2. 这次的徽章居然是方的,不太方便平时佩戴呢,容易划伤人
  3. 没发生预想中的WCDMA 3G网络瘫痪的事件。看来北京联通网优部门对自己的实力有正确的评估
  4. PPMM比较多,偷拍了几个,托HR部的姐姐去打听了名字
  5. 统一了思想,提高了认识,使全员在千团大战即将结束,市场排位即将固定下来的阶段,对自己的企业、自己的岗位任务有了进一步的认识。相信这次会议除了娱乐性以外的那些东西会给企业的发展带来积极的作用
Posted in 默认分类 | Tagged , | Leave a comment

元旦杭州游

流水账一把:
12 月底国航积分即将到期作废,于是换了 PEK-SHA 的机票,然后在 12306 网站买了上海虹桥-杭州的高铁票,去杭州玩了一圈。

元旦上午,冒着寒风等机场大巴,然后堵车到首都机场T3,吃了快餐就匆匆进去了。这班 CA1517 居然有四个航班号(深圳、两个外航),爬升转平飞、平飞转下滑的时候都没有失重感、落地时有感而不超重,很优秀。出了虹桥机场,我就顺着指示牌一路走到了虹桥高铁站,等了一会就刷身份证上火车了。杭州站出来去售票窗口打了车票留作纪念。
出了火车站,给 @adoal 打电话问吃什么,他推荐了老头儿油爆虾。用 iPad 搜索了一下,跟着地图走,我想抄近道就走了小路,结果发现这家店原来就在这条小路里,而地图的标注是偏移的⋯⋯但是因为排号太多,又不知道吃什么比较好,还是乘出租车去找 adoal 吃另一家分店了。饭后,乘出租车去了青旅。这店真有意思,十平米的房间,居然还带卫生间,五脏俱全啊!

第二天,早晨坐12路公交车去吃“咬不得 高祖生煎”,然后步行走到湖滨路,办了租自行车的卡。顺着湖边,从六公园开始步行向北,走了断桥、白堤、孤山岛,到岳庙。看了看,岳庙居然还收费,就算了吧,我干嘛花钱去看望那个安阳老乡呢?步行去浙大路小巷子里的知味观,发现没有蟹黄小笼,就点了鲜肉小笼和米饭套餐。江南的米确实比较差,但是小笼包不错。饭后回西湖,顺着苏堤走了好远,到花港观鱼的码头乘船,去看了三潭印月。然后去淘宝公司看望了叔度,攀谈了一下,聊了聊 IT 行业在杭州,和 nginx 相关的话题。从淘宝出来,租自行车一路骑到保俶路,转向断桥,又到孤山岛,去楼外楼吃了西湖醋鱼。饭后步行想偷窥《印象西湖》,失败,于是骑自行车回六公园去了。路上怕车撞我,把手电筒装在自行车篮子里当车灯。路上还围观了一起车祸,在保俶路南口,一辆车撞中央隔离带,隔离带里的交通标志牌柱子嵌入其前机盖;该路段限速 40,估计这辆车的车速是 70 码。在长生路,找到了大韩民国临时政府杭州旧址,打算明天来看。然后坐 12 路区间公交车回了清波门,再换 809 回山上。

第三天,早晨步行参观了青旅隔壁的中国丝绸博物馆,然后顺着西湖上游溪水步行到雷峰塔游玩。雷峰塔的保护罩倒是挺有意思的,上面新建的塔也不错,登高望远,可以俯视整个西湖。下来之后,步行走到长桥公园,饿了,租自行车去吴山广场的知味观吃饭。这家店有三鲜小笼和大闸蟹黄小笼,吃了,觉得还是三鲜的好。然后骑自行车去了西湖博物馆参观、骑自行车+步行去参观了大韩民国临时政府旧址、坐公交车去灵隐。灵隐景区很不好,把灵隐寺单独拿出来售票,且无联票优惠。我先看了永福寺,永福寺在山上,建筑上是一个一个小院,且不知道是净土宗还是禅宗的;参观期间还遇到一个红衣服小 mm 挺乖巧的。然后看了看自己还有体力,就买票去灵隐寺逛了逛,到一半的时候后院就开始逐渐关门了,于是留下了点遗憾。不过遗憾也好,为将来补遗留下原由。出来之后乘公交车到三公园,步行又去吃了高祖生煎,然后一路打听骑到 24 小时退卡点,退了公交卡。终于有钱了!!门口出租车去武林门民航售票处乘机场巴士,到了机场。机场的人很少,十分钟进入候机区,然后找地方充电。充电过程中听到 last call 广播,就进去了。CZ6164 的高端经济舱挺好玩的,我感觉在飞机前段,但是排号已经是 30 排了,很宽敞。起飞的时候感觉很爽,一定是直接按F4启动的。在飞机上只吃了点心,吃不下那个面条。填了南航明珠入会申请表。接地时明显感觉有转向,停稳后掏出 iPad 看了看,侧风五米。出门时空姐说让我拉好拉链,没理之,结果一出门就被五米的风吹凌乱了⋯⋯

这次游玩,对杭州的气候、景观、城市交通、IT 行业在杭州的发展有了一定的认识。我觉得其实将来去杭州也会有个不错的发展。

Posted in 默认分类 | Tagged , , , , , , , | Leave a comment

遇到 xtrabackup-1.6.4-313 的 bug 了

在 MySQL replica 的 master 上执行备份,完毕后没能正确检测 master binlog 相关信息,因而没能在输出和信息文件中正确记录。已经报告了bug并回退到 1.6.3-292 版本

Posted in 默认分类 | Tagged , , , | Leave a comment

xtrabackup_binlog_pos_innodb 和 xtrabackup_binlog_info

用过 xtrabackup 工具的 innobackupex 脚本备份数据的人可能会注意到,–apply-log 处理过的备份数据里有两个文件说明该备份数据对应的 binlog 的文件名和位置。但有时这俩文件说明的位置可能会不同。
经过实验和询问 Percona 公司,结论如下:
1 对于纯 InnoDB 操作,备份出来的数据中上述两个文件的内容是一致的
2 对于 InnoDB 和非事务存储引擎混合操作,xtrabackup_binlog_info 中所示的 position 应该会比 xtrabackup_pos_innodb 所示的数值大。此时应以 xtrabackup_binlog_info 为准;而后者和 apply-log 时 InnoDB recovery log 中显示的内容是一致的,只针对 InnoDB 这部分数据

另外,今天发现 InnoBASE/MySQL/Oracle 公司出品的 MySQL Enterprise Backup(原 InnoDB Hot Backup)中 innobackup 脚本备份出来的数据也有类似的问题。这其实是由于热拷贝时 InnoDB 表和非事务表分别复制的时间差引起的。

Posted in 默认分类 | Tagged , , , , | Leave a comment