存档

2010年8月 的存档

debian lenny的163源

2010年8月13日 wenhui 没有评论

留作纪念

deb http://mirrors.163.com/debian/ lenny main non-free contrib
deb http://mirrors.163.com/debian/ lenny-proposed-updates main non-free contrib
deb-src http://mirrors.163.com/debian/ lenny main non-free contrib
deb-src http://mirrors.163.com/debian/ lenny-proposed-updates main non-free contrib

分类: linux, 系统 标签:

memcached +mysql+php 测试例子[转]

2010年8月9日 wenhui 没有评论

来源:http://deidara.blog.51cto.com/400447/317526

最近看了看memcached 缓存 mysql,经过一段时间的研究·把自己测试方法写出来,给像我一样的初学者用~
我的环境是 nginx + php-fpm + apc + mysql
启动memcached

memcached -d -m 64 -u root -l 192.168.6.191 -p 11211 -c 64 -P /tmp/memcached.pid

创建一个测试数据库 mydb

create database mydb;

创建一个空的数据表

personal_info
CREATE TABLE `personal_info` (
`pi_id` bigint(20) NOT NULL auto_increment,
`pi_name` varchar(50) NOT NULL,
`pi_tel` varchar(15) default NULL,
`pi_qq` varchar(15) default NULL,
`pi_email` varchar(50) default NULL,
PRIMARY KEY (`pi_id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=4 ;

给表插入数据

INSERT INTO `mydb`.`personal_info` (
`pi_id` ,
`pi_name` ,
`pi_tel` ,
`pi_qq` ,
`pi_email`
)
VALUES (
’1′, ‘eric’, ’13611031222′, ’55555555′, ‘eric@nginxs.com’
);

创建一个 php 文件 mysql-memcache.php

connect($memcachehost,$memcacheport) or die (“Could not connect”);
$query=”select * from personal_info limit 10″;
$key=md5($query);
if(!$memcache->get($key))
{
$conn=mysql_connect(“localhost”,”root”,”passwd”);
mysql_select_db(mydb);
$result=mysql_query($query);
while ($row=mysql_fetch_assoc($result))
{
$arr[]=$row;
}
$f = ‘mysql’;
$memcache->add($key,serialize($arr),0,30); //mysql 查询后,插入 memcached
$data = $arr ;
}
else{
$f = ‘memcache’;
$data_mem=$memcache->get($key);
$data = unserialize($data_mem);
}
echo $f;
echo ”
“;
//print_r($data);
foreach($data as $a)
{
echo “number is $a[pi_id]“;
echo ”
“;
echo “name is $a[pi_name]“;
echo ”
“;
echo “tel is $a[pi_tel]“;
echo ”
“;
echo “qq is $a[pi_qq]“;
echo ”
“;
echo “email is $a[pi_email]“;
echo ”
“;

}
?>

分类: 挨踢, 缓存机制 标签: , ,

ffmpeg转换常用视频格式到FLV

2010年8月9日 wenhui 没有评论

ffmpeg -i “japanese-video.mp4″ -y -ab 32 -ar 22050 -qscale 10 -s 640*480 -r 15 ./a.flv

-i 是 要转换文件名
-y是 覆盖输出文件
-ab 是 音频数据流,大家在百度听歌的时候应该都可以看到 128 64
-ar 是 声音的频率 22050 基本都是这个。
-qscale 是视频输出质量,后边的值越小质量越高,但是输出文件就越“肥”
-s 是输出 文件的尺寸大小!
-r 是 播放侦数。

分类: 生活 标签: ,

Facebook架构分析:Facebook 的 PHP 性能与扩展性[转]

2010年8月9日 wenhui 没有评论

来源:貌似是http://www.dbanotes.net

炙手可热的 Facebook 是用 PHP 开发的。随着一些技术交流,逐渐能看到 Facebook 技术人员分享的经验。近期这个 http://www.geeksessions.com/ 站点上看到 Facebook 的 Lucas Nealan 分享的文档比较有参考价值。

Cache 为 王
任何一个成功的站点都有一套最合适自己的 Cache 策略。

Note:这个层次图画的稍微有点问题,不是严格从上到下的。

The Alternative PHP Cache , APC
Facebook 平均每个用户每天要访问超过 50 个页面,PHP的页面载入时间的优化就比较重要了。在 PHP Cache 层,Facebook 采用了 APC。
http://www.php.net/apc

Lucas Nealan 的 PPT 举了一个例子,一个页面显示的时间从 4000 多毫秒降到了 100 多 毫秒。在 apc.stat 关闭的模式下,性能还要更好一些。不过需要重启动或用apc_cache_clear() 来通知更新。


Memcached 层
APC Cache 的是非用户相关的信息,而用户相关的数据 Cache 当然是在 Memcached 中。

Facebook 部署了超过 400 台 Memcached 服务器,超过 5TB 的数据在 Memcached 中。这是当前世界上最大的 Memcached 集群了。也给 Memcached (http://developers.facebook.com/opensource.php)贡献了不少代码,包括 UDP 的支持和性能上的提升(性能提升超过 20%)。

程序 Profiling
Facebook 开发人员大量采用 Callgrind 、APD、 xdebug 、KCachegrind 等工具进行基准性能测试。任何一个 Web 项目,这也是不可或缺,也是比较容易忽略的一环。所有开发人员都应该具备熟练使用这些工具的能力才好。

补充一下:语言的选择
为什么 Facebook 选择 PHP 而不是其他语言? 用Flickr 的 Cal Henderson 这句话就能说明了: “Languages’s don’t Scale, Architecture Scale”。

从 80-20 的原则看,APC 和 Memcached 是最主要的。在这两个环节上下功夫,受益/开销比要大于另外几个环节。

(上面的图是从 Lucas Nealan 的文档截的,版权所有是他的)

分类: PHP, 架构 标签: ,

phpize未找到的解决方法(debian or ubuntu)

2010年8月3日 wenhui 没有评论

phpize 未找到的原因,是因为php5-dev包没有安装

在源中添加

deb http://php53.dotdeb.org stable all
deb-src http://php53.dotdeb.org stable all

然后

apt-get install php5-dev

即可

分类: PHP, 脚本 标签:

Linux下光盘刻录,光盘镜像制作,光盘拷贝[转]

2010年8月3日 wenhui 没有评论

Linux下光盘刻录:
在终端窗口输入以下命令即可:
cdrecord -v speed=8 dev=0,0,0 linux.iso
cdrecord软件在发行版中一般都有,如果安装系统时没有安装它,在你的安装盘里能找到,安装即可。
speed是表明光盘刻录速度的选项,可根据实际情况设置,但不要超过CD-R与光盘刻录机的最大限速;dev是光盘刻录设备的选项,可由 cdrecord -scanbus 命令获得,linux.iso是要光盘刻录的镜像文件,可根据实际情况加入路径。

来源:http://hi.baidu.com/beekee/blog/item/fb7df646a1d4f189b3b7dcea.html

光盘镜像制作方法:
mkisofs命令可以实现
制作资料光盘、系统光盘等,还可以做可启动光盘。
mkisofs -r -o linux.iso -m temp burn/
是基本的使用方法,-o linux.iso 指定光盘映像文件名称,-m temp 排除temp目录或文件, burn/ 将该目录下的文件加入到映像中,更高级的使用请参照相关文档或man。

光盘拷贝方法:
dd命令可以实现这个功能
刻录的光盘信息都保存,并包括启动信息都在内,此时复制光盘是很好的工具,复制后可以再刻录即可。
dd if=/dev/cdrom of=linux.iso
/dev/cdrom为光驱设备名称,一般为/dev/cdrom ,可根据实际情况给定;linux.iso就是制作的光盘镜像文件,制作后刻录即可。

分布式文件系统比较

2010年8月2日 wenhui 没有评论

发信人: Dieken (风催草低 – 明月何尝不照人), 信区: LinuxDev
标  题: 分布式文件系统比较
发信站: 水木社区 (Mon Mar 22 21:58:25 2010), 站内

简单调查了下开源的东西,一些总结,谬误偏颇遗漏之处请指正。

MooseFS 很不错,已经实用了半月了,易用,稳定,对小文件很高效。
MogileFS 据说对于 Web 2.0 应用存储图片啥的很好。
GlusterFS 感觉广告宣传做的比产品本身好。
OpenAFS/Coda 是很有特色的东西。
Lustre 复杂,高效,适合大型集群。
PVFS2 搭配定制应用会很好,据说曙光的并行文件系统就是基于 PVFS。

适合做通用文件系统的有 MooseFS,GlusterFS,Lustre。
===============================================================
dCache
- 依赖 PostgreSQL

xtreemfs
* 服务端是 Java 实现的
- 性能不高

CloudStore (KosmosFS)
+ 被 Hadoop 作为分布式文件系统后端之一
- 不支持文件元信息
- kfs_fuse 太慢,不可用
- 编译依赖多,文档落后,脚本简陋
- 开发不活跃

MooseFS
+ 支持文件元信息
+ mfsmount 很好用
+ 编译依赖少,文档全,默认配置很好
+ mfshdd.cfg 加 * 的条目会被转移到其它 chunk server,以便此 chunk server 安全退出
+ 不要求 chunk server 使用的文件系统格式以及容量一致
+ 开发很活跃
+ 可以以非 root 用户身份运行
+ 可以在线扩容
+ 支持回收站
+ 支持快照
- master server 存在单点故障
- master server 很耗内存

MogileFS
- 不适合做通用文件系统,适合存储静态只读小文件,比如图片

GlusterFS (http://gluster.com/community/documentation/index.php/GlusterFS_Features)
+ 无单点故障问题
+ 支持回收站
+ 模块化堆叠式架构
- 对文件系统格式有要求,ext3/ext4/zfs 被正式支持,xfs/jfs 可能可以,reiserfs 经测试可以
(http://gluster.com/community/documentation/index.php/Storage_Server_Installation_and_Configuration#Operating_System_Requirements)
- 需要以 root 用户身份运行(用了 trusted xattr,mount 时加 user_xattr 选项是没用的,官方说法是
glusterfsd 需要创建不同属主的文件,所以必需 root 权限)
- 不能在线扩容(不 umount 时增加存储节点),计划在 3.1 里实现
- 分布存储以文件为单位,条带化分布存储不成熟

GFS2

http://sourceware.org/cluster/wiki/DRBD_Cookbook

http://www.smop.co.uk/blog/index.php/2008/02/11/gfs-goodgrief-wheres-the-documentation-file-system/

http://wiki.debian.org/kristian_jerpetjoen

http://longvnit.com/blog/?p=941

http://blog.chinaunix.net/u1/53728/showart_1073271.html (基于红帽RHEL5U2 GFS2+ISCSI+XEN+Cluster 的高可性解决方案)
http://www.yubo.org/blog/?p=27 (iscsi+clvm+gfs2+xen+Cluster)

http://linux.chinaunix.net/bbs/thread-777867-1-1.html

* 并不是 distributed file system, 而是 shared disk cluster file system,需要某种机制在机器
之间共享磁盘,以及加锁机制,因此需要 drbd/iscsi/clvm/ddraid/gnbd 做磁盘共享,以及 dlm 做锁管理)
- 依赖 Red Hat Cluster Suite (Debian: aptitude install redhat-cluster-suite, 图形配置工具包
system-config-cluster, system-config-lvm)
- 适合不超过约 30 个节点左右的小型集群,规模越大,dlm 的开销越大,默认配置 8 个节点

OCFS2
* GFS 的 Oracle 翻版,据说性能比 GFS2 好 (Debian: aptitude install ocfs2-tools, 图形配置工具包 ocfs2console)
- 不支持 ACL、flock,只是为了 Oracle database 设计

OpenAFS
+ 成熟稳定
+ 开发活跃,支持 Unix/Linux/MacOS X/Windows
- 性能不够好

Coda
* 从服务器复制文件到本地,文件读写是本地操作因此很高效
* 文件关闭后发送到服务器
+ 支持离线操作,连线后再同步到服务器上
- 缓存基于文件,不是基于数据块,打开文件时需要等待从服务器缓存到本地完毕
- 并发写有版本冲突问题
- 并发读有极大的延迟,需要等某个 client 关闭文件,比如不适合 tail -f some.log
- 研究项目,不够成熟,使用不广

PVFS2

http://blog.csdn.net/yfw418/archive/2007/07/06/1680930.aspx

* 高性能
- 没有锁机制,不符合 POSIX 语意,需要应用的配合,不适合做通用文件系统
(See pvfs2-guide chaper 5:  PVFS2 User APIs and Semantics)
- 静态配置,不能动态扩展

Lustre
* 适合大型集群
+ 很高性能
+ 支持动态扩展
- 需要对内核打补丁,深度依赖 Linux 内核和 ext3 文件系统

Hadoop HDFS
* 本地写缓存,够一定大小 (64 MB) 时传给服务器
- 不适合通用文件系统

FastDFS
- 只能通过 API 使用,不支持 fuse

NFSv4 Referrals
+ 简单
- 没有负载均衡,容错

NFSv4.1 pNFS
- 没有普及

spNFS
* pNFS 在 Linux 上的一个实现

Ceph (http://ceph.newdream.net/)
- 开发初期,不稳定
- 依赖 btrfs

GFarm (http://datafarm.apgrid.org/software/)
OBFS

分类: 存储集群 标签: