今天在看一些资料时突然看到有人讨论thinkpad里电源管理器的省电模式是伪降频还是别的什么,于是决定探究一下我的电脑。

打开cpu-z,在电源管理器选择“最高性能”,频率马上跑到2.26G,电压也提高到了1.138v,切换到“最长电池寿命”,cpu频率降到800mhz,核心电压0.9v。可见电源管理器里的电源方案对cpu频率是有调节作用的。

然后打开一个高清视频,在自动电源方案下,先使用带硬件加速的播放器播放,显示cpu占用百分之三十,频率800mhz。关闭硬件加速,显示cpu占用百分之八十,频率在800-1500左右浮动。
在最高性能方案下,开启硬件加速时cpu占用百分之八到九,关闭硬件加速cpu占用百分之三十多。
在最长电池寿命方案下,开启硬件加速时cpu占用百分之三十,关闭硬件加速时cpu满载,视频卡。

由此可见在笔记本电脑上由于频率自动调节技术的存在,单靠任务管理器里cpu占用率并不能判断出计算量的规模大小。还需要同时结合cpu的工作频率来计算。举个例子,在自动方案下,开启硬件加速和关闭硬件加速时cpu占用率相差一倍半,此时并不能简单判定计算量也增大了一倍半,根据最高性能方案数据,计算量相差两倍多。之所以cpu占用率只差一倍半,是因为cpu工作频率提高了。所以在笔记本上做评测对比计算量时,需要启用最高性能方案,然后比较cpu占用率,才能得到比较准确的结果。

通过十几分钟的观察,发现cpu大部分时间都是工作在800的频率下,在观看网页视频的时候平均也只工作在1Ghz左右,虽然在任务管理器里看到cpu占用率达到了百分之六十多,但实际上cpu还是处在休息状态。因此可以判定在现阶段的日常应用中,cpu资源是大大富余的。

这时又想到一点,就是core i系列cpu鼓吹的睿频技术,通过上面的评测可以看出移动cpu本来就是频率自动调整的,睿频并没有太大的亮点。只是一个宣传的技巧,比如把我现在用的cpu不再说“额定频率2.26g“而是改成说:“该cpu额定频率2ghz,在cpu占用率高时可以自动超频到2.26g”。那我的cpu也就成了“睿频”技术了。不过貌似睿频是只能单个核超。不过总体上来讲对于移动平台来说这不算个技术。
今天发现拿一个磁铁在电脑屏幕左侧边缘中间处上下滑动后电脑就会待机。。。这是为啥。留待考证
今天在用无线网共享有线网连接的时候遇到问题,提示无法启动,错误信息居然是null,从事件查看器里面查看了下日志,发现报“ICS_IPV6 未能继续配置 IPv6 堆栈”错误和“ICS_IPV6 无法分配  字节的内存。这可能表示系统的虚拟内存不足或者内存管理程序遇到一个内部错误。”警告,禁用了ipv6后仍无效,后来发现需要开启windows firewall服务后可解决此问题。令人无语的是错误信息居然报null,估计是微软的工程师开发的时候这里的异常处理没有做好。

准备回去了

[| 2011/05/25 15:37]
晚上的火车,明天早晨到。

备份的重要性

[| 2011/05/15 17:50]
今天不小心把VPS上一个重要的脚本给覆盖了,郁闷了2秒思考恢复之法的时候突然想起我每天都备份了。哈,爽,从备份里把文件提取出来恢复了。

rtorrent支持ipv6的问题

[| 2011/05/14 22:21]
最近想了解一下p2p的东西,于是决定装个rtorrent,rtorrent依赖于libtorrent库。yum源里带的版本太旧,于是决定自己编译一个。

选了rtorrent官网推荐的stable版的libtorrent-0.12.6.tar.gz和rtorrent-0.8.6.tar.gz,编译过程总体比较顺利。期间遇到一个问题,就是我把libtorrent安装到了自己定义的一个路径下,在编译rtorrent的时候用pkg-config搜索libtorrent的时候无法找到。

搜了一下有两个方案,一种是export PKG_CONFIG_PATH="libtorrent的路径",把路径加入pkg-config的搜索路径,是个比较简单的方法。还有一种是定义libtorrent_LIBS环境变量,用来替代pkg-config的输出,比较复杂,不推荐。

编译好后下个bt测试一下,结果发现不能连接tracker服务器,老是timed out。查了下需要libcurl-7.19以上且编译时需要编译时加入c-ares支持,而yum源里最新的是7.15,需要重新编译libcurl,评估了一下代价太大。查了下说0.8.2版以后才有此问题,于是下了个0.8.1版的rtorrent编译了。

在编译rtorrent的时候加了--enable-ipv6,但是实际使用中无法启用ipv6,又查了下发现在编译libtorrent的时候也要加--enable-ipv6.加上后还是不行。后来发现需要给libtorrent打个补丁:

cd libtorrent-0.12.6
wget http://home.samfundet.no/~sesse/libtorrent-0.12.6-ipv6-07.patch
patch -p1 < libtorrent-0.12.6-ipv6-07.patch

然后再configure --enable-ipv6,make,make install。

一切ok。

关于Fuse

[| 2011/05/13 23:55]
今天研究了一下fuse,感觉比较有用,在虚拟机上搞了搞还不过瘾,想在vps上也弄弄,但是由于用的是OpenVZ的vps,无法载入内核模块,而fuse又是依赖于内核模块的,所以不抱什么希望。给vps客服发了个ticket请求启用fuse。结果返回来个10刀账单,内容是服务费。没理,结果一会回复我说弄好了,进去一看,发现客服只是手动mknod了一个/dev/fuse,又yum上fuse的几个包。心里嘀咕能不能行,于是编译了一个例子上去跑了跑,居然可以。。。于是就疑惑了,客服只是简单的装了两个包而已,并没有增加内核模块什么的,为什么就好用了呢。

推测有三种可能:
1,母鸡本来内核里是由fuse模块的,小鸡里面看不见。
2,fuse可能不一定就要依赖内核模块。
3,客服在处理时同时在母鸡上也加了fuse模块,只不过没有贴出来。

在OpenVZ官网上查看了一下关于启用fuse的问题,上面的解决方案是针对母鸡内核已经有了fuse模块,只是给小鸡有一个授权的过程。

云里雾里,留待考证。


另:客服给我回复解决了的时候再进去看发现10刀的账单又消失了。。。莫非客服感觉这个太简单了,不用收费?

valgrind-内存泄露监测工具

[| 2011/04/30 23:13]
最近搞的监控程序总是莫名其妙的core,有时报curl在clean阶段错误,有时报free错误,有时一启动就报错误,有时运行几小时后才报。初步判断为内存问题。
今天下午决定查查问题出在哪里,过了一遍代码,查不出问题在哪里。无语用mtrace测试了一下,报了一堆内存问题,但定位信息都是十六进制地址,无法判断到底哪行出的问题,后来发现了valgrind工具,使用了里面的Memcheck,一测试后直接报出了在90行处strncpy一个字节的内存写泄露。。原来是少分配了一个字节。晕。

强大的valgrind。

代码全部迁移至Git代码库

[| 2011/04/30 18:12]
之前在维护博客的时候经常碰到小bug修改的问题,这时需要在线上和开发机同时修改代码,非常麻烦,并且有时并不在开发机上,经常造成线上和开发环境代码不一致的情况。新版本上线时也是一个大问题,需要手工拷贝文件,不稳定且易出错。搞过一套上线脚本,用起来也不是很爽。

对于一些c项目,在在版本升级的时候经常要重新上传一份代码编译,久而久之积累了很多个版本,时间一长就忘记哪个是最新版本了,版本和版本间的区别也不好查看。

最近终于决定把代码迁移至代码库管理,在服务器上安装了git,把代码统一同步至git库,并定期备份。可以很好的解决新版本上线的问题,并可方便的查看代码变化并回滚。

Gae与Sae压力测试对比

[| 2011/04/30 00:05]
今天对两个云平台,Gae和Sae搞了一下压力测试。使用工具为apache内置的ab

Gae中页面为基于quercus引擎的php CI框架的默认welcome Controller。Sae中使用了自带Wordpress2.91默认页。

压力测试结果发现差距悬殊。

Sae最高并发只能支持到150个并发,然后很快就Cpu超出分钟配额,挂掉了。qps为46。
Gae最高支持1000并发毫无压力,qps能够达到600,此时启动了30个实例。

当然,由于对比所用的程序完全不同,这个结果没有太强的说服力。不过可以看出,Gae通过增开实例可以达到很强的扩展性,而Sae则无法得知。


分页: 5/23 第一页 上页 1 2 3 4 5 6 7 8 9 10 下页 最后页 [ 显示模式: 摘要 | 列表 ]