lighttpd是一个高性能的http服务器,很多大型网站都用它来跑静态文件(图片、文件共享、视频网站)或使用它的fastcgi来跑动态网站。lighttpd 用fastcgi模式跑php据说有问题的,不推荐使用。但是跑其它的fastcgi应用强烈推荐。另外, lighttpd还有一个很强大的mod_proxy模块可以部分替换squid应用。

1.5.0 最振奋人心的功能就是它终于支持了linux aio 模式。在跑静态文件的时候性能能有 80%以上的提升。具体的测试结果大家可以看看这里:

linux-aio-and-large-files

下载: pre-release-lighttpd-1-5-0-r1454-tar-gz

不过现在版本还有很多bug,不推荐使用aio模式 :)

不知道要写什么,那就什么也不用写了。

这个周末真是一团糟。周五晚上,约某人出来,居然迟到20分钟,接下来的事情也是一笔烂账。周六去打球倒是好好的,可惜吃火锅的时候某个家伙居然点了四种肉丸,吃的想吐啊。晚上泡吧,喝的都糊涂了,哼哼。

今天中午,某人令我郁闷了一把,看着手机的电话本一圈,终于打电话骚扰了一个大学死党半个小时。下午,去麦当劳吃了个汉堡包,结果出来刚走了没多远就狂吐了两次,路人都用很奇怪的眼光看着我。 终于还是受不了疯狂的咳嗽,到医院看了病,发现是支气管炎,又被静安中心医院宰了一刀。 现在还是吃完东西就想吐,咳嗽的连睡觉也睡不好。tnnd,我是招谁惹谁了,这个周末怎么这么倒霉啊。

我的m1210是送256M nvidia go 7400显卡,硬盘是60G sata。
1. 重装windows,分区的时候小心点,别将一个隐藏的fat分区删除。
最后留了20G空间没进行分区。
2. 安装Debian,先用的是etch daily build installer,结果发现启动后
无法认到光驱,后来接上一个usb外置光驱,在解压完文件后不动了。
3. 怒,放弃Debian,改用ubuntu 6.06,具体安装过程略,只要设置一下分区
就行了,比安装winxp简单多了。装完后,无线网卡和显卡都没有问题,读卡器、
蓝牙没有测试,好像也没问题。
修改 /etc/X11/xorg.conf ,将 nv 驱动改为 nvidia,升级内核为 -686,默认的386
内核不能识别出两个cpu(T2300)。最后 sudo apt-get upgrade一把,重启后一切正常。
现在的问题是字体不大好看,有空折腾一下吧。
4. 安装必要的编译工具和库文件,最后编译qterm和mplayer。只要保证 mplayer能支持 xv
的vo,支持gui,编译环境就比较完善了。因为是宽屏,必须在 ~/.mplayer/conf 下加
入一行: monitoraspect=16:10 ,这样放片就不会变形了。

看来ubuntu对硬件的支持能力真的很不错,winxp的驱动我折腾了一个下午才全部安装完毕呢。debian只好等下一个版本的installer了。

smbpasswd -a dev   #增加dev作为samba用户 ,dev必须是有效的系统用户(存在于 /etc/passwd),如果没有需要用adduser 添加

更改 /etc/samba/smb.conf ,增加一个共享:

[wwwroot]
comment = dev use only
path = /home/wwwroot
read only = no
public = no
valid users = dev

重启samba服务

/etc/init.d/smb restart

done

生活需要多一些笑料:)

很多都是出自于天津卷《愿景》——木办法,谁叫这个题目太叫人摸不找头脑了!

1,尽管司马迁多次遭受宫刑,但他忍受住一次又一次的痛苦,还是以顽强的毅力写出了伟大的《史记》。
【dodo:一次又一次?司马爷爷你那里难道是春风吹又生?】

2,有人说人生有三大恨事:一恨鲫鱼多刺,二恨海棠无香。第三恨我忘了,不过我想,第三恨应该是:三恨愿景泡汤。
【dodo:虽然很押韵,但我不用BAIDU就能告诉你这话是张爱玲说的,最后一恨是:红楼梦是个大坑……】

3,没有愿景,就像投不了胎的野鬼一样。/没有愿景,就像孤魂野鬼一样没有归宿。
没有愿景的生活就像没有放味精的菜一样,可吃但不鲜。
一个没有愿景的人,就像没有脊柱一样,直不起腰,挺不起背,只能匍匐在人生之路上,阳光照不到他身上,幸运女神也不会眷顾这样的人。
【dodo:愿景啊,你居然比空气还重要!我一直都木发现的说……】

4, 我的爸爸就像亲人一样爱我。
【dodo:敢情您老是您爸爸从垃圾箱里捡来的?】

5, 太阳离我们越来越近,像一个金黄的油饼。
【dodo:这位同学……你是木吃早饭就来考试的是伐?可怜的~~MOMO】

6,周总理的愿景是国家的富强独立,在他心里只有四个大字:为人民服务!
【dodo:也许你的语文老师能容忍你,但你的数学老师不会原谅你!】

7,我希望有一条健康的双腿,一个智慧的大脑,……
【dodo:同上】

8, 有一种自卑叫自信,有一种跌倒叫爬起。
【dodo:这位同学是新时代的苏格拉底】

9, 没有自尊的脖子,无法支撑自信的头颅。
【dodo:我想知道怎样的脖子叫做“有自尊的脖子”!】

10, 没有背景,就奔前景。
【dodo:乍一看不知道在说什么,仔细一想似乎有点针砭时弊的意思……但再想又不知道他确切要说什么……难道只是为了押韵?!】

11, 眼睛为什么长在两边,因为它是用来向前看的。
【dodo:同学你的逻辑是超越我的理性范围之外的……】

12,人生就像一杯白开水,平平淡淡的;但又像一杯加了糖的白开水,甜甜的;也像一杯加了盐的白开水,咸咸的。
【dodo:这……还是白开水么?!】

13,马瘦毛长蹄子肥,儿子偷爹不算贼;瞎大爷和瞎大妈过了半辈子,谁也没见过谁。
【dodo:同学,您是郭德钢老师的儿子伐?】

14,孟德斯鸠出身贵族世家,虽然从小过着安逸的生活,但他看着天空变化的云,突然做了一个震惊历史的决定,——那就是投身到资产阶级的革命洪流中去。
【dodo:原来孟老师夜观天象忽然大彻大悟……】

15, 人命诚可贵,爱情价更高;若为生死故,两者皆可抛。
【dodo:8HD啊!你不能因为人家裴多菲过了50年的著作权保护期就这样糟尽人家……】

16,俗话说:人有多大胆,地有多大产。土地如此,人何以堪?所以我们更应对未来怀有远大的前景。
【dodo:我无语了……这位同学你到底要说什么?!】

17,进入高三,我就过上了“起的比鸡早,睡得比狗晚,吃的比猪差,干得比牛多”的日子。虽然我吃的比猪好多了,但我干的确实比牛还多。此刻,我的愿景就是……
【dodo:可怜的孩子……同情的抚摸之,对高玉宝:你看到了伐!周扒皮对你们那其实是很有人文精神的!】

18,我最大的愿景就是有骂人的习惯。虽说五讲四美要遵守,但恐怕只有坐在房顶上骂上三小时不带重样的才能解解我心头的怨气。写到这里,我手心发汗, 因为我怨的是这张考卷,因为它决定了我的未来和前景。就凭这不足半米的考卷和一些墨水,就决断我十二年的求学生涯,我不服。但我犯不着跟分数过不去。
【dodo:孩子……你是不是已经准备好出国的后路才来考试玩的?】

19,上帝给了我们七情六欲,我们却把它们变成了色情和暴力。
【dodo:深刻!】

20,我的愿景是考上一所好大学,找到一个好工作,这样以后才有能力让我的儿子也考上一所好大学,找到一个好工作。
【dodo:为什么我想到了政治书里那个记者采访放羊娃的那段?!】

21,我的很多同学为了能考上军校或警校,不惜把眼睛给做了。
【dodo:做?!抖……怎么就给做了?!】

22, 海子说:我想找一所房子,面朝大海,春暖花开。
【dodo:您老省省吧!如今海边花园别墅贵着呢,您找到了也买不起啊!】

23,周总理站在十里长街对天哀叹:“出师未捷身先死,长使英雄泪满襟。”他对祖国美好未来的愿景使亿万人民为之失声痛哭。
【dodo:十里长街……?!诈尸啊啊啊啊啊啊!!!】

24, 泰戈尔说:黑夜给了我黑色的眼睛,我却用它来寻找光明。
【dodo:你信不信顾城会拿着斧头半夜来找你?】

25,汨罗江边,项羽手持利剑于颈间,他高呼……
【dodo:他高呼:屈原小亲亲你怎么那么早就舍下我去了啊!!!】

26, 醉翁深知:不应有恨,何时长向别时圆……
【dodo:苏轼TO欧阳修:大家熟归熟,你这样我一样告你剽窃!】

27,在桃花源过着田园生活的陶渊明写下了“疏影横斜水清浅,暗香浮动月黄昏”的名句……
【dodo:好吧……我承认……其实我也不敢保证林逋老先生就一定不是陶渊明的邻居。】

28,当俞平伯为钟子期摔琴之时,他所寻找的是高山流水,琴声是他的愿景。
【dodo:鉴定为BL穿越文!】

29,韩愈跟着刘邦去打仗,一天,……
【dodo:又鉴定出一篇为BL穿越文!】

30,居里夫人发明了鱼镭,她的愿景实现了……
【dodo:居里夫人您死得真冤枉……谁晓得这鱼雷它竟然也是有辐射的!】

31,司马迁在受到残酷的宫刑之后,忍辱苟活,因为他知道“不孝有三,无后为大”,所以……
【dodo:所以……怎么样?!难道找个小攻搞男男生子么?】

32,司马迁在遭受宫刑之后,不得不忍受断腿之苦,……
【dodo:我求求你们了!司马爷爷“一次次”的受了宫刑已经够惨的了!你们别再虐他了!】

33,司马迁在被施行腐刑之后,不顾身体的腐烂,写出了千古绝唱《史记》……
【dodo:令人发指啊!我已经彻底无语了……】

34,我看到司马迁在遭受宫刑之后的伟大成就和伟大愿景,不由感叹:三百六十行,行行出状元。
【dodo:干笑,是啊!敢情太监这行也能出状元!】

35,一代男儿司马迁自愿接受宫刑,就是因为他心中的伟大愿景——那就是大唐还没有一部自己的史书,于是他忍辱负重为大唐完成了《史记》。
【dodo:掀桌!司马迁究竟招谁惹谁了?都被折腾成这样了居然你们还不肯让他得到解脱!还一直把他从汉朝虐到了唐朝—— 求求莘莘学子们,你们就可怜可怜这位老人家吧,他已经受够了……】

36,因为,猪=吃饭+睡觉,
我=吃饭+睡觉+学习;
所以,我=猪+学习
【dodo:真的……我很感动,这就是劳动人民朴素而深刻的辩证法】

37,时间就像一杯浓硫酸,可以腐蚀一切东西……
【dodo:同学,你在学校是化学课代表吧?】

38,朋友,以即死的心情面对你的愿景,它就会离你更近。
【dodo:那谁还敢……】

39,我叫张三,三点钟的时候在家做作业,但心里却想着柜子里的三个苹果,被三婶知道,告诉了爸爸,爸爸打了我三巴掌。
【dodo:别“三”了!我知道你是湖北考生了!】
(湖北卷作文题目:
成语:三思而后行,三人行必有我师焉、举一反三……,从以上带“三”字的成语中,能给你什么启示 ……
)

40,母鸡生小鸡要生好几天。
【dodo:原来如此,可怜的母鸡——我终于明白相比于你的痛苦,鸡蛋2.8一斤是多么便宜了!】

41,我们一家三口,爸爸妈妈和姐姐。
【dodo:敢问——你是谁?】

42,远远地,走来一位女姑娘。
【dodo:我想见识下男姑娘……】

43,什么是举一反三?就是举一个例子反对三个例子
【dodo:你的语文老师会自杀……】

44,三人成虎就是三个人的力量加起来像老虎一样有力,所以我们要团结。
【dodo:上面那位语文老师,你不介意复活过来再自杀一次吧……】

还记得童年时候的动画吗? 奔奔是我当时非常喜欢的一部动画,居然在土豆上看到了。


在个人电脑做如下操作:

ssh-keygen -d #生成公钥和私钥,此过程可以选择输入私钥密码

cat .ssh/id_dsa.pub | ssh user@remote “cat - >>.ssh/authorized_keys” #将公钥写到服务器

ssh-agent $SHELL

ssh-add

如果你设了私钥密码,此时输入你的私钥密码。

经过一年多的等待, mplayer 1.0pre8终于正式发布了。以下摘自发布说明:

下载地址: http://www.mplayerhq.hu/design7/dload.html

t’s been more than one year since our last release and yes, we are still alive! Like always, the length of the ChangeLog clearly shows we have been lazy to release but not lazy to code.

First off, we have uncovered some new security bugs in the AVI, Real and MOV code so we urge you to upgrade in any case.

Given how old pre7 is by now, it’s strongly recommended to upgrade. We also recommend users to test and use the Subversion version when possible in order to both benefit from latest development, and report/fix bugs. Contrary to running a development kernel, it won’t eat your data or make your cat pregnant, but it will help us improve the overall quality of MPlayer.

Among the many features that have been added, it should be noted that libavformat now supports a greater variety of files. If you have a hard time playing some files, please try demuxing with libavformat (-demuxer lavf). MEncoder can also take advantage of libavformat, in order to, for example, create Flash videos.

There have also been many enhancements to the H.264 decoder to make it a lot faster and more error-resilient. More audio and video codecs are supported. Audio/Video synchronisation has been further improved, especially on Real streams and Vorbis.

And that’s not it yet! We have some more tricks for you up our sleeves for upcoming versions of MPlayer: experimental DVDnav (DVD menus) support and an experimental graphical user interface for our Windows port. Please join in the testing effort so that these features don’t remain experimental ;-).

MPlayer 1.0pre8: “NeuTeam strikes back”

Security:

  • support for compilation with non-executable stack
  • fix the major issues caught by Coverity’s static analysis runs

Documentation:

  • environment variables documentation started
  • interactive control fully documented
  • improved encoding guide
  • new technical encoding guide in DOCS/tech/encoding-guide.txt which is to be merged into the existing guide
  • encoding tips for x264 and XviD
  • how to set up MEncoder for x264 support
  • new advanced audio usage guide with surround sound instructions
  • Hungarian XML documentation translation finished
  • Czech documentation translation finished
  • French MPlayer documentation synced
  • German man page synced
  • Hungarian man page synced
  • Italian man page synced
  • Chinese console messages synced
  • misc improvements all over the place
  • AIX port documentation added
  • all XviD options documented
  • CONFIGURATION FILES section added to the man page
  • Doxygen comments added to configuration parser and OpenGL video out driver

Drivers:

  • JACK audio output rewritten without bio2jack
  • OpenAL audio output - unfinished, can only do mono output
  • OpenGL video output modules support -geometry and -wid options
  • for -vo gl manyfmts is now default (since it is a lot faster), use -vo gl:nomanyfmts if it does not work for you
  • streaming textures for -vo gl, much faster if supported (use -dr)
  • hardware YUV to RGB conversion for -vo gl and -vo gl2, see yuv suboption
  • support for custom fragment programs for -vo gl (see TOOLS/*.fp)
  • support for bicubic hardware scaling in -vo gl, see lscale suboption
  • use libvbe from vesautils as VESA video driver
  • several fixes for the GGI video output driver
  • fall back on next video output driver if vo_3dfx failed to initialize
  • improved XvMC library detection (disabled by default)
  • DPI (Print-Resolution) and Pixel-Aspect support in vo_jpeg
  • ALSA audio output: several small fixes and improvements
  • removed experimental mmap suboption from the ALSA driver
  • YUY2 and back end scaling for S3 Virge chips on fbdev (-vo s3fb)

Decoders:

  • Indeo2 (RT21) support via lavc
  • Fraps video decoder via binary DLL
  • support for 8-bit PNGs with palette
  • support for dmb1 MJPEG files with ffmjpeg
  • support for musepack audio (WARNING: when seeking you might get ear- and speaker-breaking noises). If you hear clipping, use -af volume.
  • experimental speex support via libspeex
  • On2 VP7 video decoder via binary DLL
  • Duck/On2 TrueMotion2 (TM20) support via lavc
  • support FLX and DTA extensions for flic files
  • QDM2 audio decoding via lavc
  • cook audio decoding via lavc
  • TrueSpeech audio decoding via lavc
  • CamStudio video decoder via lavc
  • hwmpa pass-through MPEG audio codec
  • tremor updated to libogg 1.1.2
  • PNG decoding via libavcodec
  • removed native RealAudio codecs (ported to lavc)
  • Zip Motion-Block Video (ZMBV) decoder via lavc and binary DLL

mencoder -ss 0:21 -oac copy -ovc copy -endpos 3:21 red.avi -o o.avi

上面这个命令就可以将red.avi的 0:21 到 3:21 的片断切割下来,保存为 o.avi

原文链接: http://blog.sina.com.tw/3759/article.php?pbgid=3759&entryid=9778
Linux 上完全手动编译安装 Lighttpd + PHP4(FastCGI) + eAccelerator
需要软体
Lighttpd http://www.lighttpd.net/download/
PHP4 http://www.php.net/downloads.php
EAccelerator http://sourceforge.net/project/showfiles.php?group_id=122249

我目前的安装测试环境如下
Fedora core 3
MySQL 4.0.15a
CPU 塞阳 1.2G , RAM 384MB

由于是手动编译安装
因此请下载 tar.gz 格式的 source package
下载完之后 请放到 /usr/local/src

=================================================================================
第一步 : 先安装 Lighttpd
安装前的准备动作
首先要建立一个使用者来执行 lighttpd
可以下指令 useradd lighttpd
记得要把 /etc/passwd 的 lighttpd 这个 user 的shell从 /bin/bash 改成 /bin/nologin

开始安装 lighttpd
首先下指令 tar -xzf lighttpd-1.3.12.tar.gz , 把档案解开之后
下指令 cd lighttpd-1.3.12
然后要决定好 lighttpd 的安装位置
./configure –prefix=/usr/local/lighttpd
接着下 make , 如果 make 没问题 , 那就下达 make install 开始安装
安装成功之后 , 会发现LightHttpd 已经安装在 /usr/local/lighttpd

接着编写设定档 , 由于 lighttpd 不会帮你自动设定设定档 , 所以要自己写
或者把 /usr/local/src/lighttpd-1.3.12/doc 内的 lighttpd.conf 看看自己修改
这里提供一个设定范例 , 请各位下载本页的附件 , 有些许我加上的中文(big5)说明
然后请看每个注解 , 改成您需要的
PS : 附件中的设定档范例有 Virtual Hosts , PHP , 网页压缩与 user_dir 的设定,对一般人来说应该足够

若要使用我提供的设定档
请在 /usr/local/lighttpd 下建立 conf 文件夹与 logs 文件夹
然后把 lighttpd.conf 放到 conf 文件夹下
接着再把附件中的 spawn-php.sh 放到 /usr/local/lighttpd/bin 文件夹下
接着请下指令 chown lighttpd.lighttpd /usr/local/lighttpd -Rf
PS: 附件中的 spawn-php.sh 是把 PHP with FastCGI 的环境变数初始化 , 内容各位也可以改

到这步骤应该是都可以了 , 但是请先别急
由于 PHP 还没安装 , 因此现在若启动 lighttpd 要测试会发生错误
所以接下来要安装 PHP with FastCGI

=================================================================================
第二步 : 安装 PHP with FAST CGI
把工作目录切换到 /usr/local/src
然后下指令解开 PHP
tar -xzf php-4.3.10.tar.gz
接着进入 php-4.3.10 (cd php-4.3.10)
开始下指令
./configure –prefix=/usr/local/php-fcgi –enable-fastcgi –with-mysql=/usr/local/mysql –enable-zend-multibyte –with-config-file-path=/usr/local/php-fcgi/conf –enable-discard-path –enable-force-cgi-redirect

这部分若要加上其他 PHP 功能请自行加上参数
唯一与以前不同点是 , 编译成 fastcgi 模组 , 比需使用 –enable-fastcgi
以前与 apache2 一起编译是使用 –with-apxs2 , 此时不能再下这道指令

若没有问题 , 就执行 make 与 make install
这时候 PHP 会安装在 /usr/local/php-fcgi 这个文件夹了
然后在 /usr/local/php-fcgi 建立一个 conf 的文件夹
把 /usr/local/src/php-4.3.10 下的 php.ini-dist 复制到 /usr/local/php-fcgi/conf/php.ini
指令是 cp /usr/local/src/php-4.3.10/php.ini-dist /usr/local/php-fcgi/conf/php.ini

=================================================================================
第三步 : 安装 EAccelerator
把工作目录切换到 /usr/local/src
然后下指令解开 EAccelerator
tar -xzf eaccelerator-0.9.2a.tar.gz
接着进入 eaccelerator-0.9.2a 这个文件夹(cd eaccelerator-0.9.2a)
开始下指令
export PHP_PREFIX=”/usr/local/php-fcgi”
$PHP_PREFIX/bin/phpize
./configure –enable-eaccelerator=shared –with-php-config=$PHP_PREFIX/bin/php-config
make
make install
EAccelerator 会安装在 /usr/local/php-fcgi/lib/php/extensions/no-debug-non-zts-XXXXXX 这个目录
上面目录后面的XXXXXX 要自己看喔(非常重要)

接着要编辑 /usr/local/php-fcgi/conf/php.ini
找到一行 cgi.fix_pathinfo
要写成 cgi.fix_pathinfo = 1
若没有这行 , 请自行加入就可

然后加入
extension=”eaccelerator.so”
eaccelerator.shm_size=”8″
eaccelerator.cache_dir=”/tmp/eaccelerator”
eaccelerator.enable=”1″
eaccelerator.optimizer=”1″
eaccelerator.check_mtime=”1″
eaccelerator.debug=”0″
eaccelerator.filter=”"
eaccelerator.shm_max=”0″
eaccelerator.shm_ttl=”0″
eaccelerator.shm_prune_period=”0″
eaccelerator.shm_only=”0″
eaccelerator.compress=”1″
eaccelerator.compress_level=”9″
检查一下 extension_dir 这个设定是否如下
extension_dir = “/usr/local/php-fcgi/lib/php/extensions/no-debug-non-zts-XXXXXX/”
最后存档

=================================================================================
最后步骤 : 测试 lighttpd
lighttpd 我们是安装在 /usr/local/lighttpd
因此执行 /usr/local/lighttpd/sbin/lighttpd -f /usr/local/lighttpd/conf/lighttpd.conf
可以下 ps -aux 看看有没有许多 php 的行程
若有,那代表你成功了
你一定会烦..怎么那么多 php 程式啊 ?? 其实不要紧张
那些都是多执行绪 , 占用记忆体很小

如何关闭 lighttpd , 可以下指令 killall lighttpd , 这样就可以关闭
如何一开机启动 lighttpd ?
在 /etc/rc.d/rc.local 新增一行
/usr/local/lighttpd/sbin/lighttpd -f /usr/local/lighttpd/conf/lighttpd.conf
这样每次开机就会去启动了

如何测试效能 ???
若您之前有安装 apache with php
请先把 apache 用别的 port 来跑 , 例如 81
然后可以利用 apache 提供的 ab 来测试
例如 ab -c 10 -n 100 http://localhost/test.php 来测试 port 80
然后可以下 ab -c 10 -n 100 http://localhost:81/test.php 来测试 port 81
你会发现 lighttpd 跑的速度比 apache 快 50%~200% 以上喔 !!!!

==========================================================

讲解一下 , 为何用 lighttpd
1. 省记忆体 , 速度快
2. 使用 FastCGI 来与 PHP 做沟通 , 可以达到 chroot 的功能 , 不过范例中我没写上去 , 意思是每个用户有独立的读写权限 , 无法侵犯他人
3. lighttpd 的设定档虽然”目前”要自己写 , 可是其语法很容易理解

以下是我的测试效能
Lighttpd 的部分测试 phpMyAdmin
./ab -c 10 -n 100 http://192.168.0.254/~pigo/phpMyAdmin/index.php
This is ApacheBench, Version 2.0.41-dev < $Revision: 1.121.2.12 $> apache-2.0
Copyright (c) 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/
Copyright (c) 1998-2002 The Apache Software Foundation, http://www.apache.org/

Benchmarking 192.168.0.254 (be patient)…..done

Server Software: lighttpd/1.3.12
Server Hostname: 192.168.0.254
Server Port: 80

Document Path: /~pigo/phpMyAdmin/index.php
Document Length: 2463 bytes

Concurrency Level: 10
Time taken for tests: 2.250865 seconds
Complete requests: 100
Failed requests: 0
Write errors: 0
Non-2xx responses: 100
Total transferred: 267100 bytes
HTML transferred: 246300 bytes
Requests per second: 44.43 [#/sec] (mean)
Time per request: 225.086 [ms] (mean)
Time per request: 22.509 [ms] (mean, across all concurrent requests)
Transfer rate: 115.51 [Kbytes/sec] received

Connection Times (ms)
min mean[+/-sd] median max
Connect: 0 2 10.6 0 55
Processing: 19 86 106.9 21 706
Waiting: 19 85 106.5 20 704
Total: 19 89 112.5 21 751

Apache 2 的部分测试 phpMyAdmin
./ab -c 10 -n 100 http://192.168.0.254:81/~pigo/phpMyAdmin/index.php
This is ApacheBench, Version 2.0.41-dev < $Revision: 1.121.2.12 $> apache-2.0
Copyright (c) 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/
Copyright (c) 1998-2002 The Apache Software Foundation, http://www.apache.org/

Benchmarking 192.168.0.254 (be patient)…..done

Server Software: Apache/2.0.52
Server Hostname: 192.168.0.254
Server Port: 81

Document Path: /~pigo/phpMyAdmin/index.php
Document Length: 2463 bytes

Concurrency Level: 10
Time taken for tests: 13.81193 seconds
Complete requests: 100
Failed requests: 0
Write errors: 0
Non-2xx responses: 100
Total transferred: 278100 bytes
HTML transferred: 246300 bytes
Requests per second: 7.64 [#/sec] (mean)
Time per request: 1308.119 [ms] (mean)
Time per request: 130.812 [ms] (mean, across all concurrent requests)
Transfer rate: 20.72 [Kbytes/sec] received

Connection Times (ms)
min mean[+/-sd] median max
Connect: 0 39 155.1 0 918
Processing: 111 1141 1005.0 912 5239
Waiting: 10 1124 1008.6 911 5238
Total: 111 1181 1001.7 932 5239

uBrowser 是一个简单的浏览器,用 LibXUL 技术,把 Mozilla Gecko 引擎嵌入到了一个单独的应用程序。官方网站有更详细的关于这个浏览器的介绍,下载有两个版本,一个是源代码,文件很小,但配置很复杂。另一个版本直接运行版,下载后解压运行即可。这个浏览器的特点就是使用了openGL加速,你可以随意拖动网页,动态感非常强。刚刚用了一阵子,换成正常的浏览方式忽然有点晕了。希望尝新的朋友,快点自己去下载试用吧。

原文: http://www.ratiatum.com/news2874_Les_serveurs_de_Razorback_saisis.html

Razorback edonkey服务器是世界上最大的edonkey服务器,在线人数超过100万。但现在它已经成为过去了,比利时警察将服务器扣留了,它的两个管理员现在还不能联系上。当前得到的消息很少,Razorback的管理人员在当地时间2月21日早上10点左右被比利时联盟警察逮捕了,虽然Razorback在瑞士支付费用,但是它的服务器放置在比利时。Razorback服务器上并没有任何的不当内容和其他的版权内容。

MyMPC 系列之迪奥 DIY 版
一款专门为配合视频转换而打造的编解码器集成包

声明:本软件是由MyMPC 系列之精品 DIY 版改造而成,原作者为Silence。
致谢:Silence、风の铃音、阿飞、三月鸟、sdxy、空气空、比坂良、酒少爷及所有支持者。

注意:
1.推荐的安装环境是Windows XP,DirectX 9.0C,Windows Media Player 9/10,IE6,不支持Windows9x。
2.组件中有一些分离器、解码器的功能是重复的,故写上(默认启用)和(默认不启用)。(默认启用):装上即启用;(默认不启用):只是以文件方式复制,要使用时通过快捷方式切换启用。[学于AVPack]

组件:
AAC parser filter for DirectShow v 1.1.0
InterVideo Audio Decoder 6.0.88.0(默认不启用)
AC3/DTS Filter
AC3 Filter 1.01 RC5(默认启用)
APE 解码器
Gabest Avi Splitter 1.0.0.4
AviSynth 2.5.6a
CyberLink Video/SP Filter 6.0.0.1006(默认启用)
CoreAAC 1.2.0.573
CoreAVC Video Decoder 0.0.0.4(默认启用)
CoreVorbis 1.1.0.79
DC-DSP Filter 1.0.3.0(默认不启用)
DivX 5.2.1 解码器和编码器
ffdshow-20051129 builds by Daily
GraphEdit 9.4.78.0 汉化版
GSpot v2.52 Beta1 Build 040915 汉化版
GV Codec 1.2
Haali Media Splitter 2006.01.30(Matroska Splitter、MP4 Splitter、AVI Splitter、Ogg Splitter 都默认不启用)
Indeo 3.x-5.x(只有 XP SP1 及 2003 需要安装)
MPEG Layer-3 Audio Decoder 1.9.0.311
Lame MP3 codec 0.9.1.0(3.96.1) & LAME Audio Encoder 3.98 alpha 2
MatroskaDiag 1.0.0.62
Gabest Matroska Splitter v1.0.2.6(默认不启用)
Gabest MP4 Splitter 1.0.0.1
MPC 综合设置程序
Moonlight-Elecard MPEG 2 Demultiplexer 3.1.200.50117
Gabest Mpeg Splitter 1.0.0.0 (默认不启用)
Moonlight-Elecard MPEG2 Video Decoder 2.00.0.3611 (默认不启用)
Media Player Classic 6.4.8.7 蓝色网际汉化版
AC-3 ACM Decompressor 1.2
DivX;-) Audio Codec 4.1.00.3920
MPEG Layer-3 Audio Codec for MSACM 3.3.0.44
Ogg Vorbis Audio CODEC for MSACM 0.0.3.6
Gabest Ogg Splitter 1.0.0(默认启用)
Gabest RealMedia Splitter 1.0.1.1
RadLight MPC 解码器 版本:1.0.0.3 *不支持 Windows98
True Audio DirectShow Splitter 1.0.0.203 & Decoder 1.0.0.157 & Encoder 1.0.0.38
VobSub 字幕插件 2.33/2.37(默认启用2.33)
On2 VP6 Video Codec 6.4.2.0
On2 VP7 Video Codec 7.0.9.0
WavPack Audio DirectShow Splitter 1.0.3.277 & Decoder 1.0.3.431
Windows Media Video 9 VCM 9.0.1.0369
XVD 解码器 1.0.11.14
Koepi’s XviD Codec v1.1.0 final
QuickTime Decoder 7.0.3.50
RealPlayer 10.5 解码核心 & ActiveX 6.0.12.1348

更新:
2006.02.10:
-修正CoreAVC的版本为0.0.0.4,20060208版里的是0.0.0.2,这回真是挂羊头卖狗肉^^b。(感谢gxhunter指出)

本地下载:  DIODIY-20060210.exe

作者主页: http://dio1888.bokee.com/

FAQ:http://dio1888.bokee.com/2517607.html 

本文作者:kxn
神说,要有光,于是有了光;
神说,要灌水,于是有了 BBS

我们现在提到的 BBS ,通常指的都是 Telnet BBS ,用一个 term 软件连接上,就可以看到 文本的界面,比起如今花哨到无以复加的 WWW BBS 们来可谓是简陋到了极点,然而就是这样 的 BBS,无数人每天面对它长达两位数小时还乐在其中,恐怕 UI 设计专家们知道也要气到吐血。 也不时有人发表预言,预言 Telnet BBS 将很快消亡而被更加富有表现力的WWW BBS 全面取代, 只是年复一年,当年的预言者已经消失不见,BBS 上的用户数目却翻了一番又一番。。。这就是 Telnet BBS 的魅力。

Telnet BBS 系统数目众多,但是从根源找起,大致可以分成两大家族,Firebird BBS 和 Maple BBS,在大陆 Firebird BBS 的变种占据了绝对优势,在台湾地区则是 Maple BBS 的天下,由于 台湾地区计算机发展历史比较长,因此 BBS 的人气也比大陆高,同时上站人数过万的站点有好几 个,不过大陆毕竟有着人口优势,近年来教育网几大 BBS 的人数也迅速增长。下面我们就分别介 绍这两大 BBS 家族。首先是在大陆最为流行的 Firebird BBS ,最有名的 SMTH BBS, YTHT BBS, Firebird 2000 三大流派都是由此而来。

很久很久以前,有那么一群大学生,也可能是科研机构的研究员什么的,他们整天在Unix 主 机上面打滚,觉得要是能在主机上面做一个论坛样的东西多好,于是他们就写了一个命令行程序, 运行这个程序,操作者可以在界面下面留言,为了让多个人同时可以操作这个系统 ,他们把这个 程序设置为系统某个用户的 shell ,每个 telnet 上该主机的用户,只要使用这个用户的用户名和 密码登陆,就可以进行交流。这就是 Internet BBS 的雏形。经过一段时间的发展,这个系统具有 了相当多的交互功能,用户不仅可以留言,还可以互相发送信件,发送信息,看到同时在线的用 户等等。

BBS 系统的开发者们为了让更多的人能使用这个系统并完善之,将BBS 系统以开源协议发布 于网络上面。只要拥有Unix 主机,就可以取得源代码并安装BBS 系统。因此BBS 系统以很快的 速度发展起来。在众多BBS 系统中,某个叫做 Pirate BBS ,经过某些人修改后叫做 Eagle BBS 的 分枝,流传入了台湾地区,交大资讯工程系从他发展出了 Phoenix BBS,Phoenix BBS 是如今大部 分中文 Telnet BBS 系统的祖先,然而它的名字却远不如其后辈响亮,在它的基础上由中正资工进 一步修改的 BBS 系统,被赋予了那个大陆 BBS 开发者耳熟能详的名字――Firebird BBS。
应该说, BBS 系统在传入台湾地区时候虽然功能还比较简陋,但是 BBS 系统的基本架构已 经定型,比如多进程模型,共享内存信息交换,利用系统信号来传递呼叫消息,用文件存储文章 和索引等,这些设计在现在的 BBS 系统中大部分还在沿用,其中不少设计即使现在来看,也是相 当标准有效的多进程 Unix 服务器设计。

Telnet BBS 是一种流行于大学和研究机构中的电子公告牌系统,和时下流行的Web BBS 系统不同,BBS 的界面采用纯文本方式表现,用户使用终端软件连接BBS 系统,文本界面在 服务器端生成并发送出来,客户端软件仅原样显示文本内容,属于一种瘦客户机的应用。Telnet BBS(后面除非特殊提到,否则简称BBS)在台湾地区和大陆的教育网地区比较流行,比较 大规模的站点在线人数一般都在万人以上。

由于历史原因,BBS 系统采用的是Unix 下相当传统的1:1 多进程模型,每进程处理一个连接 的模型,此种模型的好处是服务相对比较稳定,不会因为一个用户出错导致整个系统的不可用, 但是也带来耗费资源较多和进程之间通信比较困难的问题。BBS 服务器端的复杂逻辑也使得分布 式设计很难实施。因此BBS 通常是单机承担几乎所有负载,大陆地区较大规模的BBS 服务器上经 常同时保持超过7000 进程,台湾地区的BBS 站甚至有并发20000 进程以上的纪录。 我们在维护大型bbs 站点的过程中,积累了一些优化和维护如BBS 这样高并发进程服务器的 经验,考虑到1:1 进程模型服务仍然有很广泛的应用,在这里写出和读者共享。

优化服务器是综合性的工作,不仅需要修改代码,还需要调整系统参数,包含有很多琐碎的 内容,根据目的来讲,大致可以根据节约资源的类型分为磁盘IO 优化,内存优化,和CPU 优化 等几方面。下面介绍的优化思路虽然应用于BBS,但是也适用于其他应用系统。

1: 磁盘IO 优化
磁盘IO 优化可以说是服务器优化中最重要的一环,除了极少数的纯计算性应用,几乎所有的 重载服务器最后都是卡在磁盘IO 瓶颈上面。
a) 尽量使用shm 等IPC 手段而不是文件
多进程和多线程相比,最大的麻烦是不同执行环境交换信息不方便,因此很多程序员选择了 使用文件交换信息,例如最早的BBS 设计中,用户的帐户信息是存在于文件中的,进程从文件中 读出内容,有修改后就写入文件。改进后的设计是将账号信息文件完整读入共享内存,所有修改 都写入共享内存,然后由外部进程定时往磁盘上面同步。 甚至flock 这样看起来不会造成太多IO 的同步操作都应该尽量避免,原因是flock 需要先open 文件,而open 文件需要找到i 节点,因此会占用文件系统的inode 缓存空间,可能造成其他IO 操 作的性能降低。在很多情况下面需要的只是一个跨进程的mutex,可以使用0/1 信号灯来实现。
b) 使用应用层缓存。
很显然,操作系统的缓存会受到很多因素的干扰,对于一些确定会经常访问的内容,例如版 面的最新几片文章和最新列表,如果放入shm 中缓冲,性能会有大幅度提升。
c) 尽量减少关键IO 数据结构的大小
Bbs 文章列表的索引文件是由定长数据结构构成的,在这个数据结构中为了将来扩展方便,留 下了很多保留域,造成了很多不必要的IO,删除不必要的域之后,数据结构变小了一半,减少了 很多IO。很多时候,扩展性和性能其实是对立的,如果很需要性能,那么损失一定的扩展性也是 不错的选择。
d) 避免在同一目录下放过多文件或者使用合适的文件系统
大部分文件系统对在同一目录中的文件列表采用线性存储,因此在一个目录下面存在很多文 件的时候,打开文件变得非常的慢,因此通常要将文件根据某种规则散列到不同的子目录中,例 如,文件 Atest 会被存放在 A/Atest ,如果文件太多,可能会需要对子目录下面的文件再次进行 散列。
另一种解决文件过多影响效率的方法是使用有特殊优化的文件系统,例如Linux 下的reiserfs。 在这些文件系统中,目录中的文件列表是用平衡树来组织的,因此同一目录下面可以同时有数十 万个文件而不会降低太多性能。
e) 根据系统的访问模式选择适合的硬件配置和系统参数
Bbs 系统使用零散的文件存放文章,它的访问模式基本是小文件随机读写,而文章数据相对比 较重要,因此bbs 使用strip 大小比较小的raid5 比较合适。文件系统选择专门为小文件优化的 reiserfs,系统的预读长度也可以调小一些,Linux 默认的长度是 256K, 有些偏大。如果是大文件 连续读写的话,那么raid 的strip 大小和系统的预读长度应该放大,文件系统则尽量选择结构简单 的文件系统例如ext2/3 等,如果数据并不是非常重要,那么甚至可以取消raid5,代之以raid0 或 者直接使用单独的硬盘。
2: 内存使用优化
Bbs 系统使用的多进程模式相当耗费内存,在BBS 发展过程中,最早遭遇的瓶颈就是内存。 减少内存的不必要浪费,可以节约出来作为系统缓存,从而间接提高更重要的IO 性能
a) 尽量避免动态初始化常量,使用const 说明将变量和常量区分开来。
Unix 系统在fork 出新进程的时候,子进程和父进程共享相同的空间,之后按照COW 机制, 对修改的页面才进行复制操作,常量如果可以预先计算出来(例如一些转换表之类),就应该尽量 避免在运行时动态初始化。另外因为只要修改一个字节,整个页面就都会被复制,因此应该避免 常量和会被修改的变量混在一起,编译器本身会自动将不会被修改的内容放在一起,程序员需要 做的事情,就是用const 通知编译器哪些内容是不会被修改的。
b) 减小内存的峰值使用,特别是堆栈中内存
很多人习惯写程序时候在堆栈上声明一个比较大的临时数组,认为退出函数之后这部分内存 会自动被释放。殊不知这样分配的内存并不会被动态被系统回收,因为系统并没有一个明显的标 记可以得知堆栈内存是否还在使用中,特别是在多线程的环境下面,操作系统通常采用的措施是 需要的时候分配页面,但是在进程退出之前并不回收。即使是通过malloc 分配的堆内存,其页面 是否回收也视库函数的实现而不确定。因此在无论什么情况下,贸然分配过大的内存,都会对性 能造成一定的影响。
c) 如有可能,尽量使用shm 来保证页面一定会被多个进程共享。
3: CPU 优化
这里说的CPU 使用优化,不包括像使用hash 来代替线性查找这类最基本的算法优化,而是涉 及一些和系统关系比较密切的操作。
a) 使用针对硬件优化的编译器
这应该是所有CPU 相关优化中最容易做到也是最容易看到效果的,Intel CPU 的Linux 系统上 面使用 Intel C/C++ 编译器,可以获得很好的效果,甚至AMD 的Athlon 系列CPU 也能获得一定 程度的加速。BBS 进站时候需要初始化很多内容,计算量比较大,使用gcc 时候负载在4 左右, 使用icc 编译以后负载马上下降到1 以下。推荐编译时候针对特定CPU 指令集优化并且打开跨文 件优化选项(-ipo)
b) 使用单独进程来初始化和维护共享内容,避免出现竞争导致逻辑错误 严格讲这并不能提升很多性能,只是为了减少多进程服务器上面经常出现的逻辑错误。在原 始的BBS 设计中,共享资源的创建是由第一个访问的进程在打开失败时候创建的,但是重负载服 务器上面有时候打开也会失败,从而导致多次创建共享资源。
c) 序列化容易导致负载上升的行为
BBS 进程在进站时候需要进行很多的初始化工作,同样进程退出的时候也要做很多的收尾工 作,此时对CPU 或者IO 的占用比较大,通过一个互斥锁可以使多个进程不要同时进行这些操作, 否则系统负载有可能上升到一定程度引起正反馈,导致系统彻底崩溃。
d) 尽量减少信号的使用
Unix 系统下面对于信号的实现的代价是比较大的,同时信号本身也很容易导致处理逻辑的混 乱。高负载服务器应该尽量减少信号的使用。
e) 对于大范围IO 读取操作,使用mmap 调用
使用mmap 操作比传统的read 操作好处是减少了一次内核态到用户态的拷贝。在大范围IO 操 作的时候具有优势,BBS 中使用mmap 操作来在文件中搜索内容,速度最高时候提高了5 倍左右。 但是需要注意的是,mmap 并不适用于有写入的情况,因为mmap 写盘的时候是以页为单位进行操 作,页中只要有一个字节被改写,就要往磁盘上面写整个页面的数据,无端增加了IO 量。
以上是我们在维护大型BBS 站点时积累的一些经验,供各位读者参考。

« Previous PageNext Page »