Techyou labs
真正的爱应该超越生命的长度、心灵的宽度、 灵魂的深度
常用标签
您正在查看:2011年11月

查看进程流量
nethogs
etHogs version 0.7.0

  PID USER     PROGRAM                      DEV        SENT      RECEIVED       
24008 www-data nginx: worker process        eth0       6.548     187.465 KB/sec
24010 www-data nginx: worker process        eth0       3.185      70.851 KB/sec
24009 www-data nginx: worker process        eth0       1.255      44.123 KB/sec

查看实时连接流量
iftop
php.vm.stm.com                                   => ad.stm.com                                         276b   4.57Kb  4.57Kb
                                                 <=                                                    580b   8.89Kb  8.89Kb
php.vm.stm.com                                   => win2003.vm.stm.com                                12.5Kb  7.63Kb  7.63Kb
                                                 <=                                                    688b    424b    424b
10.255.255.255                                   => 10.0.3.79                                            0b      0b      0b
                                                 <=                                                    624b    624b    624b
10.255.255.255                                   => 10.0.3.74                                            0b      0b      0b
                                                 <=                                                    624b    624b    624b
10.255.255.255                                   => 10.0.3.52                                            0b      0b      0b
                                                 <=                                                    624b    624b    624b
10.255.255.255                                   => 10.0.3.38                                            0b      0b      0b
                                                 <=                                                    624b    624b    624b
10.255.255.255                                   => 10.0.3.106                                           0b      0b      0b
                                                 <=                                                    624b    624b    624b
10.255.255.255                                   => 10.0.3.62                                            0b      0b      0b
                                                 <=                                                    624b    624b    624b
10.255.255.255                                   => 10.0.3.124                                           0b      0b      0b
                                                 <=                                                    624b    624b    624b
10.255.255.255                                   => 10.0.3.145                                           0b      0b      0b
                                                 <=                                                    624b    624b    624b
10.255.255.255                                   => 10.0.3.208                                           0b      0b      0b
                                                 <=                                                    624b    624b    624b
10.255.255.255                                   => 10.0.3.190                                           0b      0b      0b
                                                 <=                                                    936b    624b

数据跟踪
iptraf

nload
Screenshot at 2012-03-27 10:44:19.jpg

需求:为内部网络的 PC 提供共享存储、备份,没有太强的读写压力,资金投入也有限,但需要够安全,而且为逐渐增长的数据量考虑,需要扩容方便。
打算通过 mdadm 和 LVM 来实现。用这样的硬件:内部空间够大,电源够强劲,扇热要好,支持多个 SATA 接口的塔式机。
为了不浪费空间,用一块小硬盘装系统,比如一块 20G 的 IDE 硬盘。3块别的老 PC 上拆下来 80G SATA 硬盘。

在 VMware 上模拟了一下。因为需要模拟 SATA 硬盘,建立虚拟机时用了 SCSI 硬盘。要选择 RedHat Enterprise 版才能支持 SCSI 硬盘。
使用 VMware-gsx-server-3.2.1 发现在较大的(试验了 160G/250G)虚拟硬盘上的 RAID5 recovery 到尾声时会死机,重启后又要从头再来,但依然会死机,周而复始。换成 VMware-server-1.0.3 后就没有问题了。
在 hda 安装了 CentOS 5.1 ,最小化安装。安装过程没有对 sda, sdb, sdc 进行分区。

用 mdadm 创建 RAID
# mdadm -C /dev/md0 -l5 -n3 -c128 /dev/sd[a,b,c]
参数所代表的意思可以用 man mdadm 查看。
基本命令
# mdadm -A /dev/md0 #启动阵列
# mdadm -S /dev/md0 #停止阵列(停止前必须先 umount)
# mdadm -D /dev/md0 #显示阵列详细信息

# watch "cat /proc/mdstat"
可以看到 RAID 的 recovery 过程。
此时 RAID 已经可以使用了。

LVM 初始化
# vgscan
创建 PV
# pvcreate /dev/md0
创建 VG
# vgcreate vga /dev/md0
创建 LV
# lvcreate -l 40959 -n lv1 vga

在 LV 上建立文件系统
# mkfs -t ext3 -L /data /dev/vga/lv1
挂载
# mkdir /data
# mount -t ext3 -o defaults /dev/vga/lv1 /data

测试
# cd /data
# dd if=/dev/zero of=test bs=1024k count=1k
# dd if=test of=/dev/null

recovery 结束后,生成 /etc/mdadm.conf 文件,在系统重启后自动启用 RAID
# mdadm -Ds > /etc/mdadm.conf
编辑 /etc/mdadm.conf 文件,在顶部加入如下一行:
DEVICE /dev/sd*

形界面创建,在LVM管理建vg沟选集群选项,删除此vg时提示:
Skipping clustered volume group
a local volume group has been incorrectly set up as clustered, and there isnot a cluster set up for the locking, when unset the cluster flag is attempted to be removed, vgchange will print out "Skipping cluster volume group."

In order to fix this, edit the /etc/lvm/lvm.conf file and set locking_type = 0. Then run the command vgchange -cn VolumeGroupName. After this, change the locking_type in the /etc/lvm/lvm.conf back to the original value.
vim /etc/lvm/lvm.conf
locking_type = 0
vgchange -cn vgname
vgrmove vgname

November 15, 2011

由于公司网站的项目要用到用户上传20M左右的文件,经过测试发现,上传的时候php-fpm单个进程占用CPU利用率大而长,上传速度也不是很理想,如果是多个人上传,效果就会更糟糕。在看nginx官网网站的时候。看到nginx支持POST,原理是这样的,POST到nginx的产生一个临时文件,nginx接受到数据在转移到FastCGI,这样多了一次复制过程和内存开销,比较浪费。但是对于上传大文件来说速度有明显改善。但是光nginx支持不够,还需要php-fpm的支持。

添加这个功能需要修改nginx配置文件:
http
{
.......
添加如下:
client_body_in_file_only clean;
client_body_temp_path /dev/shm 1 2;
fastcgi_param  REQUEST_BODY_FILE  $request_body_file;
...
}

最好使用内存文件系统 /dev/shm 这样减少对磁盘的读写,减少了 磁盘 I/O,这样大大的优化了NGINX上传速度。