1、下载
wget http://www.python.org/ftp/python/2.7.2/Python-2.7.2.tar.bz2
2、解压
tar jxvf Python-2.7.2.tar.bz2
3、编译安装
cd Python-2.7.2
./configure
make && make install
Python 默认安装目录在/usr/local/lib/python2.7
查看一下刚才安装的版本
/usr/local/bin/python
-V,看到了2.7.2
4、更改系统默认版本
之前查看版本使用
/usr/local/bin/python -V ,现在来把系统默认的Python指向刚才安装的Python2.7.2。
(yum是基于2.4.3,所以不要卸载)
mv /usr/bin/python /usr/bin/python.bak
ln -s /usr/local/bin/python2.6 /usr/bin/python
python -V 查看是否成功。
5、修复不能正常工作的yum
在完成了上面4步之后,如果有使用yum的话会发现出错,这是因为yum 依赖2.4.3而现在默认的 Python 版本是2.7.2。
vim /usr/bin/yum
将首行显示的 !#/usr/bin/python 修改为 !#/usr/bin/python2.4
保存。
python -V 查看当前版本
ulimit -n 65500 修改参数
python netbench.py --host ip -p 80 -c 50000
下面的是测试网站并发量的
[root@localhost ~]# cat netbench.py
# encoding: utf-8
import sys
import socket
import select
import time
import argparse
def netbench():
s = socket.socket()
s.connect(('r.domob.cn', 80))
s.send('GET /bbb HTTP/1.1\r\nHost: r.domob.cn\r\n\r\n')
data = s.recv(2048)
s.close()
print data
def run(hostname, port, desiredConnection):
currentConnection = 0
epoll = select.epoll()
connections = {}
while True:
while currentConnection < desiredConnection:
s = socket.socket()
try:
s.connect((hostname, port))
currentConnection += 1
connections[s.fileno()] = s
epoll.register(s, select.POLLIN|select.EPOLLERR)
print "%d connections made, fileno=%d" % (currentConnection, s.fileno())
except Exception,e:
print e
time.sleep(1)
continue
fd_events = epoll.poll()
for sock, event in fd_events:
s = connections[sock]
s.close()
del connections[sock]
currentConnection -= 1
print "CLOSED --- fd=%d. with event %d, left %d connections" % (sock, event, currentConnection)
def parse_arg():
parser = argparse.ArgumentParser(description='yet another bench mark tool.')
parser.add_argument('--host', required=True,
help='target hostname or ip')
parser.add_argument('-p', '--port', required=True, type=int,
help='target port')
parser.add_argument('-c', '--connections', required=True, type=int,
help='Number of connections to make')
args = parser.parse_args()
return args
if __name__ == '__main__':
args = parse_arg()
print args.host
run(args.host, args.port, args.connections)
转载于:https://blog.51cto.com/zhaoyong012/898248