最近看n多报道说facebook的HipHop的VM性能已经超过的编译版的,所以特意尝试了下Facebook的HipHop,现在把安装笔记记录一下。
最近看n多报道说facebook的HipHop的VM性能已经超过的编译版的,所以特意尝试了下Facebook的HipHop,现在把安装笔记记录一下。
现在开始补日志,逐步的扫清以前写了一半的和“欠账未还的”。半年之前开的头,今天先把NUMA说完。 PC硬件结构近5年的最大变化是多核CPU在PC上的普及,多核最常用的SMP微架构:
昨天下午的技术讨论会上说到了数据库的按时间点的进行实时备份和归档,当时的讨论都是基于日志如何来做。 这个问题需要做到以下几点: 因备份而引起的中断数据库服务的时间尽可能短; 能够迅速的让数据库使用备份的数据rollback; 归档的备份数据能在专门的备份机统一保存,方便本机失效后的处理; 如果可能,归档备份的数据能做到增量备份,以节省备份机的磁盘空间,同时方便快速传输。 从数据库本身解决这个问题,可能受困于已有的数据库设计和代码,不非常容易。换个思路,可以基于fs的snapshot来做。 在*nix系统下功能最强的snapshot首推zfs,本身支持文件系统快照,支持增量备份,并内置了zfs send工具能直接把备份快照、或增量备份快照发送到另外一台物理机器上(也必须是zfs)。但必须使用FreeBSD 8以上或者是 OpenSolaris。但是由于公司的机器都是GNU/Linux的,退而求其次选择LVM。 在家里的E8200 + Debian 6.0.0 i386系统上做了测试,首先是使用lvm创建分区,创建了一个名为main的60GB大小的Volume Group,同时在里面建立了一个名为main0的10GB的Logical Volume挂载“/”,并格式化为ext3。 拷入6GB的数据文件,然后创建snapshot: # lvcreate -s -L 7G -n snap-`date +%Y%m%d%H` /dev/main/main0 这一步消耗时间只有0.5s左右,而且测试了拷入20GB的数据文件,snapshot时间基本无变化,详细看截图: 然后在/dev/main/下新加入了snap-`date +%Y%m%d%H` LVM逻辑卷,可以挂载此snapshot分区: # mount /dev/main/snap-`date +%Y%m%d%H` ~/backup 随后就可以tar成gzip包,然后rsync集中保存了。 删除snapshot: # umount -f ~/backup# lvremove /dev/main/snap-`date +%Y%m%d%H` 对于数据库的操作来说,拿MySQL举例: # mysql –uroot –p -h localhost mysql> flush […]
最近发现公司的的内网ssh登陆上服务器后不操作一段时间就会断线,同时如果一直在操作或有屏幕输出(类似tail -f /var/log/apache2/access.log),那么ssh就不会断线。 猜测是公司的防火墙有“断开空闲TCP链接”的策略,在/etc/ssh/sshd_config 内加入: ClientAliveInterval = 15 ClientAliveCountMax = 100 ClientAliveInterval的含义是每过15s,sshd会向ssh client发出一个询问是否在线的请求,正常的ssh client都会予以回应;同时ClientAliveCountMax设定了这种询问的最大失败值,在本例中如果sshd向client发出了100次讯问均没有得到回应,那么sshd会主动断开此ssh链接。
python的easy_install是很方便的安装体系,可是一般来说setup.py没有deinstall的选项,那么如何删除已经安装的egg呢? easy_install -mxN Genshi 然后下面类似的提示: install_dir /usr/local/lib/python2.6/dist-packages/ Processing Genshi-0.6-py2.6.egg Removing Genshi 0.6 from easy-install.pth file Installed /usr/local/lib/python2.6/dist-packages/Genshi-0.6-py2.6.egg Because this distribution was installed –multi-version, before you can import modules from this package in an application, you will need to ‘import pkg_resources’ and then use a ‘require()’ call similar to one of these examples, in order to […]
因为Mercurial缺乏对100MB+的binary文件支持,所以今天又把Git装上测试一下,环境是在一台Ubuntu 10.04 amd64 server edition机器上,通过http访问Git。
刚看到一张由专业的海报设计公司Postertext设计的Linux海报,它由Kernel 2.6.34.1版本的源代码“绘制”而成,取自以下部分:sched.c、sched_clock.c、sched_cpupri.c、sched_cpupri.h、sched_debug.c、sched_fair.c。 Postertext是一家海报设计公司,专业从事将文学名著作品以文字形式制作成海报。日前Postertext完成一件新的作品,那就是用Linux Kernel源代码完成的Linux企鹅海报。
evince打开中文pdf的时候经常是乱码,今天实在忍不了了,google了一翻,其实解决方案很简单: sudo apt-get install poppler-data
笔记本电脑的CPU频率可以使用cpufrequtils来调整。
最近在公司内网给开发组内的兄弟建Xen虚拟机,guest装的都是debian lenny,所以就在内网做了一个apt mirror,笔记如下。
FreeBSD ports,Gentoo Portage,Debian dpkg,Mac OS X MacPorts常用命令汇编 FreeBSD Ports Packages Gentoo Portage Debian dpkg Mac OS X macports 安装 Ports: make install Packages: pkg_add pkgname emerge pkgname apt-get install pkgname port install pkgname 卸载 pkg_delete pkgname emerge –remove pkgname dpkg -r pkgname;apt-get remove pkgname port uninstall pkgname 列出系统所有包 pkg_info equery list dpkg -l port list […]
获得MySQL/PostgreSQL在GNU/Linux和FreeBSD下的内存占用比例:
在前面的一篇日志中详细说明了如何建立基于pptpd的VPN,由于pptpd脆弱的安全性和较低的性能,本文介绍一下IPSec VPN的架设。
最近一个哥们在做LVS做load balance测试时发现在并发达到1w以后网卡中断只占用了一个CPU,最终导致此CPU的100%,性能再无法提升。 逐步尝试以下方法: 修改内核参数irqbalance。印象中此参数能把网卡中断平分到多个CPU上。但是查询最新文档发现此参数在最新的内核中已经不存在; 使用设备中断的smp_affinity: 首先先从/proc/interrupts里查到网卡的中断号,eth0或者bg0所在行的第一列; 修改/proc/irq/<中断编号>/ 下修改 smp_affinity 文件内容。这个文件是一个位掩码,01意味着只有第一个CPU能处理中断,0F意味着四个CPU都会参与处理中断。 但是经过测试发现此方法能把网卡中断绑定到指定的CPU上,但是不能在多个CPU间平均分配。 使用user space态下的irqbalance daemon,未得到反馈,估计无效; 使用Intel高端网卡82575,见文档详细说明: Assigning Interrupts to Processor Cores using an Intel(R) 82575/82576 or 82598/82599 Ethernet Controller September http://download.intel.com/design/network/applnots/319935.pdf Improving Network Performance in Multi-Core Systems http://www.intel.com/network/connectivity/products/whitepapers/318483.pdf
非阻塞异步(non-blocking asynchronous)是开发高性能应用程序的基础,下文详细描述了常用的这些异步模型。
刚刚做好,留档保存。
简单说一下Debian APT体系中为了保证deb包的完整性和可信,建立的一套secure apt体系。
让广大“黑友”的thinklight更好的发挥作用。 Thinkpad屏幕顶部的键盘灯是个很有创意的设计,这个和小红点一起构成了Thinkpad的重要特色功能。 比如收到邮件后,thinklight闪烁;pidgin收到消息后,thinklight闪烁提醒。
PostgreSQL从8.3.x升级到8.4.0后,pgpool-II的最新版2.2.2无法编译通过,报以下错误: sed ‘s,MODULE_PATHNAME,$libdir/pgpool-recovery,g’ pgpool-recovery.sql.in >pgpool-recovery.sql cc -O2 -fno-strict-aliasing -pipe -O3 -funroll-loops -Wall -Wmissing-prototypes -Wpointer-arith -Wdeclaration-after-statement -Wendif-labels -fno-strict-aliasing -fwrapv -fPIC -DPIC -I. -I/usr/local/include/postgresql/server -I/usr/local/include/postgresql/internal -I/usr/local/include -c -o pgpool-recovery.o pgpool-recovery.c pgpool-recovery.c: In function `pgpool_recovery’: pgpool-recovery.c:47: error: `textout’ undeclared (first use in this function) pgpool-recovery.c:47: error: (Each undeclared identifier is reported only once pgpool-recovery.c:47: error: for each function […]