Loading...

Archive for June, 2009

    AD: 猛买网,精彩团购 | Jobsdigg | 很棒的男装店 | 网站地图

nginx出现”too many open files”的解决

中午我的Linode服务器又犯了老毛病,所有网站都不能访问。是因为服务器的nginx不停出错,输出的错误日志(error.log)塞满了整个分区。删除掉错误日志文件并重启nginx以后可以恢复正常。

我查看了一下错误日志的内容,发现全部是“Too many open files while accepting new connection on 0.0.0.0:80”。用Too many open files搜了一下,找到了一个解决方案

先查了一下文件系统最大可打开文件数:

root@li55-4:~# cat /proc/sys/fs/file-max
70133

于是用ulimit修改了一下:

root@li55-4:~# ulimit -n 10240

这下把最大打开文件数从1024提高到了10240,应该够用了吧。

最后把”ulimit -n 10240″这一行增加到/etc/rc.local中,以保证每次系统启动都能生效。

这样做是否有效,还有待后续观察。

经过实测,在rc.local中加入这一行是没有效果的,使用ulimit -n 10240进行修改也仅能影响到当前的shell。对这个问题,老王做过的探索,请移步此处查看。修改后,需要重启一次方可生效。

感谢智勇发现问题。

淘宝开放平台再次横空出世

这两天精神总不好,于是今天几次三番睡觉,将近12点才爬起来。就看到了Twitter上说淘宝的开放平台发布了,地址在:open.taobao.com

这不是淘宝的第一个开放平台,去年8月,淘宝已经推出了一个试水性质的开放平台,叫做淘园。只是淘园的文档太多示例太少,大部分功能都需要绑在阿里软件这个山寨头目上,所以放出来很久也没啥动静。一转眼10个月了,淘宝又有淘浆糊推出,而独立于淘园的淘客API也太过山寨,在这种情况下,迫切需要“one platform to involve them all”。

于是我说,淘宝开放平台,再次横空出世。

浏览了一下我所关注的“淘宝客API”,确实比之前更加完善。而且在如今API的基础上,可以搭建一套完整的、自动化的返点机制,这非常值得称赞。

不过,在SDK上的配备,还是不够。只有Java和PHP,其他语言如Python、Ruby都只有一个Demo。我看了一下Ruby的Demo,想笑。

def createRequestParam(paramArray)
	array = paramArray.sort()
  	i = 0
  	str = ''
  	while i < paramArray.length()
    	temp = array[i]
    	str = str + temp[0] + '=' + temp[1] + '&'
    	i = i + 1
  	end
  	return str
end

估计写这个demo的老兄,也没用过多久ruby :) 。简单来说吧,上面这一个函数,可以用一行代码完成,而且不影响代码的可读性。

下午研究一下,看看能否把好多好多,顺利切换到新的平台上。

UPDATE:发现新的API都把中文编码更换到了UTF-8,这也很赞。

用屎实说话

12年前的1997年,我还在山西上小学。焦点访谈曝光了山西国道交警乱收费的情况。在祖国的大地上,公仆一向都是以老爷的形态存在的,但焦点访谈的这次曝光,还是让人感觉吹来了一缕清风。

昨天,谷歌公司被焦点访谈曝光。焦点访谈用名叫高也的内部人员冒充大学生,绘声绘色地描述了一个已经从良的少年是如何被谷歌拉下水。举报中心的某专家,煞有介事地输入“boobs”,并且把网页“用翻译软件自动翻译成中文”。这事谷歌是有责任的,但其实谁的屁股都不干净,不管是从前的点点通,还是现在的电驴。

一个副主任在节目里说,“这种链接对于青少年的诱惑和伤害性非常大,因为青少年他们的好奇心非常重”,草泥马戈壁,如果不是中国一塌糊涂的性教育,也不会有那么多大学生拿小泽玛利亚来启蒙了。是什么让青少年这么好奇?或者,青少年对不懂的事不该好奇?中国的家长格外小心,中国的孩子格外娇嫩,如果大家都去看看《美国派》,也许会和谐不少。哦,差点忘了,咱们可不能全盘照搬西方资本主义那一套__,空格可以随便填。

也许,扫黄是假,打非是真?

我早已不看焦点访谈,但昨天观看视频时,看到片头的“用事实说话”,便再也忍不住感慨。拿内部人员作为大学生出镜(哪怕他真的是大学生)来诋毁谷歌,也好意思自我标榜“用事实说话”?正巧,我看到一则新闻,有人问记者,你是为党说话,还是为老百姓说话

毕业

下午拿到了毕业证和学位证,以及一张优秀毕业生证书。理论上我已经可以离校,拿着毕业证回公司办理正式入职手续。虽然这些证书对我来说是预料之中,即使优秀毕业生也唾手可得,但拿到的一刻,还是有些唏嘘。

05年的9月刚到杭州,一下火车就被蒸笼一样的天气吓到;至于坐车一小时才能到市区,更是让我大跌眼镜。还好适应得快,07到北京,也对一大早从北五环外挤地铁到国贸这样的事习以为常。今年再到北京工作,从住处步行20分钟就到公司,甚至让我觉得是种幸运(当然,房租挺贵)。

回顾大学四年:大一成绩很好,以第一名身份拿了奖学金;大二忙于各种学生组织的工作,一周五天有四天“开会”,导致我后来对“开会”这事深恶痛绝;大三,退出了所有学生组织,做了一个叫做牛扑的网站,有过短暂的兴盛;大四,辗转工作于杭州和北京,开始用Twitter,结识了许多朋友。

也可以从另一个角度回顾:大一什么都不会,因为张智勇一句激将,自学了PHP,开始给BuyRen添砖加瓦;大二,BuyRen卖掉,我进行了人生第一次投资,也会揣着名片穿梭于各种IT聚会;大三,动手实践,做牛扑的过程中学到了许多;大四,我没有了名片,blog和我的twitter成了实际上的名片。在大学的后两年,充分的交流,充足的实践,让我觉得进步非常快。

我是非典型的好学生,几乎没有参加竞赛活动给学校争光。但我成绩一直不错,最差也能拿到二等奖学金;从不挂课,即使物理都有90多。家里总想让我读研,但我觉得现在的自己挺好的。

要感谢很多人,朋友或老师,朋友和老师。杭州的六月已经开始闷热,我将要离开,蓦然想起了那句:“我挥一挥衣袖,不带走一片云彩”。

p6180001

当然,证书还是要带走的。

使用NewRelic监控Rails应用

NewRelic是一家提供Rails性能监测服务的网站,我很早就注册了。好多好多上线以后,我本没打算用,但最终被NewRelic孜孜不倦地发送Sample Weekly Report的精神打动,试用了一下。

安装和配置很简单:只需要安装一个NewRelic插件,然后用NewRelic提供的配置文件替换掉默认文件(操作细节可参阅FAQ)。Rails应用启动后,就会自动向NewRelic发送数据。

而NewRelic提供了不同级别的监测功能,免费的是Lite版本,最高有Gold版本,价钱有点小贵。我开始使用Lite后,NewRelic赠送了一个Gold版试用的优惠码,得以体验一周的Gold版本。

在监控页面上方有两个菜单:

监控选择

第一个用来选择监控的对象,如果不选就是当前Application的所有Instances。我在服务器后台开了5个thin进程,全部被NewRelic识别出来。

不同版本的提供的不同功能

针对不同版本,提供了不同的监测功能。免费的Lite版只能有Overview和Controllers去看,Apdex其实会显示在Overview里面。

OverView页面的截图(点击有大图):

overview

5张图表分别展示了响应时间、Apdex Score(应用性能指数)、CPU利用率、内存占用情况以及数据库的活动情况。这里只能得到一些总体的数据。因为好多好多流量不大,而且全站都采用了静态缓存,所以图表也没那么好看 :)

由于可以试用Gold版本,所以也尝试了Gold版本的一些功能。比如有一个Controller Report。

controller report

从这里可以看出,好多好多最耗时的两个控制器是MiscController#goIndexController#index 。前者是由于需要和淘宝的API进行交互,获得跳转地址;后者是因为要随机获取多个类别的热卖商品,还有优化的余地。可以想象,如果是一个提供更复杂功能的网站,这个Controller Report很容易帮开发者定位性能问题。实际上,这也是监测程序存在的最大价值。

NewRelic还有不少别的功能,可以从多个角度监测Rails应用,绝对值得一试;另一个值得称赞的是便捷的安装配置,几乎是“无痛”的。不过Gold版本的服务很贵,要$200每月,一看就不是给小网站们准备的。

为Linode的卓越VPS服务喝彩

Linode

好多好多上线时,人多,缓存也还未生成,服务器一下顶不住了。让我下决心把我的Linode升级到一个更高的配置。有心的朋友们会问,难道Linode服务器如此脆弱不堪,开新网站就会挂掉?非也,非也。其实是因为这台540M内存的Linode上,跑着的服务太多:mysql、memcached、sphinx、nginx以及5个php-cgi进程和8个thin服务器。因此540M内存是怎么也嫌少的,一旦一个请求处理慢了,就很容易使CPU长时间处在上下文切换上,甚至引起Swap抖动。而只要把内存增加一点,情况就会大为好转。

于是昨天中午我在Linode后台开了一个Support Ticket,大意是要将我的linode升级到720 plan,并希望可以ASAP。要知道,和资本主义国家有8小时时差,怎么也得等到凌晨才能处理了。没想到不到半小时就收到了回复,让我到账户里进行migrate,所有文件、配置都不会丢失。我当时就震惊了,还有比这更简便的服务器升级方式么?

登录到我Linode后台,果然有个大大的按钮。关掉服务器,点一下此按钮,Linode开始转移我的数据到新服务器上。整个过程全自动,并且有进度条显示。

Linode Migrating

在等待过程中,还可以更改磁盘设置,调整分区大小,怎一个酷字了得。

从开始迁移到全部完成,只用了半小时,过程极其顺利。不用担心数据丢失、不用满头大汗跑机房插内存,这就是VPS的好处。服务器升级后拥有720M内存,性能问题得到了解决。

Linode真的是太赞了,简洁清爽的面板,提供root权限,有多种操作系统可选。更不用说专业及时的技术支持、Fremont/Newark机房的高速带宽。还坚守在Dreamhost的兄弟们,你们动心了么?

因此,我甘愿做一个喝彩党,向Linode工作人员致敬;也以此文,向五毛贼亦非致敬,老人家没准正换着ID,在给绿坝喝彩呢。

延伸阅读:Linode服务介绍

好多好多幕后

周末在贝塔咖啡发布了一个叫“好多好多”的网站。其实围绕着“好多好多”这个有趣的名字和不断完善的网站,有些比较有意思的幕后资料,于是今天写出来,权当解闷。

“好多好多”这名字来自璎珞的一条tweet,说在北京大望路的家乐福一层,有家名叫好多好多的小店卖人偶。这个名字让我印象很深。

而好多好多的思路来自某日在贝塔咖啡独坐,所以创建项目时就顺手敲了个“beta”,所以也在贝塔咖啡发布。蒙Fenng老师以铁卡赠我,不胜欢喜。

在好多好多发布不久,因为大家的转发,服务器的负载从0.2飙升到了5,彻底顶不住了。于是在14日升级了一次服务器,过程极其顺利。升级之后,性能问题得到圆满解决。

好多好多现在使用了淘宝提供的淘客API获取商品数据,之后会加入更多API的支持,丰富它的功能。我无意把好多好多做成一个复杂的网站,它也许会像是一个垂直版的玩聚

欢迎大家闲着来逛逛

大学

两年多以前,我参与的一个网站被收购。因为过去一些付出,我得到了一笔可观的收入。在全民炒股的2007年,我用这些钱买了两支基金。

3月底去北京工作,上班以前就有一大堆要花钱的地方。于是我离开杭州前,赎回了所有基金,浮亏30%。

如今,大学的最后几天,我杭州的账户里还有“花不完”的钱。我开始回忆这些钱是哪里来的,于是想起了那段往事。

当年同在一个网站的zhanghe4,离开亿玛公司时,说过这样一段话:

谢谢张智勇同学,你是除我爹地外对我影响最大的男性,相信你美好的前程似锦

此刻我的心情也如此,实际上,我一直都很感激张智勇曾给我的机会,而不仅仅是一笔钱。有个老师听说这段故事,说张智勇才是我的大学。

每个人都有自己的大学,你的大学,是什么样子呢?

四巨头

卖书

中旬就要离校,于是开始收拾东西,最需要整理的就是那些书。

整理的过程中翻出了多年以前的东西,有第一次交学费的收据,有到杭州第一天买的地图,有第一次坐飞机的登机牌(在2006年情人节),也有一张小纸条上写着的,当年买下的50个QQ号码以及密码(虽然我还记得清楚)。还有那些在岁月里老去的信笺,勾起记忆中许多画面,回忆像是攸忽怒放的鸢尾,又像旷野迸发的火花,瞬间就把我吞没。

要卖的书很多,两只手都提不动,只好找来小推车。每斤5毛钱,又让我想起小时候常收拾些破铜烂铁拉到废旧物品回收站卖钱的情景。我和alonepopo的书加起来58kg,58元。我庆幸学来了书中的知识,得以在毕业这年把自己卖了个贵很多的价格。

上图两张:

卖书

卖书

卖完归来,手头留着的几本书:《中国哲学简史》《魔鬼投资学》《数据结构与算法分析》。当然,还有些好书,放在北京了。

答辩百态

文中所述,均为耳闻或亲见。

—————————————

老师问:这几张数据库表是用来干啥的?

学生答:昨天还没有的,今天不知怎地多出来了……

—————————————-

老师问:这个部分你是怎么做的?

指导老师抢答:这是我做的,有什么问题问我好了。

两个老师开始开小会……

—————————————-

学生被问住答不出来,这时……

老师问:你数据库学过没?

学生答:没。

老师问:为啥不学?

学生答:我没选那个课。

指导老师帮答:他没学过数据库,是自己拿书看的。做成这样很不容易,所以我们该给他加加分对吧。

众老师:嗯,没错……

—————————————–

一哥们上台开始陈述:“我的项目采用了CSS技术,ASP.net技术,C#.net技术,SQL SERVER技术,也使用了一部分AJAX技术”……