Difference between revisions of "Curl-loader: Install di Ubuntu"

From OnnoWiki
Jump to navigation Jump to search
Line 45: Line 45:
 
  cp -f doc/* /usr/share/doc/curl-loader/
 
  cp -f doc/* /usr/share/doc/curl-loader/
 
  cp -rf conf-examples /usr/share/doc/curl-loader/
 
  cp -rf conf-examples /usr/share/doc/curl-loader/
 +
 +
==Help curl-load==
 +
 +
curl-loader -h
 +
 +
Note, to run your load, create your batch configuration file.
 +
 +
usage: run as a root:
 +
./curl-loader -f <configuration file name> with [other options below]:
 +
  -c[onnection establishment timeout, seconds]
 +
  -d[etailed logging; outputs to logfile headers and bodies of requests/responses. Good for text pages/files]
 +
  -e[rror drop client (smooth mode). Client on error doesn't attempt next cycle]
 +
  -i[ntermediate (snapshot) statistics time interval (default 3 sec)]
 +
  -l[ogfile max size in MB (default 1024). On the size reached, file pointer rewinded]
 +
  -m[ode of loading, 0 - hyper  (default), 1 - smooth]
 +
  -r[euse onnections disabled. Close connections and re-open them. Try with and without]
 +
  -t[hreads number to run batch clients as sub-batches in several threads. Works to utilize SMP/m-core HW]
 +
  -v[erbose output to the logfiles; includes info about headers sent/received]
 +
  -u[rl logging - logs url names to logfile, when -v verbose option is used]
 +
  -w[arnings skip]
 +
  -x[set|unset proxy] "<proxy:port>"
 +
 +
For more examples of configuration files please, look at "conf-examples" directory.
 +
 +
Running thousands and more clients, please do not forget to consider the options:
 +
- to increase limit of open descriptors in shell by running e.g.    ulimit -n 19999:
 +
- to increase total limit of  open descriptors in systeme somewhere in /proc
 +
- to consider reusing sockets in time-wait state: by    echo 1 > /proc/sys/net/ipv4/tcp_tw_recycle
 +
- and/or    echo 1 > /proc/sys/net/ipv4/tcp_tw_reuse
  
 
==Ubah Sysctl==
 
==Ubah Sysctl==

Revision as of 13:33, 7 June 2015

Instalasi curl-loader

Cek Versi

uname -ri; tail -1 /etc/lsb-release
3.13.0-24-generic x86_64
DISTRIB_DESCRIPTION="Ubuntu 14.04 LTS"

Instalasi Aplikasi Pendukung

apt-get install libssl-dev build-essential


Download curl-loader

Dari

http://curl-loader.sourceforge.net/

Atau

cd /usr/local/src
wget http://sourceforge.net/projects/curl-loader/files/curl-loader-stable/curl-loader-0.56/curl-loader-0.56.tar.bz2


Instalasi

Lakukan

cd /usr/local/stc
bunzip2 curl-loader-0.56.tar.bz2
tar xvf curl-loader-0.56.tar
cd /usr/local/src/curl-loader-0.56/
make
make install
mkdir -p /usr/bin
mkdir -p /usr/share/man/man1
mkdir -p /usr/share/man/man5
mkdir -p /usr/share/doc/curl-loader/
cp -f curl-loader /usr/bin
cp -f doc/curl-loader.1 /usr/share/man/man1/  
cp -f doc/curl-loader-config.5 /usr/share/man/man5/
cp -f doc/* /usr/share/doc/curl-loader/
cp -rf conf-examples /usr/share/doc/curl-loader/

Help curl-load

curl-loader -h
Note, to run your load, create your batch configuration file.

usage: run as a root:
./curl-loader -f <configuration file name> with [other options below]:
 -c[onnection establishment timeout, seconds]
 -d[etailed logging; outputs to logfile headers and bodies of requests/responses. Good for text pages/files]
 -e[rror drop client (smooth mode). Client on error doesn't attempt next cycle]
 -i[ntermediate (snapshot) statistics time interval (default 3 sec)]
 -l[ogfile max size in MB (default 1024). On the size reached, file pointer rewinded]
 -m[ode of loading, 0 - hyper  (default), 1 - smooth]
 -r[euse onnections disabled. Close connections and re-open them. Try with and without]
 -t[hreads number to run batch clients as sub-batches in several threads. Works to utilize SMP/m-core HW]
 -v[erbose output to the logfiles; includes info about headers sent/received]
 -u[rl logging - logs url names to logfile, when -v verbose option is used]
 -w[arnings skip]
 -x[set|unset proxy] "<proxy:port>"

For more examples of configuration files please, look at "conf-examples" directory.

Running thousands and more clients, please do not forget to consider the options:
- to increase limit of open descriptors in shell by running e.g.    ulimit -n 19999:
- to increase total limit of  open descriptors in systeme somewhere in /proc
- to consider reusing sockets in time-wait state: by     echo 1 > /proc/sys/net/ipv4/tcp_tw_recycle
- and/or    echo 1 > /proc/sys/net/ipv4/tcp_tw_reuse

Ubah Sysctl

ulimit -n 10000
echo 1 > /proc/sys/net/ipv4/tcp_tw_recycle
echo 1 > /proc/sys/net/ipv4/tcp_tw_reuse

Contoh Konfigurasi

cd /usr/local/src
ls curl-loader-0.56/conf-examples/
10K.conf                          delete.conf                  ipv6.conf                      resp-errors.conf
60K.conf                          fetch-probability.conf       log-hdr-body.conf              some.xml
bax.conf                          fetch-probability-once.conf  login-uas-cycling.conf         timers-random-range.conf
bax-login-logoff-noncycling.conf  ftp.conf                     login-uas-logoff-cycling.conf  url-randomize.conf
bax-logs.conf                     ftp-http.conf                multipart-formdata-post.conf   url-template-file.txt
big-load.conf                     ftp-upload.conf              post-form-tokens-fr-file.conf  url-template-fr-file.conf
bulk.conf                         get-forms.conf               post-xml.conf                  url-template-resp-dynamic.conf
bulk-dual-url.conf                get-post-login.conf          put.conf
credentials.cred                  get-post-login-cycling.conf  random_file_records.conf
custom-hdrs.conf                  https.conf                   rate-limit.conf

Membuat konfigurasi sendiri

cd /usr/local/src/curl-loader-0.56/conf-examples
cp bulk.conf ~
cd ~

Edit bulk.conf

vi bulk.conf

Isi dengan


########### GENERAL SECTION ################################

BATCH_NAME= bulk  
CLIENTS_NUM_MAX=200 # Same as CLIENTS_NUM
#CLIENTS_NUM_START=10
CLIENTS_RAMPUP_INC=5
INTERFACE=eth1
NETMASK=24
IP_ADDR_MIN= 192.168.0.90
IP_ADDR_MAX= 192.168.0.99
IP_SHARED_NUM=10
CYCLES_NUM= -1
URLS_NUM= 1

########### URL SECTION #################################### 

URL=http://192.168.0.80/wiki/index.php/Main_Page
#URL=http://localhost/apache2-default/ACE-INSTALL.html
#URL=http://localhost/ACE-INSTALL.html
URL_SHORT_NAME="local-apache"
REQUEST_TYPE=GET
TIMER_URL_COMPLETION = 5000
TIMER_AFTER_URL_SLEEP = 500


Set ifconfig

ifconfig eth0:90 192.168.0.90
ifconfig eth0:91 192.168.0.91
ifconfig eth0:92 192.168.0.92
ifconfig eth0:93 192.168.0.93
ifconfig eth0:94 192.168.0.94
ifconfig eth0:95 192.168.0.95
ifconfig eth0:96 192.168.0.96
ifconfig eth0:97 192.168.0.97
ifconfig eth0:98 192.168.0.98
ifconfig eth0:99 192.168.0.99

run test

curl-loader -f ~/bulk.conf


Cek Access Log di Server

tail -5 /var/log/apache2/access.log

Akan terlihat akses dari banyak client

192.168.0.93 - - [07/Jun/2015:13:31:50 +0700] "GET /wiki/index.php/Main_Page HTTP/1.1" 200 20418 "-" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0)"
192.168.0.97 - - [07/Jun/2015:13:31:58 +0700] "GET /wiki/index.php/Main_Page HTTP/1.1" 200 20418 "-" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0)"
192.168.0.90 - - [07/Jun/2015:13:32:12 +0700] "GET /wiki/index.php/Main_Page HTTP/1.1" 500 1416 "-" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0)"
192.168.0.97 - - [07/Jun/2015:13:31:58 +0700] "GET /wiki/index.php/Main_Page HTTP/1.1" 200 20418 "-" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0)"
192.168.0.97 - - [07/Jun/2015:13:31:51 +0700] "GET /wiki/index.php/Main_Page HTTP/1.1" 200 20418 "-" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0)"

Referensi