Oracle MySQL NoSQL DBA|数据管理,架构,监控与性能优化 --- NinGoo.net
NinGoo's blog
Ad. 招聘信息:猛击获得淘宝DBA工作机会 | 域名空间:DreamHost | 团购:拉手

Velocity China 2010: 技术的盛宴

这两天在北京参加Velocity China 2010,虽然时间只有短短的两天,很多主题也是关于web前端优化,听的并不是特别懂,但整个大会的技术氛围,嘉宾分享的主题,都让人感觉不虚此行。

有Steve Souders和Douglas Crockford两位大神坐镇,web优化方面自然是不需要再有过多的渲染。但是说实话,英文的演讲对于我来说听起来还是有点费力,能够理解的东西有限。倒是Facebook,这次来的两位华人科学家,蒋长浩(Changhao Jiang)和魏小亮(David Wei),带来的两个topic,以中文演讲,让我这个web优化的文外汉也听得似懂非懂,大呼过瘾。

蒋长浩的《Facebook网站的Ajax化、缓存和流水线》,魏小亮的《Facebook: 一个可持续发展的高性能网站》和《静态网页资源的管理和优化》,都是值得慢慢品尝的主题,明年估计国内很多公司都会开始尝试bigpipe了吧。

其他印象比较深的还有腾讯的两个session。以前很少听到腾讯比较深入的技术话题,这次则比较给力。谢明博士的《腾讯相册存储系统》,分享了腾讯的一个分布式文件系统,囧的是名字也是TFS,看来要抢注商标了,哈哈。QQ空间技术总监黄希彤的《另辟蹊径——腾讯web应用的优化新思路》,则讲述了流量预加载,不同ISP之间流量控制,以及无障碍用户体验的话题,引入思科。另外百度刘斌的《百度分布式数据库》对于SSD的实践,土豆吴岷对于视频网站自建CDN的分享,都是实打实的干货。唯一遗憾的是,下午的会议分为三个分会场,分身乏术,错过了一些精彩主题,只能等几天之后的ppt和视频了。

今天早上被同事临时抓壮丁为大会的新浪微博帐号做了一些业余的简短直播,以一种不同的角色参与这场技术盛宴,也算有了一种不同的体验。接下来将在北京办公室工作三天,期待idata forum和oow的到来,呼新朋唤旧友,共享技术,不亦乐乎。

在Ubuntu上安装MySQLdb

准备用Python写点脚本练练手,于是在Ubuntu上安装Python的MySQLdb,本以为很简单的事,没想到还碰到几个小波折,因此记录一下以备忘。

首先需要安装Python-dev,否则后面编译MySQLdb的时候会报错,找不到头文件:

building '_mysql' extension
gcc -pthread -fno-strict-aliasing -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -fPIC
 -Dversion_info=(1,2,3,'final',0) -D__version__=1.2.3
-I/u01/mysql/include/mysql -I/usr/include/python2.6 -c _mysql.c
-o build/temp.linux-i686-2.6/_mysql.o -DUNIV_LINUX
In file included from _mysql.c:29:
pymemcompat.h:10: fatal error: Python.h: 没有那个文件或目录
compilation terminated.
error: command 'gcc' failed with exit status 1
sudo apt-get install python-dev

其次需要先安装setuptools,否则MySQLdb无法编译

ImportError: No module named setuptools

setuptools从这里下载

python setup.py build
sudo python setup.py install

这里下载MySQLdb
修改site.cfg将mysql_config指向正确的位置

python setup.py build
sudo python setup.py install

最后还需要安装libmysqlclient-dev,否则import模块的时候会出错

ImportError: libmysqlclient_r.so.16: cannot open shared object file:
 No such file or directory
sudo apt-get install libmysqlclient-dev

装完以后,来个hello world式的简单查询

#!/usr/bin/env python
import MySQLdb

db=MySQLdb.connect(host="host_name",db="mysql",user="ningoo",passwd="password")
c=db.cursor()
n=c.execute("select user,host from user")
for row in c.fetchall():
        for col in row:
                print col

在Ubuntu上使用SystemTap

虽然很早以前听说过,但基本没用过,最近褚霸同学的介绍,勾起了我对这个东西的兴趣。最近在工作笔记本上装了个Ubuntu10.10做为主操作系统,因此正好在上面也实验学习下SystemTap。

安装systemtap

sudo apt-get install systemtap

Ubuntu Desktop默认没有安装kernel debug info的包,systemtap无法追踪内核信息。查看内核版本

ningoo@ning:~/stap$ uname -r
2.6.35-22-generic

这里下载对应的kernel debug info包,安装

sudo dpkg -i linux-image-2.6.35-22-generic-dbgsym_2.6.35-22.35_i386.ddeb

至此内核追踪已经可以执行,但module的信息还需要多做些工作

sudo apt-get install elfutils

for file in `find /usr/lib/debug -name '*.ko' -print`
do
      buildid=`eu-readelf -n $file| grep Build.ID: | awk '{print $3}'`
      dir=`echo $buildid | cut -c1-2`
      fn=`echo $buildid | cut -c3-`
      mkdir -p /usr/lib/debug/.build-id/$dir
      ln -s $file /usr/lib/debug/.build-id/$dir/$fn
      ln -s $file /usr/lib/debug/.build-id/$dir/${fn}.debug
done

Hello world

ningoo@ning:~/stap$ sudo stap -ve 'probe begin { log("hello world") exit() }'
Pass 1: parsed user script and 72 library script(s)
 using 18896virt/12868res/1880shr kb, in 130usr/20sys/150real ms.
Pass 2: analyzed script: 1 probe(s), 2 function(s), 0 embed(s), 0 global(s)
 using 19160virt/13132res/1908shr kb, in 10usr/0sys/5real ms.
Pass 3: using cached /home/ningoo/.systemtap/cache
 /f1/stap_f10ab2aeba4f2da2c03646b27b4d3627_757.c
Pass 4: using cached /home/ningoo/.systemtap/cache
 /f1/stap_f10ab2aeba4f2da2c03646b27b4d3627_757.ko
Pass 5: starting run.
hello world
Pass 5: run completed in 0usr/30sys/297real ms.

参考:
http://sourceware.org/systemtap/documentation.html
http://sourceware.org/systemtap/wiki/SystemtapOnUbuntu

1111的疯狂

1111光棍节,已经过去两天了,这疯狂的一天,只有想不到,没有做不到。

淘宝商城的广告早就开始铺天盖地,虽然所有人都知道这一天会有新高,但没有人敢说有这么高:

淘宝商城单日交易额9.36亿,每秒超过2万元交易;2家店铺超2千万;11家店铺超千万;20家店铺过500万;总共181家店铺过百万。

之前我们乐观估计,2倍的业务上涨是可能的,传递到系统,50%的余量应该就足以支撑。回顾梳理我们的系统,今年以来的几个大的改造项目完成以后,50%的余量都不成问题,并且所有的数据库系统都已经拥有超过100%的余量来应对年底的高峰。

但1111当晚0点的iPad秒杀过后,一看数据库指标还是让我心惊,平时已经是低峰时段,秒杀瞬间几个数据库的指标都直冲平时最高峰,不由得为白天和当晚流量高峰有些担心。9点上班,我们技术保障部和核心交易系统几个人临时坐到振飞办公室一起联合办公,为一整天的疯狂准备应急措施。CDN的流量在八点多就已经率先以超过80度的仰角拉升,很快就超过了我们平时的流量高峰,这一下完全超过我们的预期,我们还是低估了广大人们群众的购买力,于是迅速分析如何通过一些措施来优化,扩容以及降级部分应用,来为CDN保驾护航。其中有一些真是“艰难的决定”,所幸直到最后,这些艰难的决定并没有做出。

数据库的指标也在不断攀升,不过我们的商品库,用户库,交易库等核心交易流程相关的库在10月份之前都已经完成了水平拆分和扩容,在这波惊涛骇浪中情绪相当稳定。虽然有一个我们之前预计有100%余量的库在最后超过了100%的压力,不过我们在采取几个轻量级的降级措施之后,也是平安度过。剩下的时间,我们就一边盯着交易监控曲线快速上涨,一边盯着秒杀的整点时刻,这真是一种心惊肉跳的幸福。

七公说,淘宝的技术这次给力了。是的,我们顶住了,10倍的疯狂啊,支付宝也顶住了,旺旺也顶住了,各大银行,虽小有波折,最终也顶住了。这一天,注定将成为电子商务的一个里程碑,这一天,注定将成为淘宝技术的一个里程碑,这一天,我们有幸见证,这一天,我们有幸亲历,这一天,值得记录下来,慢慢回味。


常用标签: oracle MySQL Oracle11g dba blog 新特性 oow oow2009 wordpress ASM

最新评论 | Recent comments