Web性能压力测试工具之Siege详解

是一个http负载测试和基准测试工具。它的设计目的是让web开发人员在胁迫下测量他们的代码,以了解它如何经得起互联网上的负载。Size支持基本身份验证、Cookie、HTTP、HTTPS和FTP协议。它允许用户使用可配置数量的模拟客户机访问服务器

python json 的使用

dumps和dump loads和load的区别

1
2
3
4
dumps 是用于将dict类型的数据转成str
loads 是用于将str类型的数据转成dict
dump 是用于将dict类型的数据转成str,并写入到json文件中,一般配合着open写入文件来用
load 是用于从json文件中读取数据,一般配合着open打开文件来用

json使用过程中的一些错误

json里面有中文的时候,出现的错误,将ensure_ascii设置成False即可,因为默认是用ascii转码的

1
2
3
4
path = os.path.dirname(os.path.abspath(__file__))
path = f"{path}/app_apk_visit_local_total.json"
with open(path, 'w', encoding='UTF-8') as file:
json.dump(contents,file, ensure_ascii=False)

ERROR: The Python ssl extension was not compiled. Missing the OpenSSL lib?

官方已经给出解决方案:https://github.com/pyenv/pyenv/wiki/Common-build-problems#error-the-python-ssl-extension-was-not-compiled-missing-the-openssl-lib

在Mac上且用homebrew装了openssl的情况下,命令行如下:

1
2
3
CFLAGS="-I$(brew --prefix openssl)/include" \
LDFLAGS="-L$(brew --prefix openssl)/lib" \
pyenv install -v 3.6.2

再补充一句,pyenv前面不要加sudo。否则编译仍旧报错通不过。

Mac 安装jupyter,并且在后台运行

Jupyter Notebook 的本质是一个 Web 应用程序,便于创建和共享文学化程序文档,支持实时代码,数学方程,可视化和 markdown。 用途包括:数据清理和转换,数值模拟,统计建模,机器学习等等。

python之进程、线程和协程

定义

进程

进程是每一个应用运行起来都会有自己的进程,因为进程是系统资源分配的基本单位。直观点说,保存在硬盘上的程序运行以后,会在内存空间里形成一个独立的内存体,这个内存体有自己独立的地址空间,有自己的堆,上级挂靠单位是操作系统。操作系统会以进程为单位,分配系统资源(CPU时间片、内存等资源),进程是资源分配的最小单位。

docker的简单使用

镜像

下载镜像

1
docker pull [选项] [Docker Registry 地址[:端口号]/]仓库名[:标签]

运行

1
2
3
docker run -it --rm \
nginx \
bash

it 这是两个参数,一个是 -i:交互式操作,一个是 -t 终端。我们这里打算进入 bash 执行一些命令并查看返回结果,因此我们需要交互式终端。
--rm:这个参数是说容器退出后随之将其删除。默认情况下,为了排障需求,退出的容器并不会立即删除,除非手动 docker rm。 我们这里只是随便执行个命令,看看结果,不需要排障和保留结果,因此使用 –rm 可以避免浪费空间。

nginx:这是指用 nginx 镜像为基础来启动容器。
bash:放在镜像名后的是 命令,这里我们希望有个交互式 Shell,因此用的是 bash

列出镜像

想要列出已经下载的镜像,使用docker image ls 命令。

删除镜像

如果要删除本地镜像,使用docker image rm XXX

虚拟镜像

可能因为docker build新的镜像导致旧的镜像的名称被新的取代。有很多<none>的情况

1
2
3
4
5
6
7
8
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
blog latest 132adcbec4fd 2 weeks ago 944MB
<none> <none> 284197648c09 2 weeks ago 944MB
<none> <none> 5a582e38aa30 2 weeks ago 947MB
<none> <none> 20e47abe4f10 2 weeks ago 947MB
<none> <none> 3d8a5112aa7d 2 weeks ago 947MB
<none> <none> 748e5c90832c 2 weeks ago 910MB
python 3.5 67f4589d3c88 7 months ago 908MB

有一些虚拟镜像已经没有用了,那么可以删除。他的指令是docker image prune

进入镜像

1
2
3
4
5
方式一:
docker exec -it XXX bash

方式二:
docker run --rm -it 6b4faa0b6de5 bash

容器

volumes 数据卷

1
2
3
4
5
6
7
8
9
10
11
12
version: "3.2"
services:
web:
image: alpine
volumes:
- ~/test:/data

***备注***
`容器和主机`: 在services定义(web)中使用volumes将主机的test挂载到容器的/data中
`容器和容器`:可以通过在和service平级的volumes中定义volumes