- 浏览: 10728 次
- 性别:
- 来自: 北京
最新评论
文章列表
Python装饰器和__call__函数
- 博客分类:
- python
__call__
在python中,函数其实是一个可调用的对象,实例对象可以用函数的形式表示
一个类实例可以变成一个可调用的对象,只需要实现方法__call__()
一、把类Myclass变成可调用的对象:
class Myclass(object):
def __init__ ...
进程共享内存实现原理
- 博客分类:
- 质量压测
质量压测:成熟的网站,各个系统的抗压力情况,摸底网站的pqs的极限
小编在做压测期间,使用的是Python语言,走底层的dump数据流,仿真性的用户流量进行压测,在多进程管理方面出现了些问题,下面说说进程间共享内存的问题
内存共享实现机制:
一、mmap机制:在磁盘上建立一个文件,每个进程存储器中,单独开辟一个空间来映射
保存到实际硬盘,实际并没有反映到主存上
优点:存储量大
缺点:读取和写入速度比较慢
二、shm机制:每个进程的共享内存都直接映射到实际物理存储器上
shm保存到物理存储器(主存),实际的存储量直接反映到 ...
小编在做压测过程中,会启动一些守护的子进程,作为主进程的一个属性,在执行完成功能时候,未知是否该守护进程属性是否完全关闭,小编就用了python的hasattr()来判断,然后做del操作,下面就说说这三个属性的用法:
1、hasattr(object, name)
判断对象中是否包含name属性或者方法,返回的是bool类型
class ObjectTest():
name="Kobe Bryant"
def run(self):
return "HelloWord"
test = Obje ...
python shutil模块处理文件
- 博客分类:
- python
一、简介
使用Python语言处理文件,一般我们会想到执行shell命令,但是执行shell有很多的问题,小编后来发现shutil是个好东西,shutil是高层次的文件操作,类似于高级API,其强大之处在于对文件的复制、备份、压缩包等
二、使用
shutil.copyfileobj(src, dst[, length])
将文件内容拷贝到另一个文件中
import shutil
shutil.copyfileobj(open('/home/work/1.txt', 'r'), open('/home/work/2.txt', 'w'))
...
python调用shell的方法比较
- 博客分类:
- python
在Python程序中调用shell命令有4种方法的比较:
1、os.system(command)
在一个子终端调用该命令,同步调用,返回的是执行完毕后的退出状态,无法保存返回的command命令的执行结果
2、os.popen(command,mode)
output = os.popen(command,mode)
获取结果:output.read(),但是无法获取程序执行的返回值
说明:该方法是返回一个文件对象,以读或者写(由mode决定,mode默认是’r')
3、commands.getstatusoutput(command)
压测tcpdump和精度控制
- 博客分类:
- 质量压测
为了dump有用的数据,去除一些TCP协议握手的数据包,tcpdump有一些参数可以控制,过滤出push的数据包
1、tcpdump数据去除握手的数据包
TCP/IP协议的数据包有一字段TCP flags (URG,ACK,PSH,RST,SYN,FIN),每个字段各占一个字节,其中PSH字段如果为1,则是client发往Server端的数据包,在tcpdump工具中,tcp[13]代表flag的数据值
# Unskilled 32
# Attackers 16
# Pester 8
# Real 4
...
压测工具:
工具
说明
使用
特点
ab
模拟多个访问者同时对某一URL地址进行访问(nginx,tomcat,lighhttp)模拟多线程并发请求
ab -c 100 -n 1000 http://www.baidu.com/
做重复压力测试不错,但是每次只能测试一个链接
http_load
先熟悉些redis指令
#查看所有key
keys *
#查看匹配前缀嗯keys
keys "test*"
#删除当前数据库中的key
flushdb
#删除所有数据库中的所有key
flushall
#设置key的值,若存在则覆盖
set key value
#重命名
rename oldkey newkey
#获 ...
Linux环境变量详解
- 博客分类:
- linux
环境变量
一、定义:系统预定义的参数
指定一个目录,运行软件的时候,相关程序就会按照该目录寻找相关文件,如果没有设定环境变量,打出命令的时候会出现”command not found”的提示,因为系统在环境变量中没有搜索到该命令
二、Linux环境变量的种类,按照生存周期来划分
1、永久性:需要修改配置文件,变量永久生效
2、临时性:使用export命令声明即可,变量在shell关闭时失效
三、设置变量的三种方法
1、本次开机生效(临时),下次开机无效
输入:
export PATH=$PATH:/usr/local/ ...
说明:
1)Linux安装软件常用的五种方式:
1、apt-get install 软件包
2、rpm包安装
3、deb包安装
4、yum安装
5、源码安装,几乎所有的开源软件都支持在Linux平台运行
为了能够适应各种版本的Linux系统,小生喜欢源码安装,万变不离其宗
前言:MySQLdb是用于 Python 链接 Mysql 数据库的接口
安装准备:
1)下载最新的MySQLdb安装包:
wget http://sourceforge.net/projects/mysql-python/files/mys ...
python安装2.7版本
- 博客分类:
- 代码管理
说明:默认的Linux操作系统上的Python版本在2.6,个别的Python程序无法执行,需要升级Python版本到2.7
方法:我们采用源码安装Python2.7
步骤:
1)先下载Python的tar包到目录/usr/local/src/下面:
wget http://www.python.org/ftp/python/2.7.3/Python-2.7.3.tgz
2)解压tar包:
tar -zxvf Python-2.7.3.tgz
3)在/usr/local/下面建立文件python27
mkdir python27
4)编译安装Python
cd /usr/l ...
在linux下 用tar -zxf xxx.tar.gz
然后就报这个错。
gzip: stdin: not in gzip format
tar: Child returned status 1
tar: Error exit delayed from previous errors
原因:这个压缩包没有用gzip格式压缩 所以解压的时候也不用加上z 。直接tar -xf 就可以了
#设置文件的读写权限
sudo chmod +w bashrc
sudo vi /etc/bashrc
#设置MySQL的密码
mysqladmin -u root password root
#如果设置完成密码后,需要修改,执行命令
mysqladmin -u root -p password 最新密码
#连接本地数据库
mysql -u root -p
#创建名为mydb的数据库
create database mydb;
#将mydb的默认字符集设置为 utf8
#注:mysql默认使用的字符集是latin1,不支持中文,需要设置一下哦
alter database mydb ...
1、提交代码
临时切换用户:svn ci --username zhangsan --password zhagnsan123 -m "注释内容"
默认用户:svn ci -m "注释内容"
2、永久的切换用户
删除目录~/.subversion/auth/下的所有文件,下次操作svn会提示你输入密码和用户名
3、将项目导出到本地目录
svn co http:/192.168.0.1/php/project
4、往本地库中增加新的文件
svn add test.py
5、将改动的文件提交到svn库中
...
js前端radio问题
- 博客分类:
- html
必须有一步是click事件,网上看到其他的依然会报错,要把其他的checked的属性去除
<html>
<head>
<script type="text/javascript" src="./jquery/jquery-1.12.3.min.js"></script>
</head>
<body>
<div>
<input id="yes" name="radio" type="radio" ...