存档

  • 最近

    这段时间发日志的频率明显低下来了,因为太忙,几乎是一周七天不间断的工作着,周六跟周末会休息一个上午,这一个上午的休息基本上就是在宿舍里睡觉,大概都是要在中午的时间醒来。有段时间我室友说好久没有见到我人了,他早上起得比我早(我想比大多数人都要早),我晚上回去的时候他早就睡了,所以两个人也碰不着面。忙有忙的好处,可以锻炼自己在高压情况下的承受能力。时间紧,任务在我看来算是比较重的,而且有些时间还无法加速。现在跑的实验,每个大概要耗时90分钟,你无法在这段时间里做其他的测试,只能等着,因为计算资源就那么多,受限。说来也算是个笑话,我测试的是基于云计算平台的实验,而由于我只有两台服务器,所以这个云计算平台并不能真正做到无限的计算和存储空间。我们要是不自己买服务器,而买Amazon的计算资源的话,可能成本会低很多,但是灵活性估计比现在这样子要差一些,而且在国内也不知道速度如何。这种情况下唯一的解决办法,就是熬夜加班,把自己工作时长加大,来在一天里可以做更多的实验。 现在这种单兵作战的方式是我最不喜欢的。遇到所有的问题都得自己一个人解决,在一个团队里,一个人加一个人的效率和解决问题的能力要绝对大于两个人单独工作的能力,因为有些时候我们考虑问题是不那么全面的,当有人和你合作一起解决问题的时候,互相之间的补充与提醒可以迅速将问题解决掉。不过既然现实的情况是这样的,那也只能自己独当一面,陌生而又庞大的系统,Ok,我去看跟代码;没有规范的文档,我还是去跟代码;遇到了问题理论上解释不通,再去跟代码;其他一些看代码解决不了的问题,或是没有代码可看的东西,查资料是第一种可以选择的办法,但是有些东西网上确实没有资料,怎么办,试。只能用不同的情况去试,期望通过试来解决问题。这种方法是很低效的,但是却能在大多数时候把问题解决了,这也能锻炼了我全面思考问题的能力,还有就是培养了自己的耐心,试一遍不成功,两遍不成功,三遍不成功,有耐心继续试下去是需要很大的勇气的,有时候真的试到想到电脑扔了的地步。 人生会遇到很多很多的困难,而且有些困难是只能自己去解决的,不要指望着会有人来帮助你,甚至你都不要期许会有别人来鼓励你,成者王败者寇,有时候现实很残酷。所以,也不要去说别人取得的成就不够重大,很多时候,别人能够取得成功也是经历了很多你所想象不到的困难的。 感慨了很多,我要去收实验数据了,又有一组跑出来了。再跑一组我就回宿舍了,自己还是要多担心自己身体一点的,这种工作强度搞个半年人肯定会垮掉的。加油加油!

    1,214 次查看 | 没有评论
    2010年4月26日 | 归档于 学习, 感悟, 校园, 生活
  • 使用JDK进行Performance Tuning

    JDK里有三个很好用的工具,jmap,jconsole和jvisualvm,三个工具都各有所侧重,但是如果你的系统遇到性能瓶颈(内存不足或是CPU占用率过高),你可以通过这三个工具来发现应用里的hot spot。我今天只记一下大概的用法,给自己做个备忘,详细的使用说明,等忙完了这段时间,整理一下。 先介绍一个小工具,jps,这也是jdk自带的工具之一,可以列出系统里所有的java进程。 jmap可以查看程序中堆的使用情况,具体的用法是: jmap –histo:live <pid>; 以及可以将堆dump到一个文件,命令是: jmap –dump:format=b,file=heap.bin <pid>; 请在<pid>处填入相应的进程的id。 jconsole可以查看某个java进程的内存使用、CPU占用率等, 如果想要远程查看某一java程序,则需要在该程序启动参数里加下如下参数: -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=9001 -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false 上文使用的9001是监听的端口号,你可以指定其他的值。然后在你的终端键入jconsole,选择连接远程进程,并填入相应的主机名和端口即可。如果无法连接,请修改/etc/hosts里的内容,将localhost绑定到机器的外部ip地址。 相应的数据可以导出为一个csv文件,这个很方便。 jvisualvm功能与jconsole的基本类似,但是可以做性能分析。 即可以分析出CPU时间被哪些线程所占用了,等等,并且它支持jmx,这东西我只听说过没用过,先放一边不表。 配置jvisualvm不需要改动原程序的启动参数,只需要在远程主机上运行jstatd即可。 新建一个叫jstatd.all.policy的文件,内容是: grant codebase "file:${java.home}/../lib/tools.jar" {     permission java.security.AllPermission; }; 然后使用如下命令启动jstatd, jstatd -J-Djava.security.policy=jstatd.all.policy 然后在jvisualvm里选择添加远程主机即可。如果无法连接,请修改/etc/hosts里的内容,将localhost绑定到机器的外部ip地址。

    1,996 次查看 | 2 条评论
    2010年4月12日 | 归档于 Java, Linux, 技术, 软件
  • 第一次参加QClub的活动

    去年也报过一次名,但是最后有事情所以就没有去。这周一收到的邮件,QClub有一个技术沙龙的活动,定在周六,想来自己周六也没有别的什么事情,就报名参加了,看到题目也是我感兴趣的内容。其一是由百度的黄容芳讲的《Web数据交互的艺术》,其二是由豆瓣的刘洪清讲的《分布式数据库BeansDB在豆瓣的应用》。 黄的演讲,如果去掉艺术二字,个人认为还是一个很好的演讲,其讲了Web数据的几种不同实现,其对长连接的分析十分清晰明了,不过黄把“轮询”写成了“轮循”,虽然是个小错误,但我觉得“轮询”解释了此事件的本质,即间隔一段时间轮流(轮)询问(询),而轮循仅能表达轮流循环的意思;关于数据压缩,主要讲到了两种主要的实施手段,一是使用类似YUI Compressor的压缩器主动对需要传输的内容进行“精简”,我觉得称之为“精简”更明确一点。另外一种是使用GZIP来做压缩,对于大型网站为了提高用户体验,加快网页的加载时间,这是两个很好的方法。后面说到的跨浏览器通信,则是我完全没有接触过的内容,主要是想解决当客户在同一台机器上打开不同的浏览器,或是使用同一浏览器同时打开某一页面时,各页面之间内容同步的问题,主要的解决方案是Flash。后面说到了数据在客户端的存储,提到了ie的UserData,Firefox的localStorage以及Flash和HTM5,却没有提Google Gears,百度是不是跟Google有仇? 说到Flash,黄说Flash的覆盖率还不是很高,只有97%,百度能在乎剩下的3%,着实是挺令我惊讶,想中国的大多数网银和几年前的淘宝支付宝都不支持Firefox。不过我倒是很赞赏Apple的作法,宁愿支持html5也不愿意支持FLASH,不论苹果是否只是由商业利益做出的考虑,但是阻止flash来扰乱本来就已经很混乱的web标准,我是很赞同这样的作法的。 另外一位豆瓣的工程师刘讲的内容也吸引了很多人,我自己也被他的话题所吸引。说到分布式key-value数据库,自己早有耳闻,但是我一直不明白也一直不是很清楚这种类型的数据库如何被有效的利用在web2.0的应用中。豆瓣的作法是没有完全将MySQL替换掉,而是将那些结构化的数据依然保留在MySQL中,而将另外一些依据应用场景数量多,对一致性要求不是十分高、许多场景下是一次写入多次读出的数据存储在他们的分布式key-value数据库中。工业界追求第一位的并不是程序的理论上的最优性,而是在应用需求前提之下的性能和成本。key-value分布式数据库不是万能的,但是在一些场景之下,却可以解决应用的许多问题。豆瓣网的现行用户有3000多万,其每天处理的数据我觉得还算是一个不是非常巨大的场景,与twitter和facebook相比,其还要差一到两个层级。随着豆瓣的成长,希望能从他们那里得到更多的经验。 最近很忙,少有更新博客,可以在twitter上联系我。@bbiao

    1,830 次查看 | 3 条评论
    2010年4月10日 | 归档于 opensource, 云计算, 技术, 数据库, 校园, 生活
2010年4月 的存档