varnishstat是查看varnish状态的工具,但里面有些参数官方网站都没介绍清楚,在这里备忘一下。

346

Hitrate ratio由三个数字组成,第一个数字范围0-10,第二个数字范围0-100,第三个数字范围0-1000。分别表示过去N秒内的Hitrate avg。上图由于我是刚打开varnishstat,因此三个数字都是4,表示过去4秒内的平均hitrate,如果打开的时间足够长,以上三个数字就会 逐渐变成10,100,1000。

Hitrate avg里的内容是命中率,需要乘以100转换成百分比,例如上图表示命中率为99.23%

转:http://zhaohe162.blog.163.com/blog/static/38216797201402234212981/

本文演示在Linux上安装NodeJS及Express开发框架
 
软件环境:
VMware 9
CentOS 6.5
NodeJS v0.10.24

 
安装过程:

Step 1、确认服务器有nodejs编译及依赖相关软件,如果没有可通过运行以下命令安装。

[root@BobServerStation local]# yum -y install gcc gcc-c++ openssl-devel

Step 2、下载NodeJS源码包并解压。

[root@BobServerStation local]# wget http://nodejs.org/dist/v0.10.24/node-v0.10.24.tar.gz

[root@BobServerStation local]# tar zxvf node-v0.10.24.tar.gz
[root@BobServerStation local]# cd node-v0.10.24

因为网站服务器是美国的VPS,为什么选用美国的VPS?1、不用备案;2、便宜。

VPS 使用 Centos + Kloxo,Kloxo安装容易,配置简单,可以在Apache和lighttpd之间切换,完全可以满足我的需求。简而言之,好用。

VPS远在大洋彼岸,速度自然快不动啊哪里去,对网站使用了CDN,速度有明显的提升。但是,对网站使用了CDN后,Apache网站日志记录的来源IP就是CDN服务器的IP,这样很不利于追踪分析网站日志。

kloxo 使用Apache的情况下,httpd.conf 位于 /etc/httpd/conf/httpd.conf,打开这个文件,找到LogFormat这行,进行以下修改:

LogFormat "%{X-Forwarded-For}i %h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined

这样修改后,log中的 IP 就可以正常记录了。

PS:针对asp和php程序的修改方法也是类似的,有需要的朋友google一下,再或者百度一下。

Ubuntugeek 上介绍了一个方法,通过一个名为apt-fast的脚本来让axel结合 apt-get 命令进行软件的安装,由于 axel 可以多线程下载软件包,这样就可以起到了加速的作用。

而且整个使用过程基本与 apt-get 无异,只需要把平常的 apt-get 改为 apt-fast 就可以了,比如sudo apt-fast installpackage

 

# 安装与使用:

先安装 axel 工具

sudo apt-get install axel

从这里下载 apt-fast.sh 脚本,把它移动到 /usr/bin 目录中同时改名为 apt-fast 。

sudo cp apt-fast.sh /usr/bin/apt-fast

最后给予可执行权限

sudo chmod +x apt-fast

现在你就可以用 apt-fast 来代替 apt-get 了,比如sudo apt-fast upgrade,sudo apt-fast dist-upgrade等等。

 

转:http://hi.baidu.com/flashgive/item/518079e66bb781adc00d7532

原贴:http://joyleley.spaces.live.com/blog/cns!E162F872A7449BAC!158.entry

(一)参数优化.("telnet localhost 5000"后,输入"param.show"可以看到所有系统运行中的参数.输入"param.set thread_pools 8"可以调整参数.)
    thread_pools                  8 [pools]
thread_pool_max            2000 [threads]
thread_pool_min             100 [threads]
thread_pool_timeout        10 [seconds]
    #这四个参数要一起看.
    #thread_pools是系统sess进入处理的pools.理想的情况下是一个cpu一个pool,如果pools过多会消耗cpu时间和mem.但是,pools多一点,处理并发的能力会更强.
    #thread_pool_min是每个pools的最小threads数.当pools侦测到可处理sess后,就分配给所属的空余threads处理.
    #thread_pool_max是所有pools所属的threads总和数的上限值.这个值不要设置的太高,一般是系统期望峰值的90%.太高了会发生"pile-ups",不知道怎么翻译,是不是"拥挤"?
    #thread_pool_timeout是thread的过期时间.当threads数大于thread_pool_min的时候,thread的空闲超过thread_pool_timeout时间,thread就被释放.
    listen_depth               1024 [connections]     #tcp链接队列size.默认是512,适当调大一点,处理并发能力增强.
    lru_interval               3600 [seconds]
    #优雅时间参数(不知道是不是应该这么翻译),意思就是,如果一个object,在内存中超过了这个时间还没有被重用,则把这个对象移动到 LRU(Least Recently Used)队列中.一种普遍的cache算法.个人理解,提高这个时间,会减少object在内存中的copy,以提高运行效率.
(二)VCL优化.
    vcl_recv:      set req.grace = 30s;
    vcl_fetch:     set obj.grace = 30s;
(三)系统环境优化
    ulimit -HSn 131072
ulimit -HSc unlimited
(四)tcp/ip网络环境参数优化
    修改"/etc/sysctl.conf".(官网上说,这个配置可以支持4000-8000 req/s的压力.)
    net.ipv4.ip_local_port_range = 1024 65536
net.core.rmem_max=16777216
net.core.wmem_max=16777216
net.ipv4.tcp_rmem=4096 87380 16777216
net.ipv4.tcp_wmem=4096 65536 16777216
net.ipv4.tcp_fin_timeout = 3
net.ipv4.tcp_tw_recycle = 1
net.core.netdev_max_backlog = 30000
net.ipv4.tcp_no_metrics_save=1
net.core.somaxconn = 262144
net.ipv4.tcp_syncookies = 0
net.ipv4.tcp_max_orphans = 262144
net.ipv4.tcp_max_syn_backlog = 262144
net.ipv4.tcp_synack_retries = 2
net.ipv4.tcp_syn_retries = 2

    执行优化:
sysctl -p

CentOS默认是不支持Ext4.所以你需要处理一下才行。

使用环境使用的是CentOS5.8 内核是  2.6.18-238.19.1.el5

其实CentOS 5.8 里面是有 ext4 模块的,只是没加载,所以我们先把模块加入系统

# cd /lib/modules/2.6.18-238.19.1.el5/kernel/fs/ext4   //ext4模块就在此目录下

# [root@linux ext4]# ls

ext4.ko

找到模块后使用modprobe 命令添加

# modprobe ext4    //注意:这里只能写模块名,不能写成 ext4.ko

# lsmod |grep ext4  //添加完后使用lsmod 查看

ext4                  285409  0

jbd2                   47744  1 ext4

crc16                   1027  1 ext4

[root@linux ext4]# yum install e4fsprogs     //最后使用yum 安装一下 e4fsprogs

[root@linux ext4]# mkfs.ext4 /dev/sdc    //最后创建一个分区来使用ext4 创建文件系统

mke4fs 1.41.12 (17-May-2010)
/dev/sdi is entire device, not just one partition!
Proceed anyway? (y,n) y
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
Stride=0 blocks, Stripe width=0 blocks
61014016 inodes, 244056064 blocks
12202803 blocks (5.00%) reserved for the super user
First data block=0
Maximum filesystem blocks=4294967296
7448 block groups
32768 blocks per group, 32768 fragments per group
8192 inodes per group
Superblock backups stored on blocks:
        32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208,
        4096000, 7962624, 11239424, 20480000, 23887872, 71663616, 78675968,
        102400000, 214990848
Writing inode tables: done
Creating journal (32768 blocks): done
Writing superblocks and filesystem accounting information: done
This filesystem will be automatically checked every 31 mounts or
180 days, whichever comes first.  Use tune4fs -c or -i to override.
[root@linux ext4]#mount /dev/sdc /hadoop1 

转:http://blog.chinaunix.net/uid-9395696-id-3432841.html
modprobe ip_conntrack
echo "modprobe ip_conntrack" >> /etc/rc.local
sysctl.conf修改
net.ipv4.tcp_max_syn_backlog = 8192
net.ipv4.ip_conntrack_max =655360
net.core.netdev_max_backlog = 8192
net.core.somaxconn = 4096
php.ini修改
default_socket_timeout = 120
memory_limit = 4096M
php-fpm修改
listen.backlog = 3072
pm.max_requests = 102400

参数根据自己服务器的性能调整

转自:http://haibo600.blog.51cto.com/blog/1951311/874603

1.worker_processes 越大越好(一定数量后性能增加不明显)
2.worker_cpu_affinity 所有cpu平分worker_processes 要比每个worker_processes 都跨cpu分配性能要好;不考虑php的执行,测试结果worker_processes数量是cpu核数的2倍性能最优
3.unix domain socket(共享内存的方式)要比tcp网络端口配置性能要好
不考虑backlog,请求速度有量级的飞跃,但错误率超过50%
加上backlog,性能有10%左右提升
4.调整nginx、php-fpm和内核的backlog(积压),connect() to unix:/tmp/php-fpm.socket failed (11: Resource temporarily unavailable) while connecting to upstream错误的返回会减少
nginx:
配置文件的server块
listen 80 default backlog=1024;
php-fpm:
配置文件的
listen.backlog = 2048
kernel参数:
/etc/sysctl.conf,不能低于上面的配置
net.ipv4.tcp_max_syn_backlog = 4096
net.core.netdev_max_backlog = 4096
5.增加单台服务器上的php-fpm的master实例,会增加fpm的处理能力,也能减少报错返回的几率
多实例启动方法,使用多个配置文件:
/usr/local/php/sbin/php-fpm -y /usr/local/php/etc/php-fpm.conf &
/usr/local/php/sbin/php-fpm -y /usr/local/php/etc/php-fpm1.conf &
nginx的fastcgi配置
    upstream phpbackend {
#      server   127.0.0.1:9000 weight=100 max_fails=10 fail_timeout=30;
#      server   127.0.0.1:9001 weight=100 max_fails=10 fail_timeout=30;
#      server   127.0.0.1:9002 weight=100 max_fails=10 fail_timeout=30;
#      server   127.0.0.1:9003 weight=100 max_fails=10 fail_timeout=30;
      server   unix:/var/www/php-fpm.sock weight=100 max_fails=10 fail_timeout=30;
      server   unix:/var/www/php-fpm1.sock weight=100 max_fails=10 fail_timeout=30;
      server   unix:/var/www/php-fpm2.sock weight=100 max_fails=10 fail_timeout=30;
      server   unix:/var/www/php-fpm3.sock weight=100 max_fails=10 fail_timeout=30;
#      server   unix:/var/www/php-fpm4.sock weight=100 max_fails=10 fail_timeout=30;
#      server   unix:/var/www/php-fpm5.sock weight=100 max_fails=10 fail_timeout=30;
#      server   unix:/var/www/php-fpm6.sock weight=100 max_fails=10 fail_timeout=30;
#      server   unix:/var/www/php-fpm7.sock weight=100 max_fails=10 fail_timeout=30;
    }
        location ~ \.php* {
            fastcgi_pass   phpbackend;
#           fastcgi_pass   unix:/var/www/php-fpm.sock;
            fastcgi_index index.php;
       ..........
       }
6.测试环境和结果
内存2G
swap2G
cpu 2核 Intel(R) Xeon(R) CPU E5405  @ 2.00GHz
采用ab远程访问测试,测试程序为php的字符串处理程序
1)在开4个php-fpm实例,nginx 8个worker_processes 每个cpu4个worker_processes ,backlog为1024,php的backlog为2048,内核backlog为4096,采用unix domain socket连接的情况下,其他保持参数不变
性能和错误率较为平衡,可接受,超过4个fpm实例,性能开始下降,错误率并没有明显下降
结论是fpm实例数,worker_processes数和cpu保持倍数关系,性能较高
影响性能和报错的参数为
php-fpm实例,nginx worker_processes数量,fpm的max_request,php的backlog,unix domain socket
10W请求,500并发无报错,1000并发报错率为0.9%
500并发:
Time taken for tests:   25 seconds avg.
Complete requests:      100000
Failed requests:        0
Write errors:           0
Requests per second:    4000 [#/sec] (mean) avg.
Time per request:       122.313 [ms] (mean)
Time per request:       0.245 [ms] (mean, across all concurrent requests)
Transfer rate:          800 [Kbytes/sec] received avg.
1000并发:
Time taken for tests:   25 seconds avg.
Complete requests:      100000
Failed requests:        524
   (Connect: 0, Length: 524, Exceptions: 0)
Write errors:           0
Non-2xx responses:      524
Requests per second:    3903.25 [#/sec] (mean)
Time per request:       256.197 [ms] (mean)
Time per request:       0.256 [ms] (mean, across all concurrent requests)
Transfer rate:          772.37 [Kbytes/sec] received
2)在其他参数不变,unix domain socket换为tcp网络端口连接,结果如下
500并发:
Concurrency Level:      500
Time taken for tests:   26.934431 seconds
Complete requests:      100000
Failed requests:        0
Write errors:           0
Requests per second:    3712.72 [#/sec] (mean)
Time per request:       134.672 [ms] (mean)
Time per request:       0.269 [ms] (mean, across all concurrent requests)
Transfer rate:          732.37 [Kbytes/sec] received
1000并发:
Concurrency Level:      1000
Time taken for tests:   28.385349 seconds
Complete requests:      100000
Failed requests:        0
Write errors:           0
Requests per second:    3522.94 [#/sec] (mean)
Time per request:       283.853 [ms] (mean)
Time per request:       0.284 [ms] (mean, across all concurrent requests)
Transfer rate:          694.94 [Kbytes/sec] received
与1)比较,有大约10%的性能下降
7. 5.16调整fpm的max_request参数为1000,并发1000报错返回降到200个以下,
Transfer rate在800左右

 

第2层隧道协议 (L2TP),是 VPN 隧道协议的一种,是 PPTP 的后续版本。L2TP 支持两端点间多隧道,但通常要由 IPSec 来提供加密和验证功能,可建立变动的客户端到固定服务器的连接。

一、安装 IPSec

IPSec 用于对 IP 数据包进行加密和验证,通常使用 Openswan 来实现 IPSec。

1.1、安装编译工具

1
apt-get -y install build-essential

1.2、安装 OpenSwan 依赖包

1
apt-get -y install libgmp3-dev flex bison

1.3、编译安装 OpenSwan

1
2
3
4
wget -c http://www.openswan.org/download/openswan-2.6.33.tar.gz
tar -zxf openswan-2.6.33.tar.gz
cd openswan-2.6.33
make programs install

1.4、编辑 IPSec 配置文件

注意将"192.168.1.102"换成服务器公网IP。

1
cp /etc/ipsec.conf /etc/ipsec.conf.old
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
cat >/etc/ipsec.conf<<EOF
version 2.0

config setup
    nat_traversal=yes
    virtual_private=%v4:10.0.0.0/8,%v4:192.168.0.0/16,%v4:172.16.0.0/12
    oe=off
    protostack=netkey

conn L2TP-PSK-NAT
    rightsubnet=vhost:%priv
    also=L2TP-PSK-noNAT

conn L2TP-PSK-noNAT
    authby=secret
    pfs=no
    auto=add
    keyingtries=3
    rekey=no
    ikelifetime=8h
    keylife=1h
    type=transport
    left=192.168.1.102
    leftprotoport=17/1701
    right=%any
    rightprotoport=17/%any
EOF

1.5、设置 PSK 预共享密钥

注意将"192.168.1.102"换成服务器公网IP。将"123456"换成你自己的PSK。

1
2
3
cat >/etc/ipsec.secrets<<EOF
192.168.1.102 %any: PSK "123456"
EOF

1.6、调整网络策略

for 循环语句,请一行一行地输入,输完后按回车。

1
2
3
4
5
for each in /proc/sys/net/ipv4/conf/*
do
echo 0 > $each/accept_redirects
echo 0 > $each/send_redirects
done

1.7、重启IPSec 服务

1
2
/etc/init.d/ipsec restart
/usr/local/sbin/ipsec verify

可尝试使用 L2TP/IPSec 客户端连接一次,以测试 IPSec 部分配置是否成功。

1
cat /var/log/auth.log | grep pluto

如出现"IPsec SA established transport mode"则成功了。

二、安装 L2TP

使用 xl2tpd 来实现 L2TP,另外要注意的是 xl2tpd 需要从 rp-l2tp 中提取 l2tp-control。

2.1、提取 l2tp-control

1
2
3
4
5
6
7
8
wget http://nchc.dl.sourceforge.net/project/rp-l2tp/rp-l2tp/0.4/rp-l2tp-0.4.tar.gz
tar zxvf rp-l2tp-0.4.tar.gz
cd rp-l2tp-0.4
./configure
make
cp handlers/l2tp-control /usr/local/sbin/
mkdir /var/run/xl2tpd/
ln -s /usr/local/sbin/l2tp-control /var/run/xl2tpd/l2tp-control

2.2、编译安装 xl2tpd

1
apt-get -y install libpcap-dev #安装依赖包
1
2
3
4
5
wget -c http://www.xelerance.com/wp-content/uploads/software/xl2tpd/xl2tpd-1.2.8.tar.gz
tar -zxf xl2tpd-1.2.8.tar.gz
cd xl2tpd-1.2.8
make install
mkdir /etc/xl2tpd

2.3、编辑 xl2tpd 配置文件

ip range 是连接上来的客户端所获得的服务器端内网的 IPv4 地址段。
local ip 是 pppX 所占用的那个 IP 地址。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
cat >/etc/xl2tpd/xl2tpd.conf<<EOF
[global]
ipsec saref = yes

[lns default]
local ip = 10.10.11.1
ip range = 10.10.11.2-10.10.11.245
refuse chap = yes
refuse pap = yes
require authentication = yes
ppp debug = yes
pppoptfile = /etc/ppp/options.xl2tpd
length bit = yes
EOF

三、PPP 的安装配置

3.1、安装 ppp 包

1
apt-get -y install ppp

3.2、配置 options.xl2tpd

主要是改MS-DNS,其他默认。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
cat >/etc/ppp/options.xl2tpd<<EOF
require-mschap-v2
ms-dns 8.8.8.8
ms-dns 8.8.4.4
asyncmap 0
auth
crtscts
lock
hide-password
modem
debug
name l2tpd
proxyarp
lcp-echo-interval 30
lcp-echo-failure 4
EOF

四、添加 VPN 用户

chap-secrets 文件为4段,分别是:用户名、服务器名称、密码、分配给客户端的IP。
服务器名可以是l2tpd 或 pptpd,*号代表全部。
密码以明文填写,不需进行加密。
最后的*号代表从remoteip指定的IP段随机分配

1
2
3
cat >>/etc/ppp/chap-secrets<<EOF
user * 123456 *
EOF

五、配置数据包转发

否则连接VPN后,只能访问服务器资源,而不能访问这台服务器以外的资源。

1
2
sed -i 's/#net.ipv4.ip_forward=1/net.ipv4.ip_forward=1/g' /etc/sysctl.conf
sysctl -p

开启iptables转发

1
iptables -t nat -A POSTROUTING -j MASQUERADE

设置MTU

1
iptables -I FORWARD -p tcp --syn -i ppp+ -j TCPMSS --set-mss 1356

六、启动 xl2tpd 服务

1
2
/usr/local/sbin/xl2tpd
/usr/local/sbin/xl2tpd -D #以调式模式启动

参考资料:

1. http://www.linuxhomenetworking.com/wiki/index.php
2. http://www.linode.com/wiki/index.php/AndroidL2TPPSKServer
3. https://humou.net/blog/201102061326.html
4. http://b.gkp.cc/2010/06/19/setup-ipsec-l2tp-on-centos-55/
5. http://apple4.us/2010/05/setting-up-l2tp-vpn-on-debian-ubuntu.html

原文地址 : http://wangyan.org/blog/debian-l2tp-ipsec-vpn.html
本站遵循 : 知识共享署名-非商业性使用-相同方式共享 3.0 版权协议
版权声明 : 原创文章转载时,请务必以超链接形式标明 文章原始出处

买了一台米国的KVM,一年才200块,可以用VPN,自己架设了一套,以下是参考出处:

http://www.onelone.com/tutorial/vpn2.html

感谢作者

Debian架设VPN其实跟CentOS相差不大,大家要设置的内容一样,只是具体执行命令有差别而已,所以本文只是简单讲解一下,如有不明请参看我的上一篇CentOS Linux VPS架设VPN教程。闲话少说,下面是教程:

 

一、确认PPP和TUN启用后,先升级系统然后重启一次:

 

apt-get update
reboot

 

1.png

二、安装pptpd:apt-get install pptpd 然后配置pptpd,编辑 /etc/pptpd.conf  文件,去掉下面两行前面#

 

localip 192.168.0.1
remoteip 192.168.0.234-238,192.168.10.245

 

三、配置 DNS,编辑 /etc/ppp/options 文件,加入下面两行:

 

ms-dns 8.8.8.8
ms-dns 8.8.4.4

 

四、开启IP转发,编辑 /etc/sysctl.conf 文件,去掉下面代码前面的#

 

net.ipv4.ip_forward=1

 

五、添加VPN用户名密码,编辑 /etc/ppp/chap-secrets 文件,按下面格式输入:

 

用户名    pptpd       密码      *

 

六、把转发规则写成文件,执行命令:vi /etc/pptpdfirewall.sh 然后内容输入:

 

sudo /sbin/iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -j SNAT 
--to-source 你的VPS公网IP

sudo /sbin/iptables -A FORWARD -s 192.168.0.0/24 -p tcp -m tcp --tcp-flags 
FIN,SYN,RST,ACK SYN -j TCPMSS --set-mss 1356

 

七、设置文件执行权限,执行下面命令:

 

chmod 755 /etc/pptpdfirewall.sh

 

八、设置开机启动,执行命令:vi /etc/init.d/rc.local 然后在最后一行加入下面代码:

 

sh /etc/pptpdfirewall.sh

 

九、重启VPS后就可以正常使用你的VPN了:

 

reboot

 

2.png 

最后,如果连接出现错误619或者错误734,请参看这里