CentOS上安装Web性能测试工具Siege & 示例
CentOS上安装Web性能测试工具Siege & 示例
王孟君 发表于6个月前
CentOS上安装Web性能测试工具Siege & 示例
  • 发表于 6个月前
  • 阅读 466
  • 收藏 42
  • 点赞 0
  • 评论 3

腾讯云 技术升级10大核心产品年终让利>>>   

本文记录一次在CentOS上安装Web性能测试工具Siege的步骤,并对安装过程中遇到的问题进行解决~

Siege是什么?

Siege是一个压力测试和评测工具,设计用于WEB开发这评估应用在压力下的承受能力:可以根据配置对一个WEB站点进行多用户的并发访问,记录每个用户所有请求过程的相应时间,并在一定数量的并发访问下重复进行。

官网【https://www.joedog.org/

安装Siege

下载Siege安装包

可以访问【http://download.joedog.org/siege/】下载Siege安装包,本文下载的是siege-4.0.2.tar.gz

使用wget下载安装包~

wget http://download.joedog.org/siege/siege-4.0.2.tar.gz

如:

[root@test03 srv]# wget http://download.joedog.org/siege/siege-4.0.2.tar.gz
--2017-06-02 17:30:09--  http://download.joedog.org/siege/siege-4.0.2.tar.gz
Resolving download.joedog.org... 52.24.24.107
Connecting to download.joedog.org|52.24.24.107|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 521228 (509K) [application/x-gzip]
Saving to: “siege-4.0.2.tar.gz”

100%[====================================================================================================================================================================================================================================>] 521,228      387K/s   in 1.3s    

2017-06-02 17:30:12 (387 KB/s) - “siege-4.0.2.tar.gz” saved [521228/521228]

[root@test03 srv]# 

解压

将下载好的siege安装包解开~

tar -zvxf siege-4.0.2.tar.gz 

如,

[root@test03 srv]# tar -zvxf siege-4.0.2.tar.gz 
siege-4.0.2/
siege-4.0.2/src/
siege-4.0.2/src/timer.h
siege-4.0.2/src/handler.c
siege-4.0.2/src/browser.c
siege-4.0.2/src/handler.h
siege-4.0.2/src/base64.h
siege-4.0.2/src/cookie.h
siege-4.0.2/src/timer.c
siege-4.0.2/src/main.c
siege-4.0.2/src/init.c
siege-4.0.2/src/util.c
siege-4.0.2/src/auth.h
siege-4.0.2/src/cookies.h
siege-4.0.2/src/data.h
siege-4.0.2/src/stralloc.c
siege-4.0.2/src/creds.c
siege-4.0.2/src/page.c
siege-4.0.2/src/cache.c
siege-4.0.2/src/data.c
siege-4.0.2/src/perl.h
siege-4.0.2/src/cookies.c
siege-4.0.2/src/http.c
siege-4.0.2/src/hash.c
siege-4.0.2/src/util.h
siege-4.0.2/src/response.h
siege-4.0.2/src/response.c
siege-4.0.2/src/stralloc.h
siege-4.0.2/src/ssl.c
siege-4.0.2/src/ftp.c
siege-4.0.2/src/date.h
siege-4.0.2/src/hash.h
siege-4.0.2/src/init.h
siege-4.0.2/src/page.h
siege-4.0.2/src/url.h
siege-4.0.2/src/date.c
siege-4.0.2/src/notify.h
siege-4.0.2/src/parser.c
siege-4.0.2/src/load.h
siege-4.0.2/src/load.c
siege-4.0.2/src/http.h
siege-4.0.2/src/ansidecl.h
siege-4.0.2/src/md5.c
siege-4.0.2/src/ssl.h
siege-4.0.2/src/memory.h
siege-4.0.2/src/array.c
siege-4.0.2/src/browser.h
siege-4.0.2/src/getopt.c
siege-4.0.2/src/version.c
siege-4.0.2/src/array.h
siege-4.0.2/src/Makefile.in
siege-4.0.2/src/eval.c
siege-4.0.2/src/parser.h
siege-4.0.2/src/setup.h
siege-4.0.2/src/log.h
siege-4.0.2/src/cache.h
siege-4.0.2/src/crew.c
siege-4.0.2/src/creds.h
siege-4.0.2/src/log.c
siege-4.0.2/src/sock.c
siege-4.0.2/src/memory.c
siege-4.0.2/src/crew.h
siege-4.0.2/src/version.h
siege-4.0.2/src/ftp.h
siege-4.0.2/src/cfg.c
siege-4.0.2/src/url.c
siege-4.0.2/src/eval.h
siege-4.0.2/src/md5.h
siege-4.0.2/src/perl.c
siege-4.0.2/src/Makefile.am
siege-4.0.2/src/sock.h
siege-4.0.2/src/cfg.h
siege-4.0.2/src/getopt1.c
siege-4.0.2/src/auth.c
siege-4.0.2/src/notify.c
siege-4.0.2/src/base64.c
siege-4.0.2/src/cookie.c
siege-4.0.2/COPYING
siege-4.0.2/utils/
siege-4.0.2/utils/compile
siege-4.0.2/utils/config.guess
siege-4.0.2/utils/install-sh
siege-4.0.2/utils/config.sub
siege-4.0.2/utils/bombardment.in
siege-4.0.2/utils/ltmain.sh
siege-4.0.2/utils/siege2csv.in
siege-4.0.2/utils/bootstrap
siege-4.0.2/utils/missing
siege-4.0.2/utils/mkstamp
siege-4.0.2/utils/Makefile.in
siege-4.0.2/utils/siege.config.in
siege-4.0.2/utils/Makefile.am
siege-4.0.2/utils/mkinstalldirs
siege-4.0.2/utils/mdate-sh
siege-4.0.2/doc/
siege-4.0.2/doc/siege2csv.1.in
siege-4.0.2/doc/urls.txt
siege-4.0.2/doc/Makefile.in
siege-4.0.2/doc/siege.config.1.in
siege-4.0.2/doc/siege2csv.pod
siege-4.0.2/doc/bombardment.pod
siege-4.0.2/doc/siege.pod
siege-4.0.2/doc/bombardment.1.in
siege-4.0.2/doc/siege.config.pod
siege-4.0.2/doc/siege.1.in
siege-4.0.2/doc/Makefile.am
siege-4.0.2/doc/siegerc.in
siege-4.0.2/INSTALL
siege-4.0.2/include/
siege-4.0.2/include/joedog/
siege-4.0.2/include/joedog/path.h
siege-4.0.2/include/joedog/getopt.h
siege-4.0.2/include/joedog/Makefile.in
siege-4.0.2/include/joedog/defs.h
siege-4.0.2/include/joedog/boolean.h
siege-4.0.2/include/joedog/Makefile.am
siege-4.0.2/include/config.h.in
siege-4.0.2/include/Makefile.in
siege-4.0.2/include/Makefile.am
siege-4.0.2/README.md
siege-4.0.2/install-sh
siege-4.0.2/configure.ac
siege-4.0.2/aclocal.m4
siege-4.0.2/acinclude.m4
siege-4.0.2/ChangeLog
siege-4.0.2/Makefile.in
siege-4.0.2/html/
siege-4.0.2/html/basic.php
siege-4.0.2/html/README
siege-4.0.2/html/etag.php
siege-4.0.2/html/cookie-expire.php
siege-4.0.2/html/cache-control.php
siege-4.0.2/html/Makefile.in
siege-4.0.2/html/login.php
siege-4.0.2/html/Makefile.am
siege-4.0.2/configure
siege-4.0.2/Makefile.am
siege-4.0.2/acspecific.m4
siege-4.0.2/AUTHORS
[root@test03 srv]# 

configure

进入解压缩后siege目录,执行./configure

[root@test03 srv]# cd siege-4.0.2
[root@test03 siege-4.0.2]# ./configure
checking for a BSD-compatible install... /usr/bin/install -c
checking whether build environment is sane... yes
checking for a thread-safe mkdir -p... /bin/mkdir -p
checking for gawk... gawk
checking whether make sets $(MAKE)... yes
checking build system type... x86_64-unknown-linux-gnu
checking host system type... x86_64-unknown-linux-gnu
checking for style of include used by make... GNU
checking for gcc... no
checking for cc... no
checking for cl.exe... no
configure: error: in `/srv/siege-4.0.2':
configure: error: no acceptable C compiler found in $PATH
See `config.log' for more details
[root@test03 siege-4.0.2]# 

报错了~

configure: error: no acceptable C compiler found in $PATH

解决方法

安装gcc即可~

安装gcc

yum install gcc

[root@test03 siege-4.0.2]# yum install gcc
Loaded plugins: fastestmirror
Setting up Install Process
Loading mirror speeds from cached hostfile
ISO                                                                                                                                                                                                                                                    | 3.7 kB     00:00     
Resolving Dependencies
--> Running transaction check
---> Package gcc.x86_64 0:4.4.7-18.el6 will be installed
--> Processing Dependency: libgomp = 4.4.7-18.el6 for package: gcc-4.4.7-18.el6.x86_64
--> Processing Dependency: cpp = 4.4.7-18.el6 for package: gcc-4.4.7-18.el6.x86_64
--> Processing Dependency: glibc-devel >= 2.2.90-12 for package: gcc-4.4.7-18.el6.x86_64
--> Processing Dependency: cloog-ppl >= 0.15 for package: gcc-4.4.7-18.el6.x86_64
--> Processing Dependency: libgomp.so.1()(64bit) for package: gcc-4.4.7-18.el6.x86_64
--> Running transaction check
---> Package cloog-ppl.x86_64 0:0.15.7-1.2.el6 will be installed
--> Processing Dependency: libppl_c.so.2()(64bit) for package: cloog-ppl-0.15.7-1.2.el6.x86_64
--> Processing Dependency: libppl.so.7()(64bit) for package: cloog-ppl-0.15.7-1.2.el6.x86_64
---> Package cpp.x86_64 0:4.4.7-18.el6 will be installed
--> Processing Dependency: libmpfr.so.1()(64bit) for package: cpp-4.4.7-18.el6.x86_64
---> Package glibc-devel.x86_64 0:2.12-1.209.el6 will be installed
--> Processing Dependency: glibc-headers = 2.12-1.209.el6 for package: glibc-devel-2.12-1.209.el6.x86_64
--> Processing Dependency: glibc-headers for package: glibc-devel-2.12-1.209.el6.x86_64
---> Package libgomp.x86_64 0:4.4.7-18.el6 will be installed
--> Running transaction check
---> Package glibc-headers.x86_64 0:2.12-1.209.el6 will be installed
--> Processing Dependency: kernel-headers >= 2.2.1 for package: glibc-headers-2.12-1.209.el6.x86_64
--> Processing Dependency: kernel-headers for package: glibc-headers-2.12-1.209.el6.x86_64
---> Package mpfr.x86_64 0:2.4.1-6.el6 will be installed
---> Package ppl.x86_64 0:0.10.2-11.el6 will be installed
--> Running transaction check
---> Package kernel-headers.x86_64 0:2.6.32-696.el6 will be installed
--> Finished Dependency Resolution

Dependencies Resolved

==============================================================================================================================================================================================================================================================================
 Package                                                               Arch                                                          Version                                                                 Repository                                                  Size
==============================================================================================================================================================================================================================================================================
Installing:
 gcc                                                                   x86_64                                                        4.4.7-18.el6                                                            ISO                                                         10 M
Installing for dependencies:
 cloog-ppl                                                             x86_64                                                        0.15.7-1.2.el6                                                          ISO                                                         93 k
 cpp                                                                   x86_64                                                        4.4.7-18.el6                                                            ISO                                                        3.7 M
 glibc-devel                                                           x86_64                                                        2.12-1.209.el6                                                          ISO                                                        990 k
 glibc-headers                                                         x86_64                                                        2.12-1.209.el6                                                          ISO                                                        619 k
 kernel-headers                                                        x86_64                                                        2.6.32-696.el6                                                          ISO                                                        4.5 M
 libgomp                                                               x86_64                                                        4.4.7-18.el6                                                            ISO                                                        134 k
 mpfr                                                                  x86_64                                                        2.4.1-6.el6                                                             ISO                                                        157 k
 ppl                                                                   x86_64                                                        0.10.2-11.el6                                                           ISO                                                        1.3 M

Transaction Summary
==============================================================================================================================================================================================================================================================================
Install       9 Package(s)

Total download size: 22 M
Installed size: 39 M
Is this ok [y/N]: 

选择y

Is this ok [y/N]: y
Downloading Packages:
(1/9): cloog-ppl-0.15.7-1.2.el6.x86_64.rpm                                                                                                                                                                                                             |  93 kB     00:00     
(2/9): cpp-4.4.7-18.el6.x86_64.rpm                                                                                                                                                                                                                     | 3.7 MB     00:00     
(3/9): gcc-4.4.7-18.el6.x86_64.rpm                                                                                                                                                                                                                     |  10 MB     00:00     
(4/9): glibc-devel-2.12-1.209.el6.x86_64.rpm                                                                                                                                                                                                           | 990 kB     00:00     
(5/9): glibc-headers-2.12-1.209.el6.x86_64.rpm                                                                                                                                                                                                         | 619 kB     00:00     
(6/9): kernel-headers-2.6.32-696.el6.x86_64.rpm                                                                                                                                                                                                        | 4.5 MB     00:00     
(7/9): libgomp-4.4.7-18.el6.x86_64.rpm                                                                                                                                                                                                                 | 134 kB     00:00     
(8/9): mpfr-2.4.1-6.el6.x86_64.rpm                                                                                                                                                                                                                     | 157 kB     00:00     
(9/9): ppl-0.10.2-11.el6.x86_64.rpm                                                                                                                                                                                                                    | 1.3 MB     00:00     
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Total                                                                                                                                                                                                                                          24 MB/s |  22 MB     00:00     
Running rpm_check_debug
Running Transaction Test
Transaction Test Succeeded
Running Transaction
  Installing : ppl-0.10.2-11.el6.x86_64                                                                                                                                                                                                                                   1/9 
  Installing : cloog-ppl-0.15.7-1.2.el6.x86_64                                                                                                                                                                                                                            2/9 
  Installing : mpfr-2.4.1-6.el6.x86_64                                                                                                                                                                                                                                    3/9 
  Installing : cpp-4.4.7-18.el6.x86_64                                                                                                                                                                                                                                    4/9 
  Installing : libgomp-4.4.7-18.el6.x86_64                                                                                                                                                                                                                                5/9 
  Installing : kernel-headers-2.6.32-696.el6.x86_64                                                                                                                                                                                                                       6/9 
  Installing : glibc-headers-2.12-1.209.el6.x86_64                                                                                                                                                                                                                        7/9 
  Installing : glibc-devel-2.12-1.209.el6.x86_64                                                                                                                                                                                                                          8/9 
  Installing : gcc-4.4.7-18.el6.x86_64                                                                                                                                                                                                                                    9/9 
  Verifying  : kernel-headers-2.6.32-696.el6.x86_64                                                                                                                                                                                                                       1/9 
  Verifying  : cpp-4.4.7-18.el6.x86_64                                                                                                                                                                                                                                    2/9 
  Verifying  : glibc-headers-2.12-1.209.el6.x86_64                                                                                                                                                                                                                        3/9 
  Verifying  : libgomp-4.4.7-18.el6.x86_64                                                                                                                                                                                                                                4/9 
  Verifying  : mpfr-2.4.1-6.el6.x86_64                                                                                                                                                                                                                                    5/9 
  Verifying  : glibc-devel-2.12-1.209.el6.x86_64                                                                                                                                                                                                                          6/9 
  Verifying  : gcc-4.4.7-18.el6.x86_64                                                                                                                                                                                                                                    7/9 
  Verifying  : ppl-0.10.2-11.el6.x86_64                                                                                                                                                                                                                                   8/9 
  Verifying  : cloog-ppl-0.15.7-1.2.el6.x86_64                                                                                                                                                                                                                            9/9 

Installed:
  gcc.x86_64 0:4.4.7-18.el6                                                                                                                                                                                                                                                   

Dependency Installed:
  cloog-ppl.x86_64 0:0.15.7-1.2.el6  cpp.x86_64 0:4.4.7-18.el6  glibc-devel.x86_64 0:2.12-1.209.el6  glibc-headers.x86_64 0:2.12-1.209.el6  kernel-headers.x86_64 0:2.6.32-696.el6  libgomp.x86_64 0:4.4.7-18.el6  mpfr.x86_64 0:2.4.1-6.el6  ppl.x86_64 0:0.10.2-11.el6 

Complete!
[root@test03 siege-4.0.2]# 

再次执行./confgiure

[root@test03 siege-4.0.2]# ./configure
checking for a BSD-compatible install... /usr/bin/install -c
checking whether build environment is sane... yes
checking for a thread-safe mkdir -p... /bin/mkdir -p
checking for gawk... gawk
checking whether make sets $(MAKE)... yes
checking build system type... x86_64-unknown-linux-gnu
checking host system type... x86_64-unknown-linux-gnu
checking for style of include used by make... GNU
checking for gcc... gcc
checking whether the C compiler works... yes
checking for C compiler default output file name... a.out
checking for suffix of executables... 
checking whether we are cross compiling... no
checking for suffix of object files... o
checking whether we are using the GNU C compiler... yes
checking whether gcc accepts -g... yes
checking for gcc option to accept ISO C89... none needed
checking dependency style of gcc... none
checking how to run the C preprocessor... gcc -E
checking for grep that handles long lines and -e... /bin/grep
checking for egrep... /bin/grep -E
checking for ANSI C header files... yes
checking for sys/types.h... yes
checking for sys/stat.h... yes
checking for stdlib.h... yes
checking for string.h... yes
checking for memory.h... yes
checking for strings.h... yes
checking for inttypes.h... yes
checking for stdint.h... yes
checking for unistd.h... yes
checking minix/config.h usability... no
checking minix/config.h presence... no
checking for minix/config.h... no
checking whether it is safe to define __EXTENSIONS__... yes
checking for gcc... (cached) gcc
checking whether we are using the GNU C compiler... (cached) yes
checking whether gcc accepts -g... (cached) yes
checking for gcc option to accept ISO C89... (cached) none needed
checking dependency style of gcc... (cached) none
checking for a sed that does not truncate output... /bin/sed
checking for ld used by gcc... /usr/bin/ld
checking if the linker (/usr/bin/ld) is GNU ld... yes
checking for /usr/bin/ld option to reload object files... -r
checking for BSD-compatible nm... /usr/bin/nm -B
checking whether ln -s works... yes
checking how to recognise dependent libraries... pass_all
checking dlfcn.h usability... yes
checking dlfcn.h presence... yes
checking for dlfcn.h... yes
checking for g++... no
checking for c++... no
checking for gpp... no
checking for aCC... no
checking for CC... no
checking for cxx... no
checking for cc++... no
checking for cl.exe... no
checking for FCC... no
checking for KCC... no
checking for RCC... no
checking for xlC_r... no
checking for xlC... no
checking whether we are using the GNU C++ compiler... no
checking whether g++ accepts -g... no
checking dependency style of g++... none
checking for g77... no
checking for xlf... no
checking for f77... no
checking for frt... no
checking for pgf77... no
checking for cf77... no
checking for fort77... no
checking for fl32... no
checking for af77... no
checking for xlf90... no
checking for f90... no
checking for pgf90... no
checking for pghpf... no
checking for epcf90... no
checking for gfortran... no
checking for g95... no
checking for xlf95... no
checking for f95... no
checking for fort... no
checking for ifort... no
checking for ifc... no
checking for efc... no
checking for pgfortran... no
checking for pgf95... no
checking for lf95... no
checking for ftn... no
checking whether we are using the GNU Fortran 77 compiler... no
checking whether  accepts -g... no
checking the maximum length of command line arguments... 32768
checking command to parse /usr/bin/nm -B output from gcc object... ok
checking for objdir... .libs
checking for ar... ar
checking for ranlib... ranlib
checking for strip... strip
checking if gcc supports -fno-rtti -fno-exceptions... no
checking for gcc option to produce PIC... -fPIC
checking if gcc PIC flag -fPIC works... yes
checking if gcc static flag -static works... no
checking if gcc supports -c -o file.o... yes
checking whether the gcc linker (/usr/bin/ld -m elf_x86_64) supports shared libraries... yes
checking whether -lc should be explicitly linked in... no
checking dynamic linker characteristics... GNU/Linux ld.so
checking how to hardcode library paths into programs... immediate
checking whether stripping libraries is possible... yes
checking if libtool supports shared libraries... yes
checking whether to build shared libraries... yes
checking whether to build static libraries... yes
configure: creating libtool
appending configuration tag "CXX" to libtool
appending configuration tag "F77" to libtool
checking for perl... /usr/bin/perl
checking for a POSIX-compliant shell... /bin/sh
checking whether make sets $(MAKE)... (cached) yes
checking for buggy pthread mutex initializers... no
checking for dlopen() in -ldld... no
checking for dlopen() in -ldl... yes
checking for random device... yes
checking for ssl support... yes
checking /include/openssl/opensslv.h usability... no
checking /include/openssl/opensslv.h presence... no
checking for /include/openssl/opensslv.h... no
checking /usr/include/openssl/opensslv.h usability... no
checking /usr/include/openssl/opensslv.h presence... no
checking for /usr/include/openssl/opensslv.h... no
checking /usr/local/include/openssl/opensslv.h usability... no
checking /usr/local/include/openssl/opensslv.h presence... no
checking for /usr/local/include/openssl/opensslv.h... no
checking /usr/local/ssl/include/openssl/opensslv.h usability... no
checking /usr/local/ssl/include/openssl/opensslv.h presence... no
checking for /usr/local/ssl/include/openssl/opensslv.h... no
checking /usr/pkg/include/openssl/opensslv.h usability... no
checking /usr/pkg/include/openssl/opensslv.h presence... no
checking for /usr/pkg/include/openssl/opensslv.h... no
checking /usr/lib/ssl/include/openssl/opensslv.h usability... no
checking /usr/lib/ssl/include/openssl/opensslv.h presence... no
checking for /usr/lib/ssl/include/openssl/opensslv.h... no
checking /usr/include/ssl/include/openssl/opensslv.h usability... no
checking /usr/include/ssl/include/openssl/opensslv.h presence... no
checking for /usr/include/ssl/include/openssl/opensslv.h... no
checking /usr/include/include/openssl/opensslv.h usability... no
checking /usr/include/include/openssl/opensslv.h presence... no
checking for /usr/include/include/openssl/opensslv.h... no
checking for zlib support... yes
checking /include/zlib.h usability... no
checking /include/zlib.h presence... no
checking for /include/zlib.h... no
checking /usr/include/zlib.h usability... no
checking /usr/include/zlib.h presence... no
checking for /usr/include/zlib.h... no
checking /usr/local/include/zlib.h usability... no
checking /usr/local/include/zlib.h presence... no
checking for /usr/local/include/zlib.h... no
checking /usr/local/ssl/include/zlib.h usability... no
checking /usr/local/ssl/include/zlib.h presence... no
checking for /usr/local/ssl/include/zlib.h... no
checking /usr/pkg/include/zlib.h usability... no
checking /usr/pkg/include/zlib.h presence... no
checking for /usr/pkg/include/zlib.h... no
checking /usr/lib/zlib/include/zlib.h usability... no
checking /usr/lib/zlib/include/zlib.h presence... no
checking for /usr/lib/zlib/include/zlib.h... no
checking /usr/include/zlib/include/zlib.h usability... no
checking /usr/include/zlib/include/zlib.h presence... no
checking for /usr/include/zlib/include/zlib.h... no
checking /usr/include/include/zlib.h usability... no
checking /usr/include/include/zlib.h presence... no
checking for /usr/include/include/zlib.h... no
checking for inline... inline
checking for int8_t... yes
checking for int16_t... yes
checking for int32_t... yes
checking for int64_t... yes
checking for uint8_t... yes
checking for uint16_t... yes
checking for uint32_t... yes
checking for uint64_t... yes
checking for u_int32_t... yes
checking for ssize_t... yes
checking for ANSI C header files... (cached) yes
checking for sys/wait.h that is POSIX.1 compatible... yes
checking fcntl.h usability... yes
checking fcntl.h presence... yes
checking for fcntl.h... yes
checking limits.h usability... yes
checking limits.h presence... yes
checking for limits.h... yes
checking for unistd.h... (cached) yes
checking signal.h usability... yes
checking signal.h presence... yes
checking for signal.h... yes
checking sys/socket.h usability... yes
checking sys/socket.h presence... yes
checking for sys/socket.h... yes
checking sys/select.h usability... yes
checking sys/select.h presence... yes
checking for sys/select.h... yes
checking for sys/types.h... (cached) yes
checking sys/time.h usability... yes
checking sys/time.h presence... yes
checking for sys/time.h... yes
checking sys/times.h usability... yes
checking sys/times.h presence... yes
checking for sys/times.h... yes
checking sys/resource.h usability... yes
checking sys/resource.h presence... yes
checking for sys/resource.h... yes
checking errno.h usability... yes
checking errno.h presence... yes
checking for errno.h... yes
checking arpa/inet.h usability... yes
checking arpa/inet.h presence... yes
checking for arpa/inet.h... yes
checking netinet/in.h usability... yes
checking netinet/in.h presence... yes
checking for netinet/in.h... yes
checking netdb.h usability... yes
checking netdb.h presence... yes
checking for netdb.h... yes
checking pthread.h usability... yes
checking pthread.h presence... yes
checking for pthread.h... yes
checking for string.h... (cached) yes
checking for strings.h... (cached) yes
checking sched.h usability... yes
checking sched.h presence... yes
checking for sched.h... yes
checking openssl/e_os.h usability... no
checking openssl/e_os.h presence... no
checking for openssl/e_os.h... no
checking openssl/e_os2.h usability... no
checking openssl/e_os2.h presence... no
checking for openssl/e_os2.h... no
checking for an ANSI C-conforming const... yes
checking for size_t... yes
checking whether time.h and sys/time.h may both be included... yes
checking return type of signal handlers... void
checking for working alloca.h... yes
checking for alloca... yes
checking for strchr... yes
checking for memcpy... yes
checking for strncpy... yes
checking for strstr... yes
checking for strlen... yes
checking for strncasecmp... yes
checking for strncmp... yes
checking for socket... yes
checking for gethostbyname... yes
checking for snprintf... yes
checking for strdup... yes
checking for rand_r... yes
checking for localtime_r... yes
checking for gmtime_r... yes
checking for getipnodebyname... no
checking for freehostent... no
checking for getopt_long... yes
checking for poll... yes
checking for socket in -lsocket... no
checking for pthread_attr_init in -lpthread... yes
checking that generated files are newer than configure... done
configure: creating ./config.status
config.status: creating Makefile
config.status: creating src/Makefile
config.status: creating doc/Makefile
config.status: creating html/Makefile
config.status: creating include/Makefile
config.status: creating include/joedog/Makefile
config.status: creating utils/Makefile
config.status: creating include/config.h
config.status: executing depfiles commands
config.status: executing default-1 commands
config.status: executing default-2 commands
config.status: executing default-3 commands
config.status: executing default-4 commands
config.status: executing default-5 commands
config.status: executing default-6 commands

--------------------------------------------------------
Configuration is complete

Run the following commands to complete the installation:
  make 
  make install

For complete documentation:        http://www.joedog.org
--------------------------------------------------------
[root@test03 siege-4.0.2]# 

make

然后执行make 

[root@test03 siege-4.0.2]# make
Making all in .
make[1]: Entering directory `/srv/siege-4.0.2'
make[1]: Nothing to be done for `all-am'.
make[1]: Leaving directory `/srv/siege-4.0.2'
Making all in include
make[1]: Entering directory `/srv/siege-4.0.2/include'
make  all-recursive
make[2]: Entering directory `/srv/siege-4.0.2/include'
Making all in joedog
make[3]: Entering directory `/srv/siege-4.0.2/include/joedog'
make[3]: Nothing to be done for `all'.
make[3]: Leaving directory `/srv/siege-4.0.2/include/joedog'
make[3]: Entering directory `/srv/siege-4.0.2/include'
make[3]: Leaving directory `/srv/siege-4.0.2/include'
make[2]: Leaving directory `/srv/siege-4.0.2/include'
make[1]: Leaving directory `/srv/siege-4.0.2/include'
Making all in src
make[1]: Entering directory `/srv/siege-4.0.2/src'
gcc -DHAVE_CONFIG_H -I. -I../include      -D_REENTRANT -D_POSIX_PTHREAD_SEMANTICS -W -Wall -Wunused-value   -g -O2 -c array.c
gcc -DHAVE_CONFIG_H -I. -I../include      -D_REENTRANT -D_POSIX_PTHREAD_SEMANTICS -W -Wall -Wunused-value   -g -O2 -c auth.c
gcc -DHAVE_CONFIG_H -I. -I../include      -D_REENTRANT -D_POSIX_PTHREAD_SEMANTICS -W -Wall -Wunused-value   -g -O2 -c base64.c
gcc -DHAVE_CONFIG_H -I. -I../include      -D_REENTRANT -D_POSIX_PTHREAD_SEMANTICS -W -Wall -Wunused-value   -g -O2 -c browser.c
gcc -DHAVE_CONFIG_H -I. -I../include      -D_REENTRANT -D_POSIX_PTHREAD_SEMANTICS -W -Wall -Wunused-value   -g -O2 -c cache.c
gcc -DHAVE_CONFIG_H -I. -I../include      -D_REENTRANT -D_POSIX_PTHREAD_SEMANTICS -W -Wall -Wunused-value   -g -O2 -c cookie.c
gcc -DHAVE_CONFIG_H -I. -I../include      -D_REENTRANT -D_POSIX_PTHREAD_SEMANTICS -W -Wall -Wunused-value   -g -O2 -c cookies.c
gcc -DHAVE_CONFIG_H -I. -I../include      -D_REENTRANT -D_POSIX_PTHREAD_SEMANTICS -W -Wall -Wunused-value   -g -O2 -c cfg.c
gcc -DHAVE_CONFIG_H -I. -I../include      -D_REENTRANT -D_POSIX_PTHREAD_SEMANTICS -W -Wall -Wunused-value   -g -O2 -c creds.c
gcc -DHAVE_CONFIG_H -I. -I../include      -D_REENTRANT -D_POSIX_PTHREAD_SEMANTICS -W -Wall -Wunused-value   -g -O2 -c crew.c
gcc -DHAVE_CONFIG_H -I. -I../include      -D_REENTRANT -D_POSIX_PTHREAD_SEMANTICS -W -Wall -Wunused-value   -g -O2 -c data.c
gcc -DHAVE_CONFIG_H -I. -I../include      -D_REENTRANT -D_POSIX_PTHREAD_SEMANTICS -W -Wall -Wunused-value   -g -O2 -c date.c
gcc -DHAVE_CONFIG_H -I. -I../include      -D_REENTRANT -D_POSIX_PTHREAD_SEMANTICS -W -Wall -Wunused-value   -g -O2 -c eval.c
gcc -DHAVE_CONFIG_H -I. -I../include      -D_REENTRANT -D_POSIX_PTHREAD_SEMANTICS -W -Wall -Wunused-value   -g -O2 -c ftp.c
gcc -DHAVE_CONFIG_H -I. -I../include      -D_REENTRANT -D_POSIX_PTHREAD_SEMANTICS -W -Wall -Wunused-value   -g -O2 -c getopt.c
gcc -DHAVE_CONFIG_H -I. -I../include      -D_REENTRANT -D_POSIX_PTHREAD_SEMANTICS -W -Wall -Wunused-value   -g -O2 -c getopt1.c
gcc -DHAVE_CONFIG_H -I. -I../include      -D_REENTRANT -D_POSIX_PTHREAD_SEMANTICS -W -Wall -Wunused-value   -g -O2 -c handler.c
gcc -DHAVE_CONFIG_H -I. -I../include      -D_REENTRANT -D_POSIX_PTHREAD_SEMANTICS -W -Wall -Wunused-value   -g -O2 -c hash.c
gcc -DHAVE_CONFIG_H -I. -I../include      -D_REENTRANT -D_POSIX_PTHREAD_SEMANTICS -W -Wall -Wunused-value   -g -O2 -c http.c
gcc -DHAVE_CONFIG_H -I. -I../include      -D_REENTRANT -D_POSIX_PTHREAD_SEMANTICS -W -Wall -Wunused-value   -g -O2 -c init.c
gcc -DHAVE_CONFIG_H -I. -I../include      -D_REENTRANT -D_POSIX_PTHREAD_SEMANTICS -W -Wall -Wunused-value   -g -O2 -c load.c
gcc -DHAVE_CONFIG_H -I. -I../include      -D_REENTRANT -D_POSIX_PTHREAD_SEMANTICS -W -Wall -Wunused-value   -g -O2 -c log.c
gcc -DHAVE_CONFIG_H -I. -I../include      -D_REENTRANT -D_POSIX_PTHREAD_SEMANTICS -W -Wall -Wunused-value   -g -O2 -c main.c
gcc -DHAVE_CONFIG_H -I. -I../include      -D_REENTRANT -D_POSIX_PTHREAD_SEMANTICS -W -Wall -Wunused-value   -g -O2 -c md5.c
gcc -DHAVE_CONFIG_H -I. -I../include      -D_REENTRANT -D_POSIX_PTHREAD_SEMANTICS -W -Wall -Wunused-value   -g -O2 -c memory.c
gcc -DHAVE_CONFIG_H -I. -I../include      -D_REENTRANT -D_POSIX_PTHREAD_SEMANTICS -W -Wall -Wunused-value   -g -O2 -c notify.c
gcc -DHAVE_CONFIG_H -I. -I../include      -D_REENTRANT -D_POSIX_PTHREAD_SEMANTICS -W -Wall -Wunused-value   -g -O2 -c page.c
gcc -DHAVE_CONFIG_H -I. -I../include      -D_REENTRANT -D_POSIX_PTHREAD_SEMANTICS -W -Wall -Wunused-value   -g -O2 -c parser.c
gcc -DHAVE_CONFIG_H -I. -I../include      -D_REENTRANT -D_POSIX_PTHREAD_SEMANTICS -W -Wall -Wunused-value   -g -O2 -c perl.c
gcc -DHAVE_CONFIG_H -I. -I../include      -D_REENTRANT -D_POSIX_PTHREAD_SEMANTICS -W -Wall -Wunused-value   -g -O2 -c response.c
gcc -DHAVE_CONFIG_H -I. -I../include      -D_REENTRANT -D_POSIX_PTHREAD_SEMANTICS -W -Wall -Wunused-value   -g -O2 -c sock.c
gcc -DHAVE_CONFIG_H -I. -I../include      -D_REENTRANT -D_POSIX_PTHREAD_SEMANTICS -W -Wall -Wunused-value   -g -O2 -c ssl.c
gcc -DHAVE_CONFIG_H -I. -I../include      -D_REENTRANT -D_POSIX_PTHREAD_SEMANTICS -W -Wall -Wunused-value   -g -O2 -c stralloc.c
gcc -DHAVE_CONFIG_H -I. -I../include      -D_REENTRANT -D_POSIX_PTHREAD_SEMANTICS -W -Wall -Wunused-value   -g -O2 -c timer.c
gcc -DHAVE_CONFIG_H -I. -I../include      -D_REENTRANT -D_POSIX_PTHREAD_SEMANTICS -W -Wall -Wunused-value   -g -O2 -c url.c
gcc -DHAVE_CONFIG_H -I. -I../include      -D_REENTRANT -D_POSIX_PTHREAD_SEMANTICS -W -Wall -Wunused-value   -g -O2 -c util.c
gcc -DHAVE_CONFIG_H -I. -I../include      -D_REENTRANT -D_POSIX_PTHREAD_SEMANTICS -W -Wall -Wunused-value   -g -O2 -c version.c
/bin/sh ../libtool --tag=CC   --mode=link gcc   -D_REENTRANT -D_POSIX_PTHREAD_SEMANTICS -W -Wall -Wunused-value   -g -O2   -lpthread    -o siege array.o auth.o base64.o browser.o cache.o cookie.o cookies.o cfg.o creds.o crew.o data.o date.o eval.o ftp.o getopt.o getopt1.o handler.o hash.o http.o init.o load.o log.o main.o md5.o memory.o notify.o page.o parser.o perl.o response.o sock.o ssl.o stralloc.o timer.o url.o util.o version.o   
mkdir .libs
gcc -D_REENTRANT -D_POSIX_PTHREAD_SEMANTICS -W -Wall -Wunused-value -g -O2 -o siege array.o auth.o base64.o browser.o cache.o cookie.o cookies.o cfg.o creds.o crew.o data.o date.o eval.o ftp.o getopt.o getopt1.o handler.o hash.o http.o init.o load.o log.o main.o md5.o memory.o notify.o page.o parser.o perl.o response.o sock.o ssl.o stralloc.o timer.o url.o util.o version.o  -lpthread  
make[1]: Leaving directory `/srv/siege-4.0.2/src'
Making all in utils
make[1]: Entering directory `/srv/siege-4.0.2/utils'
make[1]: Nothing to be done for `all'.
make[1]: Leaving directory `/srv/siege-4.0.2/utils'
Making all in doc
make[1]: Entering directory `/srv/siege-4.0.2/doc'
make[1]: Nothing to be done for `all'.
make[1]: Leaving directory `/srv/siege-4.0.2/doc'
Making all in html
make[1]: Entering directory `/srv/siege-4.0.2/html'
make[1]: Nothing to be done for `all'.
make[1]: Leaving directory `/srv/siege-4.0.2/html'
[root@test03 siege-4.0.2]# 

make install

执行make install

[root@test03 siege-4.0.2]# make install
Making install in .
make[1]: Entering directory `/srv/siege-4.0.2'
make[2]: Entering directory `/srv/siege-4.0.2'
make[2]: Nothing to be done for `install-exec-am'.
make[2]: Nothing to be done for `install-data-am'.
make[2]: Leaving directory `/srv/siege-4.0.2'
make[1]: Leaving directory `/srv/siege-4.0.2'
Making install in include
make[1]: Entering directory `/srv/siege-4.0.2/include'
Making install in joedog
make[2]: Entering directory `/srv/siege-4.0.2/include/joedog'
make[3]: Entering directory `/srv/siege-4.0.2/include/joedog'
make[3]: Nothing to be done for `install-exec-am'.
make[3]: Nothing to be done for `install-data-am'.
make[3]: Leaving directory `/srv/siege-4.0.2/include/joedog'
make[2]: Leaving directory `/srv/siege-4.0.2/include/joedog'
make[2]: Entering directory `/srv/siege-4.0.2/include'
make[3]: Entering directory `/srv/siege-4.0.2/include'
make[3]: Nothing to be done for `install-exec-am'.
make[3]: Nothing to be done for `install-data-am'.
make[3]: Leaving directory `/srv/siege-4.0.2/include'
make[2]: Leaving directory `/srv/siege-4.0.2/include'
make[1]: Leaving directory `/srv/siege-4.0.2/include'
Making install in src
make[1]: Entering directory `/srv/siege-4.0.2/src'
make[2]: Entering directory `/srv/siege-4.0.2/src'
 /bin/mkdir -p '/usr/local/bin'
  /bin/sh ../libtool   --mode=install /usr/bin/install -c siege '/usr/local/bin'
/usr/bin/install -c siege /usr/local/bin/siege
make[2]: Nothing to be done for `install-data-am'.
make[2]: Leaving directory `/srv/siege-4.0.2/src'
make[1]: Leaving directory `/srv/siege-4.0.2/src'
Making install in utils
make[1]: Entering directory `/srv/siege-4.0.2/utils'
make[2]: Entering directory `/srv/siege-4.0.2/utils'
make  install-exec-hook
make[3]: Entering directory `/srv/siege-4.0.2/utils'
/bin/sh ../utils/mkinstalldirs /usr/local/bin
 /bin/sh ../libtool  --mode=install /usr/bin/install -c bombardment /usr/local/bin/bombardment
/usr/bin/install -c bombardment /usr/local/bin/bombardment
 /bin/sh ../libtool  --mode=install /usr/bin/install -c siege2csv.pl /usr/local/bin/siege2csv.pl
/usr/bin/install -c siege2csv.pl /usr/local/bin/siege2csv.pl
 /bin/sh ../libtool  --mode=install /usr/bin/install -c siege.config /usr/local/bin/siege.config
/usr/bin/install -c siege.config /usr/local/bin/siege.config
make[3]: Leaving directory `/srv/siege-4.0.2/utils'
make[2]: Nothing to be done for `install-data-am'.
make[2]: Leaving directory `/srv/siege-4.0.2/utils'
make[1]: Leaving directory `/srv/siege-4.0.2/utils'
Making install in doc
make[1]: Entering directory `/srv/siege-4.0.2/doc'
make[2]: Entering directory `/srv/siege-4.0.2/doc'
make  install-exec-hook
make[3]: Entering directory `/srv/siege-4.0.2/doc'
make[3]: Leaving directory `/srv/siege-4.0.2/doc'
 /bin/mkdir -p '/usr/local/share/man/man1'
 /usr/bin/install -c -m 644 siege.1 siege.config.1 bombardment.1 siege2csv.1 '/usr/local/share/man/man1'
make[2]: Leaving directory `/srv/siege-4.0.2/doc'
make[1]: Leaving directory `/srv/siege-4.0.2/doc'
Making install in html
make[1]: Entering directory `/srv/siege-4.0.2/html'
make[2]: Entering directory `/srv/siege-4.0.2/html'
make  install-exec-hook
make[3]: Entering directory `/srv/siege-4.0.2/html'
HTML pages not installed
make[3]: Leaving directory `/srv/siege-4.0.2/html'
make[2]: Nothing to be done for `install-data-am'.
make[2]: Leaving directory `/srv/siege-4.0.2/html'
make[1]: Leaving directory `/srv/siege-4.0.2/html'
[root@test03 siege-4.0.2]# 

验证Siege是否安装成功

使用siege -V查看版本信息

[root@test03 siege-4.0.2]# siege -V
[alert] Zip encoding disabled; siege requires zlib support to enable it
SIEGE 4.0.2

Copyright (C) 2016 by Jeffrey Fulmer, et al.
This is free software; see the source for copying conditions.
There is NO warranty; not even for MERCHANTABILITY or FITNESS
FOR A PARTICULAR PURPOSE.

[root@test03 siege-4.0.2]# 

使用siege -h查看帮助信息

[root@test03 siege-4.0.2]# siege -h
[alert] Zip encoding disabled; siege requires zlib support to enable it
SIEGE 4.0.2
Usage: siege [options]
       siege [options] URL
       siege -g URL
Options:
  -V, --version             VERSION, prints the version number.
  -h, --help                HELP, prints this section.
  -C, --config              CONFIGURATION, show the current config.
  -v, --verbose             VERBOSE, prints notification to screen.
  -q, --quiet               QUIET turns verbose off and suppresses output.
  -g, --get                 GET, pull down HTTP headers and display the
                            transaction. Great for application debugging.
  -c, --concurrent=NUM      CONCURRENT users, default is 10
  -r, --reps=NUM            REPS, number of times to run the test.
  -t, --time=NUMm           TIMED testing where "m" is modifier S, M, or H
                            ex: --time=1H, one hour test.
  -d, --delay=NUM           Time DELAY, random delay before each requst
  -b, --benchmark           BENCHMARK: no delays between requests.
  -i, --internet            INTERNET user simulation, hits URLs randomly.
  -f, --file=FILE           FILE, select a specific URLS FILE.
  -R, --rc=FILE             RC, specify an siegerc file
  -l, --log[=FILE]          LOG to FILE. If FILE is not specified, the
                            default is used: PREFIX/var/siege.log
  -m, --mark="text"         MARK, mark the log file with a string.
                            between .001 and NUM. (NOT COUNTED IN STATS)
  -H, --header="text"       Add a header to request (can be many)
  -A, --user-agent="text"   Sets User-Agent in request
  -T, --content-type="text" Sets Content-Type in request

Copyright (C) 2016 by Jeffrey Fulmer, et al.
This is free software; see the source for copying conditions.
There is NO warranty; not even for MERCHANTABILITY or FITNESS
FOR A PARTICULAR PURPOSE.

[root@test03 siege-4.0.2]# 

从上述几个命令可以看出,Siege已经安装了~

一个示例

安装完毕之后,没有示例怎么行,下面就给一个示例示范一下。

示例 ==> 并发请求指定URL  http://download.joedog.org/

siege -c 5 -r 2 http://download.joedog.org/

参数说明-c 是并发量并发数为5,  -r 是重复次数 重复2次
 

[root@test03 siege-4.0.2]# siege -c 5 -r 2 http://download.joedog.org/
[alert] Zip encoding disabled; siege requires zlib support to enable it
** SIEGE 4.0.2
** Preparing 5 concurrent users for battle.
The server is now under siege...
HTTP/1.1 200     0.47 secs:    4583 bytes ==> GET  /
HTTP/1.1 200     0.48 secs:    4583 bytes ==> GET  /
HTTP/1.1 200     0.49 secs:    4583 bytes ==> GET  /
HTTP/1.1 200     0.49 secs:    4583 bytes ==> GET  /
HTTP/1.1 200     0.52 secs:    4583 bytes ==> GET  /
HTTP/1.1 200     0.40 secs:     225 bytes ==> GET  /icons/folder.gif
HTTP/1.1 200     0.43 secs:     225 bytes ==> GET  /icons/folder.gif
HTTP/1.1 200     0.44 secs:     225 bytes ==> GET  /icons/folder.gif
HTTP/1.1 200     0.45 secs:     225 bytes ==> GET  /icons/folder.gif
HTTP/1.1 200     0.42 secs:     225 bytes ==> GET  /icons/folder.gif
HTTP/1.1 200     0.43 secs:    2455 bytes ==> GET  /images/pommie-icon.gif
HTTP/1.1 200     0.43 secs:    2455 bytes ==> GET  /images/pommie-icon.gif
HTTP/1.1 200     0.41 secs:    2455 bytes ==> GET  /images/pommie-icon.gif
HTTP/1.1 200     0.46 secs:    2455 bytes ==> GET  /images/pommie-icon.gif
HTTP/1.1 200     0.46 secs:    2455 bytes ==> GET  /images/pommie-icon.gif
HTTP/1.1 200     0.37 secs:    4583 bytes ==> GET  /
HTTP/1.1 200     0.41 secs:    4583 bytes ==> GET  /
HTTP/1.1 200     0.44 secs:    4583 bytes ==> GET  /
HTTP/1.1 200     0.42 secs:    4583 bytes ==> GET  /
HTTP/1.1 200     0.45 secs:     225 bytes ==> GET  /icons/folder.gif
HTTP/1.1 200     0.45 secs:     225 bytes ==> GET  /icons/folder.gif
HTTP/1.1 200     0.42 secs:     225 bytes ==> GET  /icons/folder.gif
HTTP/1.1 200     0.43 secs:     225 bytes ==> GET  /icons/folder.gif
HTTP/1.1 200     0.42 secs:    2455 bytes ==> GET  /images/pommie-icon.gif
HTTP/1.1 200     0.40 secs:    2455 bytes ==> GET  /images/pommie-icon.gif
HTTP/1.1 200     0.43 secs:    2455 bytes ==> GET  /images/pommie-icon.gif
HTTP/1.1 200     0.43 secs:    2455 bytes ==> GET  /images/pommie-icon.gif
HTTP/1.1 200     2.25 secs:    4583 bytes ==> GET  /
HTTP/1.1 200     0.44 secs:     225 bytes ==> GET  /icons/folder.gif
HTTP/1.1 200     0.46 secs:    2455 bytes ==> GET  /images/pommie-icon.gif

Transactions:		          30 hits
Availability:		      100.00 %
Elapsed time:		        4.67 secs
Data transferred:	        0.07 MB
Response time:		        0.50 secs
Transaction rate:	        6.42 trans/sec
Throughput:		        0.01 MB/sec
Concurrency:		        3.21
Successful transactions:          30
Failed transactions:	           0
Longest transaction:	        2.25
Shortest transaction:	        0.37
 
[root@test03 siege-4.0.2]# 

结果展示:

对结果进行简单说明如下:

Transactions:		          30 hits        ## 完成处理数30
Availability:		      100.00 %           ## 可用,成功率100%
Elapsed time:		        4.67 secs        ## 耗时4.67秒
Data transferred:	        0.07 MB          ## 数据传输0.07MB
Response time:		        0.50 secs        ## 响应时间0.50秒
Transaction rate:	        6.42 trans/sec   ## 每秒完成6.42个处理
Throughput:		        0.01 MB/sec          ## 吞吐量,每秒传输0.01MB
Concurrency:		        3.21             ## 实际最高并发连接数
Successful transactions:          30         ## 成功完成处理30次
Failed transactions:	           0         ## 失败0次
Longest transaction:	        2.25         ## 每次传输所花最长时间
Shortest transaction:	        0.37         ## 每次传输所花最短时间

至此,CentOS安装Web性能测试工具Siege,并给出一个简单的示例就完成了。

后续,将给出Siege不同参数的使用实例,更多地去了解Siege~ 

共有 人打赏支持
王孟君
粉丝 199
博文 94
码字总数 221044
评论 (3)
百世经纶之傲笑红尘
netdata更好看
Sgenmi
和Ab比呢?
滔哥
webbench
×
王孟君
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
* 金额(元)
¥1 ¥5 ¥10 ¥20 其他金额
打赏人
留言
* 支付类型
微信扫码支付
打赏金额:
已支付成功
打赏金额: