linux 压测 cpu,Linux 云服务器压测

  • Post author:
  • Post category:linux


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