Q1:如何压测云服务器 CPU?
A:
Super Pi(super_pi)是很受欢迎的测试 CPU 的工具,下面是在 linux 环境下运行 super_pi 的步骤,以 Centos6.7 为例,具体步骤如下:
(1) 下载 super_pi
yum install -y wget
wget http://tools.nos-eastchina1.126.net/super_pi.tar.bz2
(2)解压下载的文件:
tar -jxvf super_pi.tar.bz2
(3)安装依赖包
yum install -y ld-linux.so.2
(4)开始测试
./super_pi 位数
表示要算 2 的多少次方位,如通常要算小数点后 1M 位(2^20次方)。
最大到 25 次方,若设置再大的值,会自动缩小到该值。
以 25 为例:
./super_pi 25
此时可以查看 CPU 使用情况,如果是多核可以多个 ./super_pi 25 并发测试。
Attention
如果执行时报错,可以下载super-pi源代码编译安装。
解压:tar -zxvf pi_css5_src.tgz
安装依赖包:yum install glibc-static
修改 Makefile 文件:
CFLAGS += -march=i686 -malign-double 改为 CFLAGS += -malign-double
编译、安装:make; make install
开始测试:./pi_css5 $((1<<25))
Q2:如何压测云服务器内存?
A:
Memtester 是常用的内存压测工具,主要是捕获内存错误和一直处于很高或者很低的坏位,其测试的主要项目有随机值,异或比较,减法,乘法,除法,与或运算等,以Centos6.7为例,具体操作步骤如下:
(1) 下载 memtester
yum install -y wget
yum install -y gcc
wget http://tools.nos-eastchina1.126.net/memtester-4.3.0.tar.gz
(2) 解压下载的文件
tar -zxvf memtester-4.3.0.tar.gz
进入解压后的目录,编译安装软件:
make
make install
(3) 开始测试
2G 内存,测试5次:
./memtester 2G 5
查看内存使用情况。
Q3:如何压测站点性能?
A:
站点压力测试的相关工具有很多,这里主要介绍 siege,首先我们需要去官网下载源码包进行编译安装,具体如下:
(1)下载安装,需要安装 gcc 包,以下以 CentOS7 为例进行安装使用的讲解
yum -y install gcc openssl openssl-devel
wget -c http://download.joedog.org/siege/siege-3.1.4.tar.gz
tar zxvf siege-3.1.4.tar.gz
cd siege-3.1.4
./configure –prefix=/usr/local/siege –with-ssl=/usr/include/openssl/
make && make install
编译的时候增加 OpenSSL 可以对 HTTPS 站点进行压测,我们为了测试方便可以设置以下环境变量
echo “PATH=$PATH:/usr/local/siege/bin” >> /etc/bashrc
source /etc/bashrc
(2)参数
常用的参数:
-c 200 并发200个用户
-r 150 重复循环150次
-f file 任务的URL列表
其它实用参数:
-i 随机 URL ,默认是从列表的上面到下面来打压力
-b 进行压力测试,不进行延时
-t 持续时间,即测试持续时间,在NUM时间后结束,单位默认为分
(3)压测案例:
测试1:指定列表
siege -c 200 -r 10 -f /opt/url.txt -b -i
结果
HTTP/1.1 200 0.30 secs: 9604 bytes ==> GET /post/48192.html
HTTP/1.1 200 0.29 secs: 9604 bytes ==> GET /post/48192.html
HTTP/1.1 200 0.29 secs: 9604 bytes ==> GET /post/48192.html
HTTP/1.1 200 0.29 secs: 9604 bytes ==> GET /post/48192.html
done.
以下是针对本次压测的输出信息,包含了例如:响应时间,请求的大小,成功传输的次数,失败次数,最长的一次请求时间,最短的一次请求时间等等内容,可以根据相关数据进行分析。
Transactions: 2000 hits
Availability: 100.00 %
Elapsed time: 24.26 secs
Data transferred: 18.32 MB
Response time: 2.28 secs
Transaction rate: 82.44 trans/sec
Throughput: 0.76 MB/sec
Concurrency: 187.81
Successful transactions: 2000
Failed transactions: 0
Longest transaction: 7.41
Shortest transaction: 0.26
LOG FILE: /usr/local/siege/var/siege.log
You can disable this log file notification by editing
/root/.siege/siege.conf and changing ‘show-logfile’ to false.
测试2:直接给定 URL,如下:
siege -c 200 -r 10 -b https://www.163.com