intel compiler で Apache が 400% 高速化

無料で30%のパフォーマンスUP!! - intel compiler」でも書いた intel compiler ですが、apache1.3.33 + mod_perl 1.29 を再構築してみました。apache bench で速度を測ってみたら、ナント 400% も高速化していました。��( ̄□ ̄;)ナント!! 本当かぁ??と思って数回試してみましたが、結果は同じでした。スゴイ!

以下、インストールメモとapache bench のログです。

- スポンサーリンク -

mv /usr/bin/gcc /usr/bin/gcc.bk
ln -s /opt/intel_cc_80/bin/icc /usr/bin/gcc

mkdir /usr/local/src/icc
cd /usr/local/src/icc
wget http://www.meisei-u.ac.jp/mirror/apache/dist/httpd/apache_1.3.33.tar.gz
tar xvfz apache_1.3.33.tar.gz

cd /usr/local/src/icc
wget http://perl.apache.org/dist/mod_perl-1.0-current.tar.gz
tar xvfz mod_perl-1.0-current.tar.gz
cd mod_perl-1.29
perl Makefile.PL USE_APXS=1 WITH_APXS=/usr/local/apache/bin/apxs EVERYTHING=1 OPTIMIZE="-O3 -tpp7 -xWNB -axWNB -ip"

make
make install

cd /usr/local/src/icc
cd apache_1.3.33

CC=icc CFLAGS="-O3 -tpp7 -xWNB -axWNB -ip" LIBS=-lpthread ./configure --prefix=/usr/local/apache --enable-module=so \
--enable-module=rewrite \
--disable-module=userdir \
--disable-module=status \
--disable-module=asis \
--disable-module=imap \
--disable-module=auth \
--disable-module=include \
--disable-module=setenvif \
--disable-module=negotiation

make
make install

rm -rf /usr/bin/gcc
mv /usr/bin/gcc.bk /usr/bin/gcc

で apache + mod_perl を再構築。
 
echo 'print "Location: http://www.drk7.jp/MT/\n\n";' > index.cgi
chmod 755 index.cgi

 でリダイレクト CGI を作成して、/usr/local/apache/bin/ab -n 100 -c 10 http://localhost/index.cgi を実行。
 
gcc バージョン
Requests per second: 129.98 [#/sec] (mean)
Time per request: 76.933 [ms] (mean)
Time per request: 7.693 [ms] (mean, across all concurrent requests)
Transfer rate: 57.19 [Kbytes/sec] received

iccバージョン
Requests per second: 473.69 [#/sec] (mean)
Time per request: 21.111 [ms] (mean)
Time per request: 2.111 [ms] (mean, across all concurrent requests)
Transfer rate: 208.42 [Kbytes/sec] received
05.03.18 追記 : /etc/init.d/httpd に /opt/intel_cc_80/bin/iccvars.sh で icc でコンパイルしたモノを動かす際に必要となる環境変数を設定しないと、
/usr/local/apache/bin/httpd: error while loading shared libraries: libimf.so: cannot open shared object file: No such file or directory
というエラーでプロセスが落ちますのでご注意を。
- スポンサーリンク -