2006年02月04日

进程统计(process accounting)可以记录linux系统内执行的每个命令/进程的执行时间、占用内存等情况,可用于评估用户日常命令操作的profile/常用命令、系统资源占用是否存在瓶颈或使用不足的情况以及是由于哪个进程造成的。

1. 首先确认你的linux内核支持process accounting功能

在内核配置菜单”general setup”里面的”BSD process accounting”,注意不要选择v3 file format

2. 在/etc/rc.local里面增加以下命令,这样在系统启动时自动打开进程统计功能

accton /var/account/pacct

3. 以root用户执行以下命令观察统计结果

sa -u

输出例如:

root 0.00 cpu 378k mem 0 io hostname

root 0.00 cpu 550k mem 0 io bash *

root 0.00 cpu 381k mem 0 io dircolors

root 0.00 cpu 550k mem 0 io bash *

root 0.00 cpu 410k mem 0 io egrep

root 0.00 cpu 550k mem 0 io bash *

root 0.00 cpu 410k mem 0 io grep

root 0.00 cpu 550k mem 0 io bash *

root 0.00 cpu 410k mem 0 io grep

root 0.00 cpu 395k mem 0 io id

root 0.00 cpu 550k mem 0 io bash *

root 0.00 cpu 344k mem 0 io consoletype

root 0.00 cpu 1068k mem 0 io bash *

root 0.00 cpu 344k mem 0 io consoletype

root 0.00 cpu 890k mem 0 io kbd_mode

注意,日志文件/var/account/pacct在运行一段时间后可以会很大!

遗留问题:
* 没有记录命令/进程的启动、停止时间(wall clock)

2005年12月10日

一般原理

  1. Refuse every commitment that is not essential.
  2. Place every commitment you make, no matter how trivial, into a tracking system.
  3. Review everything in you system without fail every Monday, refactoring undoable items into doable steps.
  4. Review the doable items you have without fail every day.



基本规则

  • automate *everything* the each time you find yourself repeating a task
  • for the most productivity, nothing beats a console. (or Full Screen: "keep everything I do in one window")
  • 多用keyboard shortcuts



bash & ssh

  • Set up Ssh to allow you in to your usual haunts without a password
  • bash: Ctl-R history recall search feature
  • crank up your history list to a few thousand entries and set it to forget dupes,这样大约可以保存数月的历史记录
  • For example "ls foo" would get you to your previous command
    that starts with ls foo, even if it wasn’t the last command you typed.
In your .inputrc:
"\e[A": history-search-backward
"\e[B": history-search-forward
  • Make your history immediately available from all your bash instances
in your .bashrc:
shopt -s histappend
PROMPT_COMMAND='history -a'
  • bash completions [caliban.org]: Quasi-telepathic tab completion



X & windows manager

  • 采用大显示器:1600x1200;采用多显示器!
  • 采用简单的WM:Fluxbox, ICEwm, Fvwm, Xfce, WindowMaker, enlightenment, ...?
  • 采用Multiple desktops! Create a convention on how you would use your multiple desktops
  • 在任何WM下仍然可以运行:"kicker" for KDE's panel, "gnome-panel" for Gnome's, and "xfce4-panel" for Xfce's
  • Ratpoison [nongnu.org]-the mouse-less, window-less window manager, or better ion [cs.tut.fi]
    Pane-based (v. window-based) window managers. Little to no wasted
    screen real estate. Significantly reduced mouse usage. allows you to
    completely control and automate your window mangement.
  • GNU Screen [gnu.org] is a featured packed window manager
    that multiplexes a physical terminal between several processes; an
    essential feature if you use ssh alot. Among many other abilities,
    screen+ssh can provide VNC-like capabilities for your terminal sessions
  • root-tail is a program that allows printing of text directly to the X11 root window
  • 用于多显示器情况下:Xdmx and xmove. Possibly NX as well



KDE & konqueror

  • Just enter in Konqueror fish://user@yourdomain.com; Your
    remote files appear in Konqueror & you can then copy/paste etc to
    your local filesystem.(基于ssh,无须安装nfs/samba)
  • man:screen or info:glibc as a URL in konqueror
  • KDE's alt-f2 dialog. It does integer arithmetic and opens URLs
  • Type 'gg:whatever' in that alt+f2 dialog, or any konqueror,
    and you'll be taken to google. Same thing for imdb, fm [freshmeat], etc


摘自:

slashdot - Time Saving Linux Desktop Tips?


2005年11月20日

目前的media center,包括DVD机/xbox+xbmc/pc+geexbox|movix等方案,要想HDTV化,可以考虑3种可选方案:

1. HTPC或普通PC+支持HDTV out的显卡

HTPC本身主要解决外观/散热/噪音/体积等问题,主要还是内部零件的选择。比较倾向于A64或Sempron+整合主板:优选Nvidia
C51G/PV,RS480的方案,或者用独立显卡的话需要能够较好地支持3D gaming,如Doom3/Quake4, HL2, Far
cry, F.E.A.R等顶极FPS类游戏。但据说媒体播放时,Intel P4的性能要高一些,考虑到P4的功耗和低效,实在不愿考虑。

显卡方面,主要考虑6200/6600等中低端显卡;如果只用于HDTV播放目的,S3的deltachome也是一个不错的选择

另外还要考虑的是,希望能采用Linux作为操作系统,这方面显卡的驱动是个难点;基本上微软的xp media center的方案不用考虑,有点笨重

采用PC的方案,成本大约在2500~3000,好处是功能全面;

2、国产hdtv影碟机

就是HDTV中国网(http://www.hd-tv.cn)的版主推出的一款国产机器,好像是地下制作?,采用sigma design的套件和方案,包括一个VIA的嵌入式主机(166MHz x86),运行linux,支持网络和WiFi。

这个方案好像看到有的IPTV机顶盒在用。他们主要是做了硬件制造和UI的定制。

价格约2000。有些贵,毕竟不是通用器件,但易用性好一些?

3. xbox360/ps3作为media center

就像xbox media center软件(xbmc)那样,用xbox360支持HDTV肯定没问题。xbox360已经上市,应该能够很快破解。由于xbox在欧美市场的优势,而主要的黑客也是集中在欧美地区,预计xbox360应该比ps3更快被破解?

成本大约2500~3500左右。


关于HDTV的片源问题

目前主要的来源还是emule/BT等。在emule上搜索了一下,不算HDTV的电视剧集,movie或demo应该不超过300部,720p或者1080i的都有;一部片子3G左右,而目前P2P网络的速度确实比较痛苦。看来片源的问题仍然是HDTV实用性的最大问题。

2005年10月16日

1. kozoru

是个典型的web 2.0公司,在web 2.0 2005大会上有很多信息;据说其核心技术是基于问答模式的信息检索服务,但是目前在其网站上还没有相关演示。

根据其宣传片,其产品是通过即时消息IM作为人机接口,实现问答式交互,其实现了对自然语言查询进行结构分析和理解。产品计划在2006年4.15日发布,听起来很高级呵

2. Glenbrook Networks-所谓vertical search技术

基本上是模拟人的网站访问行为,能够自动注册和登录一些需要帐户的网站,然后可以进一步挖掘网站内部的深度信息:

The Trawler consists of five layers:

1. Discoverer – locates perspective target home pages in Surface Web

2. Scout – navigates Surface Web part of a web site and finds the
“doors” – DHTML pages that contain forms leading to the Deep Web part
of a web site

3. Locksmith – fills up the forms with various requests and collects responses

4. Assessor – analyses responses and makes a decision to use this door
as candidate to query the Deep Web part of the site or move elsewhere

5. Harvester – collects all relevant pages from Surface and Deep Web parts of the web site

他们网站上有一个基于该技术的演示,可以显示出硅谷地区各类job招聘需求的地域分布情况。

2005年10月15日

根据slashdot上的这篇文章,以下列出受影响的DC/DV相关型号(未作确认,仅供参考);故障现象是这样滴,可怜我的V1也在里面,呜呜

(有关该问题的报道请参考:受问题索尼CCD拖累 日数码机在华遭信誉危机)

Digital still cameras

  • Canon:

    • Digital IXUS V3, Digital IXUS II, Digital IXUS II2
    • IXY DIGITAL 320, IXY DIGITAL 30, IXY DIGITAL 30a
    • PowerShot A60, PowerShot A70, PowerShot A75, PowerShot A300, PowerShot A310
  • Fujifilm:
    • FinePix A303 (serial 3100****, 3101****, 3JA4****, 3JA5****)
    • FinePix F410 (serial 3100****-3105****, 32A1****, 32A6****, 32A7****, 32A9****)
    • FinePix F700 (serial 3312****, 3313****, 33A0****, 3402****, 34A1****)
    • FinePix S2Pro (serial 310110**-310115**, 320000**-320008**, 330000**-340001**)
  • Konica Minolta:
    • DiMAGE 7i, DiMAGE 7Hi, DiMAGE A1, DiMAGE F300, DiMAGE S414, DiMAGE Xi, DiMAGE Xt, DiMAGE X20
    • Digital Genba Kantoku DG-2, DG-3Z, DG-4W
  • Sony:
    • DSC-F717
    • DSC-P2, DSC-P7, DSC-P8, DSC-P10, DSC-P12, DSC-P31, DSC-P32, DSC-P51, DSC-P52, DSC-P71, DSC-P72, DSC-P92
    • DSC-U10, DSC-U20, DSC-U30, DSC-U60
    • DSC-V1
    • MVC-CD250, MVC-CD400, MVC-CD500
    • MVC-FD100, MVC-FD200

Digital video cameras

  • Canon:

    • Elura 40 MC, Elura 50
    • FV40, FV50, FV300, FV400
    • IXY DV3, IXY DV5
    • MV5i, MV5i MC, MV6i MC, MV600i, MV630i, MV650i, MV700i, MV730i, MV750i
    • ZR60, ZR65 MC, ZR70MC, ZR80, ZR85, ZR90
  • Sony:
    • CCD-MC100
    • CCD-TRV106K, CCD-TRV107E, CCD-TRV116, CCD-TRV118, CCD-TRV128,
      CCD-TRV218E, CCD-TRV228, CCD-TRV228E, CCD-TRV318, CCD-TRV328,
      CCD-TRV418, CCD-TRV418E, CCD-TRV428, CCD-TRV428E
    • DCR-DVD91E, DCR-DVD100, DCR-DVD100E, DCR-DVD101, DCR-DVD101E, DCR-DVD200, DCR-DVD200E, DCR-DVD300
    • DCR-HC14E, DCR-HC15, DCR-HC15E, DCR-HC16E, DCR-HC18E, DCR-HC20, DCR-HC20E, DCR-HC30, DCR-HC30E
    • DCR-IP5, DCR-IP5E, DCR-IP7E, DCR-IP45, DCR-IP45E, DCR-IP55, DCR-IP55E
    • DCR-PC101, DCR-PC101E, DCR-PC101K, DCR-PC103E, DCR-PC105,
      DCR-PC105E, DCR-PC105K, DCR-PC106E, DCR-PC107E, DCR-PC108, DCR-PC108E,
      DCR-PC115, DCR-PC115E, DCR-PC120, DCR-PC120E
    • DCR-TRV14E, DCR-TRV16, DCR-TRV16E, DCR-TRV18, DCR-TRV18E,
      DCR-TRV18K, DCR-TRV19, DCR-TRV19E, DCR-TRV22, DCR-TRV22E, DCR-TRV22K,
      DCR-TRV24E, DCR-TRV25, DCR-TRV25E, DCR-TRV27, DCR-TRV27E, DCR-TRV27PK,
      DCR-TRV33, DCR-TRV33E, DCR-TRV33K, DCR-TRV33PK, DCR-TRV38, DCR-TRV38E,
      DCR-TRV39, DCR-TRV40, DCR-TRV40E, DCR-TRV50, DCR-TRV50E, DCR-TRV147E,
      DCR-TRV240E, DCR-TRV250, DCR-TRV250E, DCR-TRV255E, DCR-TRV260,
      DCR-TRV265, DCR-TRV265E, DCR-TRV340, DCR-TRV340E, DCR-TRV361,
      DCR-TRV460, DCR-TRV460E, DCR-TRV461E, DCR-TRV740, DCR-TRV740E,
      DCR-TRV840, DCR-TRV940, DCR-TRV940E, DCR-TRV950, DCR-TRV950E
    • DCR-VX2000, DCR-VX200E, DCR-VX2100, DCR-VX2100E

Professional camcorders

  • Sony:

    • DSR-250, DSR-250P
    • DSR-PD150, DSR-PD150P, DSR-PD170, DSR-PD170P, DSR-PDX10, DSR-PDX10P

Other products

  • Sony:

    • Clie PEG-NZ90
2005年10月07日

    经过这段时间对xen的试用,我是非常推崇这个软件的,以下从几个方面,包括源码的规模统计角度来对比xen同其他类似软件的优势

1. xen同qemu等模拟器软件的比较
    我们知道,xen采用了部分虚拟化技术(paravirtualization),需要对guest OS的代码进行修改,以便同虚拟机核心监控代码进行协同,这样可以提高系统的性能,并降低实现的复杂度。
    xen代码的规模为:2.0版本 ~120k LOC(用sloccount软件统计),3.0测试版~300k LOC;代码主要包括xen核心,管理工具,内核补丁三部分,主要用C语言加部分汇编编写,工具部分也大量用到了python;
    作为对比,qemu的源码规模约135k
LOC,主要是用于CPU和硬件模拟的代码;开放源码的部分不含kqemu这个虚拟化软件,因此,qemu可以认为是一个类似bochs的纯模拟器
(bochs代码规模类似,~150k LOC),其优势是适应性强,缺点是性能低;

2. xen同其他采用部分虚拟化技术的类似软件的比较

同xen原理有些类似的软件包括:

* colinux-这是一个在windows上运行linux的软件,原理有点类似于部分虚拟化技术,这个软件最初是由一个日本的学生编写,规模较小~30k;

* IBM的rhype-是IBM的hypervisor虚拟机软件的开源研究版本,规模~45k行,采用c和汇编开发;

从代码规模判断,xen同这些软件相比是比较成熟和完善的;

3. xen同linux VServer和UML的比较

* Linux vserver
一个类似于BSD
Jail的方案,同样可以达到在一台机器上运行多个linux的目的,它比xen能更节约硬盘空间,比较适用于提供hosting业务的服务商,缺点是在
操作管理上不如xen方便,因为xen操作起来同操作物理机器没有什么不同; vserver的代码规模不大-内核补丁:~12k;工具代码:30k;

* Uml(user mode linux)是一个已经包含在linux
2.6内核中的软件模块,其2.4内核补丁规模约~40k;Uml的缺点是性能比较差,现在有了xen以后,基本上没有理由再用uml了,所以现在有不少
关于将xen合并入linux内核的建议和讨论;

4. xen同vmware等商业软件的比较

同vmware相比,xen的主要优势一是性能,特别是处理I/O任务时的性能,同真实机器性能下降很少,这对服务器等应用非常关键;虽然vmware同开源的qemu+kqemu软件相比性能要高很多,但比xen仍有不小的差距;

第二个优势是稳定性,这是由软件架构而决定的。xen非常聪明地利用了linux开源的特点,而采用了部分虚拟化的技术,因此从实现的复杂度、适应性和稳定性方面都要比vmware有优势,实际使用也确实如此;稳定性对于服务器应用而言也是非常重要;

第三个就是xen经常宣传的live migration,就是可以动态地将某个虚拟机从一个物理机器迁移到另一个物理机器,而中间的业务中断时间只有几十~几百ms,这个特性也是在服务器应用里面非常有价值的,我暂时还没有机会实际使用。

小结
    由上述可见,xen同linux是一个完美的组合,是目前linux上的最佳的虚拟化解决方案,特别适合于服务器应用,如用于将多个服务器合并到一台物理
服务器上,以节省运营成本(机房空间、电力消耗);或者是出于安全角度的考虑,需要将不同的应用进行分区,以便降低安全风险等。
    出于类似的考虑,xen得到了很多linux厂商的大力支持,其中包括novell等大公司。
    目前xen还不是很合适作为桌面应用,例如xen的2.0版本还不支持agppart和声卡设备虚拟化,运行x-windows将比较困难。
    另外,利用intel和amd最新CPU的内嵌虚拟化特性,xen也可以支持windows作为guest OS。不过我觉得这样的情况并不是很有价值。

参考资料

* wikipedia上对xen的介绍

* linux 上的虚拟机方案评价

2005年09月17日

今天在wikipedia上逛了很多时间。wikipedia在IT架构方面的经验,对于我们构建网站极有参考价值,因为wikipedia提供的这些信息非常详细和确凿。(以下是我的简单总结,仅供参考,准确信息请访问参考资料)

wikipedia目前一年大概可以募集约10万USD的捐款。其中90%都用于购置服务器等硬件以及租用机房/带宽等费用,另外来自大公司捐赠的hosting资源(如yahoo),包括服务器/IDC资源等。

  • 数据库服务器:MySql,7台,AMD64平台,4~16GB内存,FedoraCore3;
  • Cache服务器:squid,~17台,P4,3~4GB内存,1U机架服务器,FedoraCore3;
  • Squid 大部份應付未登入使用者的需求,快取命中率達75%,有效的減輕Apache的負載。負載平衡是以Round-Robin DNS法來達成。

  • Web服务器:Apache,49台,P4,1~4GB内存,1U机架服务器,FedoraCore2;
  • 運行PHP,且搭配Turck的PHP快取系統以增進效能。這些伺服器以NFS共享工作目錄,以實現同步運作

  • 其他服务器:~8台,用于NFS、DB dump、DNS、社区运作,如email, irc等,机器比较杂,配置较低,运行较老版本的linux
  • 总共83台服务器;说明LAMP已经非常成熟可用于世界级的大网站应用。

    目前wikipedia的服务器访问量平均在1400req/s,峰值到2000req/s。流量方面,数据库服务器的流量大约在8MB/s(单机?);

    软件方面,mediawiki的最新版本的代码量大约为13万行(PHP代码);

    下图为wikipedia网络架构



    参考资料

    * Wikipedia meta

    * wikipedia server原始资料中文

    2005年09月11日

    怎么没看到什么纪念的活动消息呢?

    google的图标也没有变化。

    哎,我倒是搞了一个纪念活动,观看电影“war of world”;据说这部电影是在当年由于怕引起9-11的不良回忆而延迟到今年拍摄播出的。里面确实有很多情节可以同9-11事件有一些联系。

    2005年08月24日

    以下只评估开源方案(商业软件包括-vmware, MS virtualPC, win4lin, 等)

    1. qemu方案

    优点:不用修改guest os,使用方便;可以支持win2000作为guest OS,支持win98/2k/xp作为host OS

    缺点:virtualization模块不开源,以二进制代码发布;速度不是太理想,例如在guest OS里面运行wine+superpi就有问题

    速度:模拟方式-1/5~1/10;虚拟方式-接近全速

    适用场合:主要用于替代vmware的场合,在桌面环境上运行guest OS,如对新的linux发行版的评估、学习等。

    2. xen方案

    优点:速度快,开销低,兼容性好

    缺点:需要修改guest os内核代码,目前只支持linux作为Guest/Host

    适用场合:主要作为server虚拟化应用,如把几台server整合到1台物理server里面,或者是从安全性角
    度考虑,把各个应用用不同的(虚拟)服务器隔离开。并且xen的效率较高,开销不大,适合长期运行,增加新的虚拟服务器只需要扩充内存和硬盘就可以了。由
    于linux开放源码的优势,用xen虚拟化的效率是vmware无法相比的。xen现在已得到redhat和novell的支持。

    3. Linux VServer方案

    优点:非虚拟化技术,而是类似chroot的概念,可以限制guest os的存取范围,起到隔离的效果;效率高,CPU和文件系统额外开销都很小

    缺点:需要修改内核;各guest os必须采用同一个linux发行版本,无进程隔离和内存隔离的效果(可能看起来有)

    适用场合:同样可以作为server consolidation场合,与xen相比各有千秋。

    2005年08月21日

    最近网上传的很火,苹果Mac OS X的x86版本被破解了,可以在普通pc机上跑起来。不过网上介绍的操作步骤多且语焉不详。初步研究了一下,主要的原理如下:

    1. 合法获取Mac OS Tiger x86 Developer Kit Install DVD

    2. 用PearPC软件将该DVD安装到某一硬盘映像文件内(不是太理解这一步,PearPC是在PC上模拟Mac PowerPC的软件,难道上述DVD是在苹果机上直接安装的么)

    3. 用VMware安装Darwin 8.0.1,以及升级到8.1(这是苹果公司的开源OS核心部分,这就说明x86版本的内核就仅仅是Darwin,Tiger等GUI应用就架构在它上面)

    4. 在VMware里运行的darwin上,把PearPC生成的Tiger硬盘映像加进去

    5. 进行patch, 破解如TPM、SSE3等限制(oah750d ditto.tgz CoreGraphics.tgz等)

    6. OK

    似乎并不是所有的Tiger程序都移植到了x86上,以此需要用Rosetta这个模拟器来运行PowerPC代码,而Rosetta需要SSE3支持

    如果需要脱离Vmware的Native运行,可能还要麻烦些,硬件要求如下:

    * CPU: must support SSE3

    * Chipset: Intel 915 chipset (others may work if they support ich4 or ich5)

    * GPU

    o Intel Graphics Media Accelerator 900

    * Motherboard

    o Intel D915GUXLK (http://www.intel.com/design/motherbd/ux/ux_available.htm)

    当然也可以获取已经安装和补丁后的映像文件,没有这么麻烦,但这是非法的!

    目前还不是很清楚这个版本的中文支持程度如何。

    Tiger的价值

    对我而言,Tiger的很多功能很有吸引力,特别是Spotlight这个桌面搜索引擎。用过iTunes软件的就能体会spotlight的强大、高效。

    参考资料

    http://www.osx86project.org/

    http://wiki.osx86project.org/