http://www.centoscn.com/CentosServer/test/2014/1120/4153.html

OpenVPN是一个用于创建虚拟专用网络(Virtual Private Network)加密通道的免费开源软件。使用OpenVPN可以方便地在家庭、办公场所、住宿酒店等不同网络访问场所之间搭建类似于局域网的专用网络通道。

使用OpenVPN配合特定的代理服务器,可用于访问Youtube、FaceBook、Twitter等受限网站,也可用于突破公司的网络限制。

一、服务器端安装及配置

服务器环境:干净的CentOS6.3 64位系统

内网IP:10.143.80.116

外网IP:203.195.xxx.xxx

OpenVPN版本:OpenVPN 2.3.2 x86_64-redhat-linux-gnu

    1、安装前准备

# 关闭selinux
setenforce 0
sed -i '/^SELINUX=/c\SELINUX=disabled' /etc/selinux/config
# 安装openssl和lzo,lzo用于压缩通讯数据加快传输速度
yum -y install openssl openssl-devel
yum -y install lzo
# 安装epel源
rpm -ivh http://mirrors.sohu.com/fedora-epel/6/x86_64/epel-release-6-8.noarch.rpm
sed -i 's/^mirrorlist=https/mirrorlist=http/' /etc/yum.repos.d/epel.repo

    2、安装及配置OpenVPN和easy-rsa

# 安装openvpn和easy-rsa
yum -y install openvpn easy-rsa
# 修改vars文件
cd /usr/share/easy-rsa/2.0/
vim vars
# 修改注册信息,比如公司地址、公司名称、部门名称等。
export KEY_COUNTRY="CN"
export KEY_PROVINCE="Shandong"
export KEY_CITY="Qingdao"
export KEY_ORG="MyOrganization"
export KEY_EMAIL="me@myhost.mydomain"
export KEY_OU="MyOrganizationalUnit"
# 初始化环境变量
source vars
# 清除keys目录下所有与证书相关的文件
# 下面步骤生成的证书和密钥都在/usr/share/easy-rsa/2.0/keys目录里
./clean-all
# 生成根证书ca.crt和根密钥ca.key(一路按回车即可)
./build-ca
# 为服务端生成证书和密钥(一路按回车,直到提示需要输入y/n时,输入y再按回车,一共两次)
./build-key-server server
# 每一个登陆的VPN客户端需要有一个证书,每个证书在同一时刻只能供一个客户端连接,下面建立2份
# 为客户端生成证书和密钥(一路按回车,直到提示需要输入y/n时,输入y再按回车,一共两次)
./build-key client1
./build-key client2
# 创建迪菲·赫尔曼密钥,会生成dh2048.pem文件(生成过程比较慢,在此期间不要去中断它)
./build-dh
# 生成ta.key文件(防DDos攻击、UDP淹没等恶意攻击)
openvpn --genkey --secret keys/ta.key

查看keys目录下生成的文件:

wKioL1RhllmyOZW9AAKmWJ5x4tg383.jpg

    3、创建服务器端配置文件

# 在openvpn的配置目录下新建一个keys目录
mkdir /etc/openvpn/keys
# 将需要用到的openvpn证书和密钥复制一份到刚创建好的keys目录中
cp /usr/share/easy-rsa/2.0/keys/{ca.crt,server.{crt,key},dh2048.pem,ta.key} /etc/openvpn/keys/
# 复制一份服务器端配置文件模板server.conf到/etc/openvpn/
cp /usr/share/doc/openvpn-2.3.2/sample/sample-config-files/server.conf /etc/openvpn/
# 查看server.conf里的配置参数
grep '^[^#;]' /etc/openvpn/server.conf
# 编辑server.conf
vim /etc/openvpn/server.conf
port 1194
# 改成tcp,默认使用udp,如果使用HTTP Proxy,必须使用tcp协议
proto tcp
dev tun
# 路径前面加keys,全路径为/etc/openvpn/keys/ca.crt
ca keys/ca.crt
cert keys/server.crt
key keys/server.key  # This file should be kept secret
dh keys/dh2048.pem
# 默认虚拟局域网网段,不要和实际的局域网冲突即可
server 10.8.0.0 255.255.255.0
ifconfig-pool-persist ipp.txt
# 10.0.0.0/8是我这台VPN服务器所在的内网的网段,读者应该根据自身实际情况进行修改
push "route 10.0.0.0 255.0.0.0"
# 可以让客户端之间相互访问直接通过openvpn程序转发,根据需要设置
client-to-client
# 如果客户端都使用相同的证书和密钥连接VPN,一定要打开这个选项,否则每个证书只允许一个人连接VPN
duplicate-cn
keepalive 10 120
tls-auth keys/ta.key 0 # This file is secret
comp-lzo
persist-key
persist-tun
# OpenVPN的状态日志,默认为/etc/openvpn/openvpn-status.log
status openvpn-status.log
# OpenVPN的运行日志,默认为/etc/openvpn/openvpn.log 
log-append openvpn.log
# 改成verb 5可以多查看一些调试信息
verb 5

4、配置内核和防火墙,启动服务

# 开启路由转发功能
sed -i '/net.ipv4.ip_forward/s/0/1/' /etc/sysctl.conf
sysctl -p
# 配置防火墙,别忘记保存
iptables -I INPUT -p tcp --dport 1194 -m comment --comment "openvpn" -j ACCEPT
iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -j MASQUERADE
service iptables save
# 启动openvpn并设置为开机启动
service openvpn start
chkconfig openvpn on

    5、创建客户端配置文件

# 复制一份client.conf模板命名为client.ovpn
cp /usr/share/doc/openvpn-2.3.2/sample/sample-config-files/client.conf client.ovpn
# 编辑client.ovpn
vim client.ovpn
client
dev tun
# 改为tcp
proto tcp
# OpenVPN服务器的外网IP和端口
remote 203.195.xxx.xxx 1194
resolv-retry infinite
nobind
persist-key
persist-tun
ca ca.crt
# client1的证书
cert client1.crt
# client1的密钥
key client1.key
ns-cert-type server
# 去掉前面的注释
tls-auth ta.key 1
comp-lzo
verb 3

二、Windows客户端安装及配置

客户端系统:Windows7 64位

内网IP:172.16.4.4

OpenVPN版本:OpenVPN 2.3.3 Windows 64位

    1、下载安装OpenVPN

OpenVPN 2.3.3 Windows 32位 安装文件:

http://swupdate.openvpn.org/community/releases/openvpn-install-2.3.3-I002-i686.exe

OpenVPN 2.3.3 Windows 64位 安装文件:

http://swupdate.openvpn.org/community/releases/openvpn-install-2.3.3-I002-x86_64.exe

    2、配置client

将OpenVPN服务器上的client.ovpn、ca.crt、client1.crt、client1.key、ta.key上传到Windows客户端安装目录下的config文件夹(C:\Program Files\OpenVPN\config)

    3、启动OpenVPN GUI

在电脑右下角的openvpn图标上右击,选择“Connect”。正常情况下应该能够连接成功,分配正常的IP。

wKiom1RhjGbijB7xAABMoQo3Tnc522.jpg

wKioL1RhjgyxiZ17AAIRIRCqqws094.jpg    

    4、测试

wKiom1RhjfPD8_AYAAGxUvt_PCA503.jpg

ping通服务器的内网IP,说明已经接入到服务器的内部网络。

到OpenVPN服务器上查看客户端的连接情况,查看状态文件/etc/openvpn/openvpn-status.log:

从2013年4月份开始至今,就有传闻称小米一直在秘密研发的mios系统。果不其然,mios真的来了。近日,有消息称,小米与联芯合作开发的399元超廉价新机将会在今年12月底发布,这将是首部采用mios系统的小米手机。

那这到底是怎么回事呢,为什么小米要研发MIOS系统呢?小米为什么要推出399元的超廉价新机呢?别急,且听ROM基地小编慢慢道来。看完本文,你也许就能找到答案。

一、安卓系统正在逐步走向封闭

在谈到这个问题之前,我们先来说说另一件事。很多人可能不知道的是,谷歌正在收紧最Android的控制权,并开始逐步封闭root权限。如果你的手机是Android 4.4以上系统,你想要获取root的权限可是异常的艰难,这一点相信不用我说很多人也是深有体会的。

细心的朋友可能还会发现,你的手机在开机的时候屏幕下方会出现“Powered by Android”字样,这也是谷歌强制要求的。另外,全球除了包括中国在内的少数几个国家,只要是安卓手机,就必须预装Google Play套件等20个谷歌自家的软件,如果厂商敢不这么做,将被永久取消安卓系统的授权使用权利。为什么中国的手机不需要预装谷歌的软件,因为就算给我们装了我们用不了,其中的原因我不细说,聪明人都懂。

魅族已经想到了解决办法,现在你买到的魅族MX4全部都是YunOS版的,它有效的逃脱了谷歌的控制。值得一提的是,在UI界面还是使用体验上都和基于Android的Flyme一模一样,唯一不同的是开机动画,从“Flyme powered byAndroid”改成了“Flyme powered byYunOS”。虽然只是一个单词的改动,魅族和阿里的工程师都付出了巨大的努力。

面对野心勃勃的谷歌,小米也不能坐吃等死啊。等到安卓系统铺满了整个手机行业,如果哪一天谷歌的安卓要收大额的专利费呢?到时候后悔就晚了。所以小米一直都在秘密的研发新系统,避免将来发展壮大后受到谷歌方面的控制。

二、MIOS的的本质到底是什么呢?

小米为了自家mios系统,还特地收购了mios.cn和mios.com.cn两个域名。那mios系统到底是什么呢?其实他的前身就是FirefoxOS,中文名称为火狐系统,也可以叫火狐OS。通俗点讲,mios是只是基于火狐OS开发对UI进行了大幅度的改造,并进行深度优化,这有点类似于基于Android深度定制的MIUI系统。说的难听点,就是为火狐OS做了一层皮肤,话虽然难听但却是是事实。

全新的mios基于火狐OS深度定制的,但是经过小米的高度优化后,使用起来和目前的MIUI体验相差无几。火狐OS与安卓类似,采用Linux核心,应用于智能手机。火狐OS的所有应用都基于网页技术,运行的app,你可以称它为webapp。

一直以来,很多人有个误区,这个系统是不是要时时刻刻联网才能用呢?胡扯,根本就不是你想的那样。网页不同于网络的,是已经从云端下载下来了的页面。火狐OS的webapp只需要第一次联网后,以后使用就不需要耗费多少流量,也不需要时时刻刻联网。目前的兼容Android系统的YunOS 3.0在主屏往左滑动的那些卡片APP就是类似于webapp的应用,这一点和火狐OS类似。

不服气的朋友,我再举个例子,就算是我们目前使用的安卓应用,在下载了APK软件后,其实内容也是从云端抓取的,包括淘宝/微博/今日头条这样的APP提供的只是一个基本内容和API接口的框架,其实大部分内容都是从云端的服务器推送给你的,包括今日头条在内的这些APP还会智能分析用户的兴趣爱好,精准的推送你喜欢的内容。

三、安卓APP开发已经陷入困境

众所周知,安卓设备由于硬件不同,所以碎片化严重。光是CPU的就有ARM/X86/MIPS等多种架构,屏幕分辨率和设备的尺寸更是种类繁多,所以开发者的适配工作非常麻烦。

有时候为了满足一个软件能同样很多机型,不得不适配很多dpi大小的框架和图片。这也就是为什么ROM基地曾报道过,曾有一位Android开发者狂买600多款不同的Android设备,而且他还抱怨还有很多设备买不到,因为他必须反复测试APP的的兼容性。

为了满足日益增长的手机屏幕大小和超高分辨率的需求,现在安卓的的APP也是越做越大,APP越做越大对手机的硬件需求就越来越大了,仅仅以QQ为例,三年时间,从最早的2M的体积么猛增至20多M的体积。从最早128M内存的手机都能流畅运行QQ,到现在就算是1G内存的手机只要开了QQ后再用其他软件都可能卡成狗。

四、火狐OS的优势体现在哪?

既然现在目前所有APP的内容都是云端推送,那么火狐OS为何不像安卓一样也搞个框架呢?其实这才是火狐OS的优越之处。安卓系统和众多操作系统一样,都是应用先下载再运行,需要考虑到硬件的兼容性问题,而火狐OS完全就不用考虑这个问题。

火狐OS是一个完全基于HTML5的系统,没有所谓的“原生应用”。无论是打电话、发短信、玩游戏,使用的都是HTML 5技术。这倒不是说这些应用都需要时刻联网才能用,而是他们的结构采用了目前国家通用的HTML 5架构,你可以这么理解,这些APP都是一个个已经下载好的网页。

而火狐OS的应用webapp正是一个个网页,你首次联网后,这个app就会像网页一样被下载并缓存到本地,因为目前的HTML 5都是响应式的网页,也就是自适应网页。

火狐OS下载的webapp会根据你手机的屏幕尺寸自适应大小,避免了安卓app想一个apk通吃所以安卓设备面临困境。所以火狐OS与其他系统相比,它的webapp对硬件配置的要求非常低,单核512M内存的手机运行一大堆软件后依然非常流畅。

由于产品定位的关系,火狐OS从来都不和高端市场进行竞争,因为就算是竞争也打不过人家。所以它选择的目标是低价的入门级别手机,第一个国家选择巴西,随后是印度等东南亚国家,一直火狐OS都刻意的避开了手机系统争夺战很激烈的的确,包括美国、中国等国家。

五、为什么小米要做MIOS?

小米公司到目前位置,已经涉及到了包括手机、智能穿戴、智能家居、新能源汽车、包括小米公寓在内的所以能触及到的领域。之所以一开始选择做手机,是因为手机是获取用户群最快最直接的工具。

单单从和国内手机的竞争来看,小米的老对手可以通过自家海思芯片主打高端市场,并获得自主研发的好评。所以小米也不甘示弱,小米与联芯合作推出联芯1860方案的399廉价手机,是为了更低端手机进军,抢占低端市场。目前推广一台火狐OS可以得到4美元的补贴,也就是25块钱人民币,补贴到399元的廉价新机上也是一笔不少的钱。

从国际市场来看,小米试图进入国际市场,专利方面的缺乏绝对是小米的一块心病。硬件方面,小米选择之所以选择和大唐电信旗下的联芯合作是为了解决专利难题,因为大唐电信拥有一大批与电子通讯有关的专利,在小米海外扩张后,可以让小米规避专利风险等问题。

软件方面,小米可以通过和火狐OS合作,推出自家的mios以逃脱和被谷歌控制的厄运。俗话说,要防范于未然,这有点类似于微软在中国推广Office一样,微软当初放任Office盗版后火速占领中国市场,把老牌的WPS打的元气大伤。现在很多朋友看到WPS都会误以为WPS是模仿Office,其实WPS才真的是办公软件的祖师爷,比微软的Office早了十几年。

现在谷歌发布了免费的Android系统就有点类似于当年的微软一样,像是在撒网,等谷歌真动起手来收网的时候,众多手机厂商就像网中的鱼一样要任由宰割了。

目前唯一不能确定的是,尽管mios在界面上和设计交互上可以和miui一样,但小米的mios系统能否像魅族的“Flyme powered byYunOS”一样兼容安卓应用。小米研发团队的工程师可要加油了,加入mios要是也能兼容安卓应用,那绝对会有一大批发烧友买单的。

Ext2、Ext3、Ext4、XFS、JFS、ReiserFS 和 Btrfs 的全面性能测试,对比结果如下:

完整表,请看: html/filesystem.html" target="_blank">filesystem.html

reclen write rewrite read reread random read random write bkwd read record rewrite stride read fwrite frewrite fread freread
Ext2real 27m23.545s
user 0m9.184s
sys 4m40.925s
4 218,554 218,662 668,245 245,208 85,235 175,284 101,864 1,911,579 74,368 215,014 217,680 583,169 244,831
8 216,064 220,489 618,661 243,444 146,695 215,002 176,908 2,314,305 129,333 215,772 218,571 605,436 241,144
16 218,874 219,173 609,563 242,592 246,442 220,306 292,114 2,438,520 218,357 216,497 219,774 596,211 244,652
32 219,584 217,859 611,712 244,445 372,023 224,151 442,629 2,423,574 334,999 218,829 219,553 606,186 244,346
64 216,320 219,400 622,218 243,761 478,747 227,018 580,960 2,633,117 439,129 215,956 220,166 608,210 243,950
128 219,286 218,318 614,559 243,862 579,724 224,346 690,945 2,467,787 537,440 219,420 218,330 607,326 244,337
256 216,027 220,509 635,633 245,385 614,120 227,099 842,220 2,567,169 614,753 217,744 219,897 617,728 243,780
Ext3real 27m26.675s
user 0m9.323s
sys 6m43.199s
4 215,478 218,294 604,858 246,148 86,758 151,858 102,113 1,618,769 74,979 214,446 218,569 568,659 242,772
8 217,695 218,777 609,377 244,520 148,608 190,313 171,903 1,830,365 128,957 218,752 217,501 603,465 246,861
16 215,683 219,822 643,396 248,815 252,255 202,374 290,681 1,915,488 219,805 216,519 219,033 568,086 243,985
32 219,341 217,364 603,462 245,273 379,512 208,740 435,756 2,069,791 335,303 218,578 219,086 604,572 245,578
64 216,192 220,186 665,646 244,234 481,101 212,185 567,750 2,106,710 442,926 217,075 220,042 618,134 244,870
128 218,503 219,151 616,479 244,711 589,927 212,355 683,943 2,080,136 541,597 219,271 218,514 600,308 244,782
256 217,255 219,213 637,417 248,555 636,309 211,793 839,907 2,125,314 618,958 218,424 218,954 600,894 245,523
Ext4real 26m15.771s
user 0m9.609s
sys 5m36.096s
4 225,586 224,616 532,721 270,174 82,398 180,231 102,935 1,683,476 74,990 224,893 224,186 277,025 584,868
8 226,896 221,965 274,314 629,603 239,913 219,223 156,964 2,026,184 127,553 226,382 227,019 292,566 593,154
16 222,929 229,392 272,022 599,360 390,533 223,951 256,831 2,114,002 212,773 227,728 225,332 602,317 269,289
32 223,703 221,025 566,981 262,980 380,787 227,198 435,774 2,157,610 338,629 226,208 225,816 591,102 268,725
64 222,236 223,813 593,481 268,002 522,365 227,268 582,830 2,216,225 457,252 228,294 223,269 614,376 269,657
128 221,681 222,859 285,304 623,990 915,430 231,380 663,383 2,276,039 573,624 226,616 224,477 583,965 271,159
256 220,129 221,608 279,101 657,815 889,963 232,256 770,220 2,212,083 610,074 225,877 224,642 288,852 603,933
XFSreal 28m43.957s
user 0m9.899s
sys 6m4.268s
4 217,459 214,348 244,600 239,647 78,424 161,673 107,643 1,711,976 74,828 218,638 216,903 227,675 240,492
8 220,514 219,994 241,854 951,125 248,623 207,750 161,175 2,214,681 127,363 218,892 211,613 219,749 240,286
16 220,776 220,740 226,186 242,746 224,486 219,963 318,503 2,480,826 223,664 221,106 221,694 669,693 262,346
32 218,481 216,919 255,232 799,715 593,083 225,213 408,816 2,278,034 337,026 222,153 213,330 226,093 241,351
64 216,921 210,031 228,877 244,161 430,479 225,432 612,872 2,568,460 448,155 224,650 209,745 221,768 239,888
128 216,341 218,284 232,550 242,283 559,400 227,915 768,251 2,545,859 568,945 222,605 216,060 714,911 258,397
256 221,444 220,462 469,309 321,275 757,895 225,641 806,251 2,689,152 609,077 219,703 219,815 226,021 240,108
JFSreal 26m53.990s
user 0m9.096s
sys 4m39.691s
4 196,819 218,121 455,194 258,062 85,910 169,163 142,814 1,949,282 92,246 212,270 217,272 450,996 258,928
8 211,794 215,030 445,452 258,082 147,556 208,623 236,197 2,214,516 159,402 213,076 218,146 451,013 258,767
16 209,028 214,714 455,795 257,989 248,145 218,747 399,935 2,587,176 269,527 214,271 215,626 439,736 258,830
32 210,454 218,204 448,067 258,568 380,325 220,682 591,781 2,379,845 409,061 213,292 217,683 439,114 259,160
64 214,862 215,636 450,430 258,413 487,982 222,660 750,139 2,613,574 522,050 216,365 217,830 444,546 259,553
128 213,152 218,084 449,185 258,775 592,912 148,064 933,583 2,728,229 667,878 219,155 213,461 466,396 262,608
256 213,119 213,514 477,804 258,508 631,376 129,060 1,055,205 2,727,762 717,814 213,771 217,569 463,931 258,291
ReiserFSreal 28m16.075s
user 0m10.134s
sys 7m38.726s
4 208,422 217,932 190,459 223,684 72,142 175,210 99,820 1,726,654 74,081 211,433 216,255 540,847 239,091
8 214,840 218,917 610,592 240,376 146,908 210,703 176,295 2,180,046 128,114 215,368 218,950 580,334 240,261
16 216,886 217,827 651,240 243,800 249,478 219,967 288,457 2,444,958 213,780 217,438 219,510 592,932 239,510
32 214,217 219,178 645,366 240,227 369,030 224,795 434,556 2,372,823 329,006 217,055 217,110 554,072 240,046
64 217,160 219,013 623,512 239,875 470,435 224,619 560,790 2,429,552 421,615 218,043 218,734 587,074 239,802
128 215,163 219,348 624,117 240,364 572,926 226,463 683,686 2,530,721 530,024 215,932 218,157 577,617 240,975
256 217,058 218,839 643,857 240,141 615,875 224,530 825,364 2,631,201 590,909 217,256 218,942 567,422 240,061
Btrfsreal 59m41.974s
user 0m10.382s
sys 18m40.804s
4 214,203 215,879 265,389 280,244 65,367 10,520 16,032 773,644 34,260 94,105 194,357 269,380 268,254
8 218,318 215,978 270,100 275,160 109,687 26,015 40,447 1,366,911 89,489 141,760 214,990 273,446 271,531
16 219,477 215,738 284,876 282,111 178,662 47,881 72,623 1,864,106 150,255 177,508 219,348 264,935 273,140
32 218,835 220,886 281,550 277,054 246,933 130,288 181,774 2,573,279 250,936 204,491 219,736 281,894 268,989
64 216,758 218,890 282,026 275,127 312,803 195,963 299,685 3,270,521 354,200 202,362 220,928 281,331 271,676
128 216,509 220,235 279,353 274,813 368,053 215,445 343,696 3,739,759 414,950 216,029 219,711 276,973 272,569
256 220,333 216,113 277,920 273,271 405,215 215,495 393,731 4,015,851 474,052 213,849 220,372 283,035 277,594
Kbytes/sec

本次测试所使用的 Linux kernel 版本为 2.6.29-rc3,文件系统性能测试工具为 IOzone 3.318。

从 测试结果可以看出,Ext4 的综合性能位居现有文件系统之首,JFS、ReiserFS 在读性能方面亦有不俗表现。Btrfs 的小块数据读写性能与平均水平相差甚远,是导致其本次测试总时间超出平均时间两倍的主要原因。较之其它成熟的文件系统,Btrfs 投入生产系统运作可能尚需时日。

 

 

摘自:html">http://www.kuqin.com/linux/20090204/34063.html

转:http://blog.chinaunix.net/uid-14735472-id-4220089.html

云计算用一个朋友的话来说:”做云计算最苦逼的就是得时时刻刻为一些可能一辈子都碰不到的事做

好准备。更苦逼的就是刚以为一个问题不会遇到,立刻就发生了。。。“。这个还真的没有办法,

谁让哥我是搞云计算的呢,简单一个虚拟化就搞的你蛋疼,你还能想其它的吗?一直纠结在做虚

拟化使用什么镜像格式,刚刚开始用了raw的file,后来发现LVM的很多特性对于虚拟化还是有比较

理想的能力,而且性能也很不错就用了LVM。后来被VMware骗了跑去搞Esxi接触了VMDK,最近

研究openstack发现了qcow2格式,貌似现在很流行呀。也说不上分析这些镜像格式的能力,就简单

说说自己的一些使用心得。

 

目前主要有那些格式来作为虚拟机的镜像:

raw


(default) the raw format is a plain binary image of the disc image, and is very portable. On filesystems that suppor

t sparse files, images in this format only use the space actually used by the data recorded in them.

老牌的格式了,用一个字来说就是裸,也就是赤裸裸,你随便dd一个file就模拟了一个raw格式的镜

像。由于裸的彻底,性能上来说的话还是不错的。目前来看,KVM和XEN默认的格式好像还是这

个格式。因为其原始,有很多原生的特性,例如直接挂载也是一件简单的事情。
裸的好处还有就是简单,支持转换成其它格式的虚拟机镜像对裸露的它来说还是很简单的(如果

其它格式需要转换,有时候还是需要它做为中间格式),空间使用来看,这个很像磁盘,使用多

少就是多少(du -h看到的大小就是使用大小),但如果你要把整块磁盘都拿走的话得全盘拿了

(copy镜像的时候),会比较消耗网络带宽和I/O。接下来还有个有趣的问题,如果那天你的硬盘

用着用着不够用了,你咋办,在买一块盘。但raw格式的就比较犀利了,可以在原来的盘上追加空间:
dd if=/dev/zero of=zeros.raw bs=1024k count=4096(先创建4G的空间)
cat foresight.img zeros.raw > new-foresight.img(追加到原有的镜像之后)

如果你看见这个舞女是顺时针转,说明你用的是右脑;如果是逆时针转,说明你用的左脑。耶鲁大学耗时5年的研究成果,据说,14%的美国人可以两个方向都能看见。

顺时针转的话,属於是用右脑较多的类型,逆时针转属於使用左脑较多的类型。大部分人的眼里里是逆时针方向转动,但也有人看来是顺时针方向转动的。顺时针的情况 , 女性比男性多。逆时针转动的,突然变成顺时针的话,IQ是160以上!
科学人杂志--天才的特殊思维

顶叶负责掌管脑中的数学和逻辑,这也是爱因斯坦成为天才的秘密。但不可否认的,爱因斯坦丰富的想像力与创造力,是使他的右脑不断激发出潜在能力的重要因素之一。

左脑因为是以语言处理讯息、控制知识、判断力、思考力因此被称为「知性脑」;右脑则控制著自律神经与字宙波动共振,由于是图像脑,因此造型能力优越,被称为「艺术脑」。

有关右脑的神奇功能研究,是始于1 9 8 1年,加州理工学院罗杰· 史贝利博士研究右脑获得诺贝尔奖以后,人们才开始对右脑有所认识,在此之前,人们并不认为左脑与右脑的功能有那么大的差别。史贝利在分割脑的实验中发现,左脑与右脑这两个半球完全以不同的方式在进行思考,他发现左脑用语言进行思考,右脑则是以图像进行思考;左脑偏向语言、逻辑性的思考,右脑则是影像和心像的思考。

根据七田真博士的研究,原来人在诞生之初,右脑的能力还很发达,右脑具备了超越常识那种几乎可称为全然未知的天才似的能力,这种能力自古以来就隐藏在人们脑海里,是一种超越时间、空间,与无限境界相连结的能力,但是因为人类世界是以教导、开启左脑为主,让小孩子努力学习语言以及往后生存所必需的知识,久而久之,左脑越来越发达,右脑却因为少用而日形退化。至于什么样的成人比较容易打开右脑,七 田真博士认为,心思专注、纯真没有成见的人,比较容易进入神奇的右脑世界。

http://www.webkaka.com/blog/archives/how-to-set-gzip-for-js-in-Nginx.html

Nginx启用gzip很简单,只需要设置一下配置文件即可完成,可以参考文章html#nginx" target="_blank">Nginx如何配置Gzip压缩功能。不过,在群里常有人提到,他们的网站Gzip压缩虽然成功了,但检测到JS仍然没有压缩成功,这是为什么呢?经过我的检查发现,原来是他们的gzip_types设置不对造成的,本文就为遇到同样情况的人解决这一问题。

Nginx启用Gzip压缩js无效

某群友在群里提到,他启用了网站的Gzip压缩,通过站长工具Gzip压缩检测检测到启用成功了,想着其他文件如CSS、JS等也都压缩成功了,但是通过进一步检测各种类型的压缩情况,发现JS文件并没有启用Gzip压缩,这令他非常纳闷,不知何故。

Nginx启用Gzip压缩js无效

图1:Nginx启用Gzip压缩js无效

我们在各种VPS评测博客,以及在一些广告渠道看到各种优惠的VPS的优惠信息都比较心动其价格和配置性能,在选购的时候我们是要参考一些用户的评论以及自己的评价标准。最为实际的在我们卖到或者能得到免费测试机器的时候,可以通过下面简单实用的VPS性能测试方法看看我们即将选择的VPS产品性能如何,如果在自己的可选标准范围之内,那就选择,如果认为不可以,就放弃。

第一,CPU、内存、硬盘检测

cat /proc/cpuinfo (查看CPU信息)
cat /proc/meminfo (查看内存信息)
df -lh (查看硬盘信息)

这个命令可以看到我们购买的VPS CPU信息是否与官方标准一样,有些时候告诉我们的与实际检测的不同。

第二,硬盘IO性能测试

dd if=/dev/zero of=test bs=64k count=4k oflag=dsync
dd if=/dev/zero of=test bs=8k count=256k conv=fdatasync

在"html" target="_blank">VPS性能测试工具之三: dd硬盘读写命令"有详细介绍这个命令的使用及具体的性能对比。

第三,UB跑分测试

在"html" target="_blank">VPS性能测试工具之二: UnixBench"有介绍到UB跑分测试的方法,可以根据自己的跑分测试性能,如果低于100分的直接不考虑,一般肯定会在400分左右。

第四,WGET下载测试

wget http://cachefly.cachefly.net/100mb.test

测试下载速度。

第五,PING及TOP测试

我们在拿到VPS的IP之后,可以用第三方的PING工具进行PING测试速度,或者在我们本地机器上PING测试,可以反应器机器的速度,如果我们做中文站点,一般PING在250之内可以接受的,也有些机器PING速度比较高,但是打开速度还不错。所以说PING只能是参考。

我们还可以用top命令来测试CPU占用情况(扩展阅读:html" target="_blank">检测MySQL负载过高及解决方法(详解SSH TOP命令))

总之,通过上述的5个方法及参考命令基本上可以测试到这款机器的性能对比。

转自: html" rel="bookmark">http://www.laozuo.org/1592.html | 老左博客

http://npm.taobao.org/

淘宝 NPM 镜像

这是一个完整 npmjs.org 镜像,你可以用此代替官方版本(只读),同步频率目前为 10分钟 一次以保证尽量与官方服务同步。

  • 当前 registry.npm.taobao.org 是从 registry.npmjs.org 进行全量同步的.
  • 当前 npm.taobao.org 运行版本是: cnpmjs.org@2.0.0-beta3
  • 本系统运行在 Node.js@v0.11.14 上.
  • nodejs.org/dist 镜像: npm.taobao.org/dist
  • phantomjs downloads 镜像: phantomjs mirror
  • Node.js 文档镜像: html">Node.js Document
113,488 个模块 615,221 个模块版本 7 次删除
22,867 次本日下载 474,895 次本周下载 1,792,093 次本月下载
68,299 次昨日下载 488,804 次上周下载 2,211,639 次上月下载

同步状态

This registry will sync all packages from official registry.

上次同步完成时间: Fri Nov 28 2014 13:55:10 GMT+0800 (中国标准时间)

告别node-forever,拥抱PM2
http://www.oschina.net/translate/goodbye-node-forever-hello-pm2?cmp

pm2 logodevo.ps团队对JavaScript的迷恋已经不是什么秘密了;node.js作为服务器端,AngularJS作为客户端,某种程度上说,我们的堆栈是用它建成的.我们构建html" rel="nofollow">静态客户端和RESTful JSON API的方法意味着我们跑了很多的node.js,我必须承认尽管node.js的一切都令人敬畏,但当我们在生产环境中运行它时它仍然会让我们感到头疼.相比一些更加成熟的语言,它的工具和最佳实践仍然缺乏(试想一下:监控,日志,错误处理).

到目前为止,我们仍然依赖漂亮俏皮的node-forever模块.它是非常伟大的模块,不过依然缺失一些功能:

  • 有限的监控和日志功能,
  • 进程管理配置的支持差,
  • 不支持集群,
  • 代码库老化(意味着在升级node.js时频繁的失败).

这就是为什么我们要在过去的几个月里去写PM2模块.在我们即将发布针对生产环境的正式版之前我们想先让您看一眼.

PM2到底是什么个东西呢?

首先第一件事,你需要先通过 npm 来安装它:

npm install -g pm2

让我们通过表格来对比下:

Feature Forever PM2
Keep Alive
Coffeescript
Log aggregation
API
Terminal monitoring
Clustering
JSON configuration

现在让我来介绍一点点主要特性...

原生的集群化支持

Node v0.6引入了集群特性,允许你在多个Node应用中共享socket.问题在于,它不能在容器外运行而且需要一些额外的配置来处理主进程和子进程.

PM2原生支持处理这个问题,而且不需要额外的代码:PM2本身作为主进程,然后它将你的代码封装到一个特殊的集群进程里,就像node.js一样,为你的代码文件添加一些全局变量.想要启动一个使用所有CPU核心的集群,你只需要键入如下的指令:

$ pm2 start app.js -i max

然后;

$ pm2 list

然后就会显示类似下面的东西(ASCII UI FTW);

pm2 list

就像你看到的,现在你的应用有多少个进程就取决于你的CPU核心数了.

按照termcaps-HTOP(Linux下的系统监控与进程管理软件)的方式管理

通过pm2 list命令来观察所有运行的进程以及它们的状态已经足够好了.但是怎么来追踪它们的资源消耗呢?别担心,用这个命令:

$ pm2 monit

你可以得到进程(以及集群)的CPU的使用率和内存占用.

pm2 monit

声明: node-usage 到目前为止还不支持MacOS(随便什么性能要求),不过它在Linux下运行良好.

现在,让我们来核实一下我们的集群,还有对内存堆栈的垃圾回收,我们假设你已经有一个HTTP基准测试工具(如果没有,你一定要使用 WRK):

$ express bufallo // Create an express app $ cd bufallo
$ npm install
$ pm2 start app.js -i max
$ wrk -c 100 -d 100 http://localhost:3000/

在另一个终端,运行监控选项:

$ pm2 monit

耶~

实时集中log处理

现在你不得不管理多个集群进程:一个爬取数据,一个处理数据,等等...这就意味着大量log,你可以按照老式的方法处理:

$ tail -f /path/to/log1 /path/to/log2 ...

但我们想的很周到,我们增加了logs功能:

$ pm2 logs

pm2 monit

快速恢复

现在事情一切顺利,你的进程嗡嗡的运行着,你需要做一次硬重启(hard restart).现在吗?是的,首先,dump掉:

$ pm2 dump

然后,你可以从文件中恢复它:

$ pm2 kill // 让我们假设一个PM2停掉了
$ pm2 resurect // 我所有的进程又满血满状态复活了

强健的API

比方说,你想要监控所有被PM2管理的进程,而且同时还想监控运行这些进程的机器的状态(甚至希望创建一个Angular应用来调用这些API...):

$ pm2 web

打开浏览器输入 http://localhost:9615 ,我嘞个去!!

对了,还有很多特性...

  • 全部测试通过,
  • 新一代的update-rc.d(pm2 startup),当然它还是alpha版,
  • 开发模式下更改文件自动重启(pm2 dev),也同样还是草稿,
  • 自动刷新log,
  • 快捷的通过JSON文件管理你的应用,
  • 在error log里记录未捕获的异常,
  • 记录重启的次数和时间,
  • 退出时自动杀死进程.

 

下一步计划?

首先,你可以去Github上粉我们(我们喜欢stars): https://github.com/Unitech/pm2.

我们开发的PM2提供了先进完整的Node进程管理解决方案.我们希望能有更多的人来帮助我们:更多的pull requests.一些还停留在开发路线图上面的功能我们会尽快完成,下面这些就是:

  • 远程管理/状态校验,
  • 嵌入式跨进程通信通道(消息总线),
  • V8垃圾回收的内存泄漏检查,
  • Web界面,
  • 监控数据持久化,
  • 邮件通知.

特别感谢 Makara Wang 的观点和工具,还有 Alex Kocharin 提的建议和提交的代码.

http://www.nodebeginner.org/index-zh-cn.html

Node入门

作者: Manuel Kiessling
翻译: goddyzhao & GrayZhang & MondayChen

关于

本书致力于教会你如何用Node.js来开发应用,过程中会传授你所有所需的“高级”JavaScript知识。本书绝不是一本“Hello World”的教程。

状态

你正在阅读的已经是本书的最终版。因此,只有当进行错误更正以及针对新版本Node.js的改动进行对应的修正时,才会进行更新。

本书中的代码案例都在Node.js 0.6.11版本中测试过,可以正确工作。