Debian 安装flash player

添加源:
deb http://ftp.de.debian.org/debian sid main contrib
安装:
apt-get update
apt-get install flashplugin-nonfree

2012-2-19 17:46 / 标签: / 分类: linux

让Debian以root登录

Debian默认不允许root登录,所以修改之。
让Debian以root登录
修改gdm3的登录pam文件
#vi /etc/pam.d/gdm3
将auth required pam_succeed_if.so user != root quiet_success注释掉 //本行前加#
即可

2012-2-19 14:41 / 标签: / 分类: linux

Debian自动挂载NTFS分区

当我们安装ntfs-3g包后,我们可以在“计算机”中双击ntfs分区,需要输入root密码,可完成挂载。这样还是挺麻烦,每次都需要输入root密码。如果没有安全方面考虑的话,可以设置省略密码验证。方法如下:

<action id="org.freedesktop.udisks.filesystem-mount-system-internal">
<description>Mount a system-internal device</description>
<description xml:lang="da">Montér en intern enhed</description>
<message>Authentication is required to mount the device</message>
<message xml:lang="da">Autorisering er påkrævet for at montere et fil system</message>
<defaults>
<allow_any>no</allow_any>
<allow_inactive>no</allow_inactive>
<allow_active>auth_admin_keep</allow_active>
</defaults>
</action>
找到
<allow_active>auth_admin_keep</allow_active>
改为
<allow_active>yes</allow_active>

2012-2-18 21:58 / 标签: ntfs / 分类: linux

tcpcopy

简介[http://code.google.com/p/tcpcopy/]

tcpcopy是一种请求复制(所有基于tcppackets)工具,其应用领域较广,我们曾经应用于 网易的广告投放系统,urs系统,nginx hmux协议等系统,避免了上线带来的很多问题。 我们即将应用tcpcopymembase替换现有mecached系统的任务中。由于membase还不够 成熟,不适合直接上线,利用tcpcopy程序,可以把访问memcached的系统流量复制一份到 membase系统中去。对于membase来说,这份流量就是访问membase的,跟直接上线 membase效果一样,就可以做各种试验,查看membase的各种特性。

tcpcopy六大功能:

1)分布式压力测试工具,利用在线数据,可以测试系统能够承受的压力大小(远比ab压力测 试工具真实地多),也可以提前发现一些bug2)如果后端的连接是短连接并且请求体不大,请求丢失率一般都非常低(1/10万),可以应用于热备份 3)普通上线测试,可以发现新系统是否稳定,提前发现上线过程中会出现的诸多问题,让开 发者有信心上线 4)对比试验,同样请求,针对不同或不同版本程序,可以做性能对比等试验 5)利用级联tcpcopy,构造无限在线压力,满足中小网站压力测试要求 6)实战演习(架构师必备)

特点:

1)实时 2)效果真实 3)低负载,不影响在线 4)操作简单 5)分布式 6)意义非凡

使用方法:

TCPCOPY server root用户执行) 1)启动内核模块ip_queue (modprobe ip_queue) 2)设置要截获的端口,并且设置对output截获      iptables -I OUTPUT -p tcp --sport port -j QUEUE 3)./interception 注意(如果已经启动ip_queue和已经设置iptables,只需要运行第3项;测试完以后要记得iptables -F TCPCOPY client   root用户执行) ./tcpcopy 本地ip地址1[:本地ip地址2:…]  本地port  远程ip地址 远程port注意(本地ip地址列表其实就是客户端所认为的服务器ip地址,如果前面有lvs,一般就是lvs的虚拟ip地址)

测试举例:

假设1314是在线应用服务器,148是测试服务器(148配置和13差不多), 本地端口和远程端口都是12321。我们的目的就是为了确认目前在线服务器 能否承受目前两倍的压力。 我们利用tcpcopy进行测试:     目标测试服务器(148)        # modprobe ip_queue (if not run up)        # iptables -I OUTPUT -p tcp --sport 12321 -j QUEUE (if not set)        # ./interception     在线服务器(13):        # ./tcpcopy xx.xx.xx.13 12321 xx.xx.xx.148 12321     在线服务器(14):        # ./tcpcopy xx.xx.xx.14 12321 xx.xx.xx.148 12321 13 cpu: 11124 adrun 15 0 193m 146m 744 S 18.6 7.3 495:31.56 asyn_server11281 root 15 0 65144 40m 1076 S 12.3 2.0 0:47.89 tcpcopy14 cpu: 16855 adrun 15 0 98.7m 55m 744 S 21.6 2.7 487:49.51 asyn_server16429 root 15 0 41156 17m 1076 S 14.0 0.9 0:33.63 tcpcopy148 cpu : 25609 root 15 0 76892 59m 764 S 49.6 2.9 63:03.14 asyn_server20184 root 15 0 5624 4232 292 S 17.0 0.2 0:52.82 interception13记录: grep 'Tue 11:08' access_0913_11.log |wc -l :89316,每秒处理1489次请求 14记录: grep 'Tue 11:08' access_0913_11.log |wc -l :89309,每秒处理1488次请求 148记录: grep 'Tue 11:08' access_0913_11.log |wc -l :178175,每秒处理2969次请求 请求丢失率为:(89316+89309-178175)/(89316+89309)=0.25% 从上面可以看出一台在线服务器能够承受目前压力的两倍。 我们来看负载情况: TCPCOPY client自身负载占到12.3%和14%,TCPCOPY server占到17%,从负载来看,均不高。 内存也占得不多。

注意事项:

1Linux平台,内核2.6+ 2TCPCOPY类似于UDP,所以会丢包,进而丢失请求 3)本系统不支持域名,只支持ip地址 4Local Requests,请设置lo MTU不超过1500,并且在配置文件中不要设置127.0.0.1地址, 要设置内网或者外网地址 5TCPCOPY server有可能会成为性能瓶颈 6)丢失请求率跟网络状况有关,最好在内网内复制请求 7TCPCOPY中的tcpcopyinterception程序运行需要root权限 8TCPCOPY只与iptcp层的数据有关,如果请求验证与tcp层以上的协议有关,则系统不能正常运行。 例如:mysql连接协议,由于权限认证与tcp层上面的mysql协议有关,所以复制过去的请求会被目 标测试服务器认为非法请求,这个时候需要针对mysql协议作具体针对性的处理,tcpcopy程序才能正常运行 9)目前追求的是功能,性能优化和代码重构会在稳定以后进行 10)针对长请求(比如上传文件),本系统不是很支持, 因为传递packets到目标测试服务器的时候,没有重传机制的支持(0.4版本会支持重传) 11)如果有问题,请注意error.log文件提示的错误信息 (email: 163.beijing@gmail.com) 12)源代码已经转到github13)测试环境最好和在线环境一致,比如连接都保持keepalive14)多层架构环境下,测试系统一定要独立,与在线系统没有业务关联,否则会影响在线 15)如果请求丢失率比较高,可以在log.h中设置 #define DEBUG_TCPCOPY 1 0.3.2+版本), 重新编译,运行,输出若干分钟的log,发送给我。 16)由于更新比较快,高版本针对某些应用,请求丢失率反而有可能会下降,由于需要回归的测试太多,请谅解 17)个人微博:http://weibo.com/tcpcopy

总结

如果你对上线没有信心,如果你的单元测试不够充分,如果你对新系统不够有把握,如果你对 未来的请求压力无法预测,如果你想对比诸如apachenginx的性能,tcpcopy可以帮助你解决上述难题。 在这里要感谢网易技术部的支持,原先作者王波的设计和部分代码、叶金荣的mysql测试支持和推广, 淘宝人员的测试支持,水木的支持(比如zms等),还有众多开源人士提供的无私帮助(例如tocer.deng)。
2012-2-7 13:33 / 标签: 压力测试 / 分类: 普通

总结一些shell命令[不断更新中]

1.用sed在固定行加入多行:

sed '2a this is a test' sed_test.txt #第2行之后添加一行'this is a test '				
sed '2a 1\
3\
4\
5\
6\
7' tmp.idx	#在第2行加入多行
2.单引号或双引号换成空格:

sed "s/[\'\"]/ /g"							
3.显示1到3行

sed -n  '1,3p' tmp(head -3)

4.正则出IP地址:

grep -Po "\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}"
sed -rn 's/.*((\<.*\.){3}.*\>).*/\1/p'

5.正则出括号之之间的字符

sed 's/^[^(]*(\([^)]*\)).*/\1/g'

2012-2-7 13:04 / 标签: shell / 分类: linux

linux 终端解決 ctrl+s 使 terminal output STOP

ctrl+q
2012-2-2 11:48 / 标签: / 分类: linux

xcir-varnishlogTrans-0315db2

2012-2-2 11:45 / 标签: / 分类: web

[转载]Nginx+keepalived负载均衡篇

由于nginx的url hash功能可以很好的提升squid的性能,所以我把squid前端的负载均衡器更换为nginx,但是一台nginx就形成了单点,现在使用keepalived来解决这个问题,keepalived的故障转移时间很短(<1s),而且配置简单,这也是选择keepalived的一个主要原因,建议日PV值小的中小型企业web均可采用如下方案实行,下面直接上安装步骤:

一、环境:
centos5.3、nginx-0.7.51、keepalived-1.1.19
主nginx负载均衡器:192.168.0.154
辅nginx负载均衡器:192.168.9.155
vip:192.168.0.188

二、安装keepalived

#tar zxvf keepalived-1.1.19.tar.gz
#cd keepalived-1.1.19
#./configure --prefix=/usr/local/keepalived
#make
#make install
#cp /usr/local/keepalived/sbin/keepalived /usr/sbin/
#cp /usr/local/keepalived/etc/sysconfig/keepalived /etc/sysconfig/
#cp /usr/local/keepalived/etc/rc.d/init.d/keepalived /etc/init.d/
#mkdir /etc/keepalived
#cd /etc/keepalived/
vim keepalived.conf

! Configuration File for keepalived
global_defs {
notification_email {
yuhongchun027@163.com
}
notification_email_from keepalived@chtopnet.com
smtp_server 127.0.0.1
smtp_connect_timeout 30
router_id LVS_DEVEL
}

vrrp_instance VI_1 {
state MASTER
interface eth0
virtual_router_id 51
mcast_src_ip 192.168.0.155 <==辅nginx的IP地址
priority 100
advert_int 1
authentication {
auth_type PASS
auth_pass chtopnet
}
virtual_ipaddress {
192.168.0.188 <==vip地址
}
}
#service keepalived start
我们来看一下日志:
[root@ltos ~]# tail /var/log/messages
Oct 6 03:25:03 ltos avahi-daemon[2306]: Registering new address record for 192.168.0.188 on eth0.
Oct 6 03:25:03 ltos avahi-daemon[2306]: Registering new address record for 192.168.0.154 on eth0.
Oct 6 03:25:03 ltos avahi-daemon[2306]: Registering HINFO record with values 'I686'/'LINUX'.
Oct 6 03:25:23 ltos avahi-daemon[2306]: Withdrawing address record for fe80::20c:29ff:feb9:eeab on eth0.
Oct 6 03:25:23 ltos avahi-daemon[2306]: Withdrawing address record for 192.168.0.154 on eth0.
Oct 6 03:25:23 ltos avahi-daemon[2306]: Host name conflict, retrying with 
Oct 6 03:25:23 ltos avahi-daemon[2306]: Registering new address record for fe80::20c:29ff:feb9:eeab on eth0.
Oct 6 03:25:23 ltos avahi-daemon[2306]: Registering new address record for 192.168.0.188 on eth0.
Oct 6 03:25:23 ltos avahi-daemon[2306]: Registering new address record for 192.168.0.154 on eth0.
Oct 6 03:25:23 ltos avahi-daemon[2306]: Registering HINFO record with values ‘I686′/’LINUX’.

很显然vrrp已经启动,我们还可以通过命令:#ip a 来检查

[root@ltos html]# ip a
1: lo: mtu 16436 qdisc noqueue
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: eth0: mtu 1500 qdisc pfifo_fast qlen 1000
link/ether 00:0c:29:ba:9b:e7 brd ff:ff:ff:ff:ff:ff
inet 192.168.0.154/24 brd 192.168.0.255 scope global eth0
inet 192.168.0.188/32 scope global eth0
inet6 fe80::20c:29ff:feba:9be7/64 scope link
valid_lft forever preferred_lft forever
3: sit0: mtu 1480 qdisc noop
link/sit 0.0.0.0 brd 0.0.0.0

说明vip已经启动,这样主服务器就配置好了,辅机的配置大致一样,除了配置文件有少部分的变化,下

面贴出辅机的配置文件:

! Configuration File for keepalived
global_defs {
notification_email {
yuhongchun027@163.com
}
notification_email_from keepalived@chtopnet.com
smtp_server 127.0.0.1
smtp_connect_timeout 30
router_id LVS_DEVEL
}

vrrp_instance VI_1 {
state BACKUP
interface eth0
virtual_router_id 51
mcast_src_ip 192.168.0.154 <==主nginx的IP的地址
priority 100
advert_int 1
authentication {
auth_type PASS
auth_pass chtopnet
}
virtual_ipaddress {
192.168.0.188
}
}

检查其配置
[root@ltos html]# ip a
1: lo: mtu 16436 qdisc noqueue
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: eth0: mtu 1500 qdisc pfifo_fast qlen 1000
link/ether 00:0c:29:ba:9b:e7 brd ff:ff:ff:ff:ff:ff
inet 192.168.0.155/24 brd 192.168.0.255 scope global eth0
inet 192.168.0.188/32 scope global eth0
inet6 fe80::20c:29ff:feba:9be7/64 scope link
valid_lft forever preferred_lft forever
3: sit0: mtu 1480 qdisc noop
link/sit 0.0.0.0 brd 0.0.0.0

测试其效果方法很简单,分别在主辅机上建立不同的主页,index.html分别为192.168.0.154,192.168.0.155,然后用客户机上elinks http://192.168.0.188,主机down掉后辅机会马上接替提供服务,间隔时间几乎无法感觉出来,这个环境准备再进行下压力测试,用于我杭州网跃朋友的web服务器,如有疑问请联系yuhongchun027@163.com(抚琴煮酒)

转载至 http://hi.baidu.com/yuhongchun027/blog/item/25eca12c3442e9e68a13998c.html

2012-2-2 11:12 / 标签: / 分类: web

[转载]高并发网络负载linux的内核优化

近期在上squid,由于访问量集中在一台主机上,虽然经过了一些优化但是还是大量存在timewait的链接。打算在细挖下内核的一些网络参数的优化。目前还在调整中,如果照着修改的话先cat 备份下你系统现在的值
1.可以改变滑动窗口的大小 (默认应该就是“1”)
echo “1″ > /proc/sys/net/ipv4/tcp_window_scaling

2.修改内核共享内存限制 (新的系统应该默认就是这值)
echo 4294967296 >/proc/sys/kernel/shmall
echo 68719476736 >/proc/sys/kernel/shmmax

3.可使用的代理端口
echo “1024 65000″ > /proc/sys/net/ipv4/ip_local_port_range

4.禁止广播和ping入
echo “1″ > /proc/sys/net/ipv4/icmp_echo_ignore_broadcasts
echo “1″ > /proc/sys/net/ipv4/icmp_ignore_bogus_error_responses

5./proc/sys/net/ipv4/netfilter/ip_conntrack_max 改大到 268435456 默认只有65536 (这个就是连接跟踪表,一味的改大反而会增加系统的负载,一般来讲默认值也够,正确的优化方向是加快连接的关闭释放资源,我这只是在优化初期临时改大。注意/proc/sys/net/ipv4/ip_conntrack_max的值要大于这个值)

6.echo “1800″ > /proc/sys/net/ipv4/netfilter/ip_conntrack_tcp_timeout_established
默认确立连接会在5天后失效,改为半小时后失效,减少ip_conntrack的有效连接数量。

7.echo 1 > /proc/sys/net/ipv4/tcp_syncookies
防范SYN DDOS攻击,打开TCPsyncookies,CENTOS4以上的内核是支持的。

8.echo 2048 > /proc/sys/net/ipv4/tcp_max_syn_backlog
SYN列队长度,不要设置太高,会消耗相应的内存。

9.echo 3 > /proc/sys/net/ipv4/tcp_synack_retries
SYN重试次数。

10.echo 3 > /proc/sys/net/ipv4/tcp_syn_retries
SYN重试次数。

还有一些没深入研究的
echo 600 > /proc/sys/net/ipv4/netfilter/ip_conntrack_generic_timeout
echo 10 > /proc/sys/net/ipv4/netfilter/ip_conntrack_tcp_timeout_close
echo 120 > /proc/sys/net/ipv4/netfilter/ip_conntrack_tcp_timeout_close_wait
echo 120 > /proc/sys/net/ipv4/netfilter/ip_conntrack_tcp_timeout_fin_wait
echo 60 > /proc/sys/net/ipv4/netfilter/ip_conntrack_tcp_timeout_time_wait
echo 30 > /proc/sys/net/ipv4/netfilter/ip_conntrack_udp_timeout

转载:http://226617.cn/archives/539.htm

2012-2-2 11:09 / 标签: / 分类: linux

[转载]绘制Varnish 的vcl处理流程图

最近在尝试的用varnish,资料太少,偶然看见一个vcl的处理流程图,哪来分享下

另外可以安装个  GraphViz 用以下命令可以导出你所用版本的
### for postscript output
$ sed -n ‘/^DOT/s///p’ varnish-cache/bin/varnishd/cache_center.c | dot -Tps > /tmp/varnish-flow.ps
### for pdf output
$ sed -n ‘/^DOT/s///p’ varnish-cache/bin/varnishd/cache_center.c | dot -Tpdf > /tmp/varnish-flow.pdf
[转]http://226617.cn/archives/915.htm
2012-2-2 10:28 / 标签: varnish / 分类: web