カテゴリー別アーカイブ: ツール

UnixBench のインストール (CentOS 7)

Linux をはじめとする Unix 系 OS 環境のベンチマークツールとして、UnixBench があります。
CentOS 7 への UnixBench インストール手順と実行方法についてまとめています。

1. 必要なパッケージのインストール

UnixBench を実行するためには、少なくとも make、gcc、perl、perl-Time-HiRes が必要です。
インストールされていないパッケージがある場合、適宜インストールします。

なお、CentOS 7 を「ベーシック Web サーバ」でインストールした場合、gcc と perl-Time-HiRes のインストールが追加で必要でした。

1.1. make のインストール

インストール有無のチェック

# rpm -qa | grep make
make-3.82-21.el7.x86_64

インストール

# yum install make

1.2. gcc のインストール

インストール有無のチェック

# rpm -qa | grep gcc
gcc-4.8.2-16.2.el7_0.x86_64

インストール

# yum install gcc

1.3. perl-Time-HiRes のインストール

perl がインストールされていない場合、perl-Time-HiRes をインストールすることで依存パッケージとして自動的にインストールされます。

1.4. perl-Time-HiRes のインストール

インストール有無のチェック

# rpm -qa | grep perl-Time-HiRes
perl-Time-HiRes-1.9725-3.el7.x86_64

インストール

# yum install perl-Time-HiRes

2. UnixBench のインストール

2.1. UnixBench のダウンロード

開発元から UnixBench をダウンロードします。
本日時点の最新バージョンは UnixBench5.1.3.tgz (143,259 byte) でした。

ここでは wget を利用していますが、別途ダウンロードした tgz ファイルを scp 等で転送しても問題ありません。

# wget https://byte-unixbench.googlecode.com/files/UnixBench5.1.3.tgz

~ 略 ~

長さ: 143259 (140K) [application/x-gzip]
`UnixBench5.1.3.tgz' に保存中

100%[======================================>] 143,259      126KB/s 時間 1.1s   

2015-03-26 18:47:44 (126 KB/s) - `UnixBench5.1.3.tgz' へ保存完了 [143259/143259]

2.2. UnixBench のインストール

ダウンロードした UnixBench5.1.3.tgz を解凍すれば、UnixBench のインストールは完了です。

# tar xf UnixBench5.1.3.tgz
# ls -l
合計 144
drwxr-xr-x. 6 root root   4096  1月 18  2011 UnixBench
-rw-r--r--. 1 root root 143259  1月 18  2011 UnixBench5.1.3.tgz

3. UnixBench の実行

Run コマンドを実行することで UnixBench を実行可能です。

初回起動時はコンパイルが行われます。
make や gcc が未インストールの場合はエラーとなるので注意してください。

# cd UnixBench/
# ./Run
gcc -o ./pgms/arithoh -DTIME -Wall -pedantic -ansi -O2 -fomit-frame-pointer -fforce-addr -ffast-math -Wall -Darithoh ./src/arith.c
gcc -o ./pgms/register -DTIME -Wall -pedantic -ansi -O2 -fomit-frame-pointer -fforce-addr -ffast-math -Wall -Ddatum='register int' ./src/arith.c

~ 略 ~

   #    #  #    #  #  #    #          #####   ######  #    #   ####   #    #
   #    #  ##   #  #   #  #           #    #  #       ##   #  #    #  #    #
   #    #  # #  #  #    ##            #####   #####   # #  #  #       ######
   #    #  #  # #  #    ##            #    #  #       #  # #  #       #    #
   #    #  #   ##  #   #  #           #    #  #       #   ##  #    #  #    #
    ####   #    #  #  #    #          #####   ######  #    #   ####   #    #

   Version 5.1.3                      Based on the Byte Magazine Unix Benchmark

   Multi-CPU version                  Version 5 revisions by Ian Smith,
                                      Sunnyvale, CA, USA
   January 13, 2011                   johantheghost at yahoo period com

実行結果のイメージについては「サーバ環境とパフォーマンス (CentOS 7)」を参照してください。

[ END ]

Java SE 7 (JDK 1.7.x) のインストール (CentOS 6.3 64bit)

過去の記事を最新情報で更新しました。
CentOS は 6.3 に、Java (JDK) は Java SE 7u21 (Java 7) に上がっています。

1. Java SE Development Kit (JDK) のダウンロード

Oracle (旧 Sun) のダウンロードページ Java SE Downloads から最新の JDK をダウンロードします。

JDK の「DOWNLOAD」ボタンを選択し、「Accept License Agreement」をチェックします。
64bit Linux 用の「Linux x64」は tar.gz 版と RPM 版がありますが、今回は RPM 版にしました。

本日時点の最新版は jdk-7u21-linux-x64.rpm (85,388,149 byte) でした。

2. Java SE Development Kit (JDK) のインストール

2.1. JDK のインストール

Java 6 の時代と異なり、rpm コマンドだけでインストールは完了します。

# rpm -ivh jdk-7u21-linux-x64.rpm
準備中...                ########################################### [100%]
   1:jdk                    ########################################### [100%]
Unpacking JAR files...
        rt.jar...
        jsse.jar...
        charsets.jar...
        tools.jar...
        localedata.jar...

2.2. JDK のインストール先

Java のモジュールは /usr/java 配下に展開されています。

$ ls -l /usr/java/
合計 4
lrwxrwxrwx. 1 root root   16  4月 22 20:12 2013 default -> /usr/java/latest
drwxr-xr-x. 8 root root 4096  4月 22 20:12 2013 jdk1.7.0_21
lrwxrwxrwx. 1 root root   21  4月 22 20:12 2013 latest -> /usr/java/jdk1.7.0_21

実態は /usr/java/jdk1.7.0_21 配下にインストールされていて、2つのリンク default と latest が作成されています。

3. alternatives 設定

(*) alternatives を使用していない場合 → @see 「4. 環境変数設定」

3.1. パスの確認

インストールしただけではパスが通っていないため Java 7 は動作しません。
事前に OpenJDK をインストールしていると、OpenJDK へのパスが有効なままです。

$ java -version
java version "1.6.0_24"
OpenJDK Runtime Environment (IcedTea6 1.11.8) (rhel-1.56.1.11.8.el6_3-x86_64)
OpenJDK 64-Bit Server VM (build 20.0-b12, mixed mode)

このパスは /usr/bin 配下で定義されています。

$ ls -l /usr/bin/java*
lrwxrwxrwx. 1 root root 22  4月  6 16:38 2013 /usr/bin/java -> /etc/alternatives/java
lrwxrwxrwx. 1 root root 27  4月 22 20:12 2013 /usr/bin/javac -> /usr/java/default/bin/javac
lrwxrwxrwx. 1 root root 29  4月 22 20:12 2013 /usr/bin/javadoc -> /usr/java/default/bin/javadoc
lrwxrwxrwx. 1 root root 28  4月 22 20:12 2013 /usr/bin/javaws -> /usr/java/default/bin/javaws

java コマンドのみ /etc/alternatives/java へのリンクとなっているので、Java 7 にパスを通すには alternatives の設定を変更する必要があります。

3.2. alternatives 設定確認

alternatives コマンドで現在の設定を確認します。

# alternatives --display java
java -ステータスは自動です。                   
リンクは現在 /usr/lib/jvm/jre-1.6.0-openjdk.x86_64/bin/java を指しています。
/usr/lib/jvm/jre-1.6.0-openjdk.x86_64/bin/java - 優先項目 16000

~ 略 ~

現在の「最適」バージョンは /usr/lib/jvm/jre-1.6.0-openjdk.x86_64/bin/java です。

/usr/lib/jvm/jre-1.6.0-openjdk.x86_64/bin/java が 優先度 16000 で登録されていることが確認できます。

3.3. alternatives への Java 7 の追加

Java 7 もalternatives に追加します。

優先度は Java のバージョンが 7u21 (JDK1.7.0_21) なので 17021 とします。

# alternatives --install /usr/bin/java java /usr/java/default/bin/java 17021

alternatives のパラメータの意味は以下の通りです。

パラメータ1 : 登録するリンク ex.) /usr/bin/java
パラメータ2 : 登録先する名前 ex.) java
パラメータ3 : 実際に実行するパス ex.) /usr/java/default/bin/java, /usr/java/jdk1.7.0_21/bin/java
パラメータ4 : 優先度 ex.) 17021

3.4. alternatives 変更結果確認

alternatives コマンドで変更後の設定を確認します。

# alternatives --display java
java -ステータスは自動です。                   
リンクは現在 /usr/java/default/bin/java を指しています。
/usr/lib/jvm/jre-1.6.0-openjdk.x86_64/bin/java - 優先項目 16000
/usr/java/default/bin/java - 優先項目 17021

~ 略 ~

現在の「最適」バージョンは /usr/java/default/bin/java です。

/usr/java/default/bin/java が 優先度 17021 で追加されました。
有効な java も優先度が一番高い /usr/java/default/bin/java となっています。

3.5. 使用する Java の変更

alternatives から使用する Java を切り替えることが可能です。

# alternatives --config java

2 プログラムがあり 'java' を提供します。

  選択       コマンド
-----------------------------------------------
   1           /usr/lib/jvm/jre-1.6.0-openjdk.x86_64/bin/java
*+ 2           /usr/java/default/bin/java

Enter を押して現在の選択 [+] を保持するか、選択番号を入力します:

「+」が現在使用中の Java、「*」が優先度が一番高い Java です。

3.6. 動作確認

java -version コマンドで alternatives が正しく設定されているかを確認します。

$ java -version
java version "1.7.0_21"
Java(TM) SE Runtime Environment (build 1.7.0_21-b11)
Java HotSpot(TM) 64-Bit Server VM (build 23.21-b01, mixed mode)

4. 環境変数設定

Tomcat 等、環境変数「JAVA_HOME」を参照するアプリケーションを使用する場合は別途定義する必要があります。

~/.bash_profile へ追加

# Java home
export JAVA_HOME=/usr/java/default

ここで JAVA_HOME を /usr/java/default としているのは、将来、最新の JDK をインストールした場合でもパス設定を変更不要とするためです。

変更した ~/.bash_profile を有効化します。

$ source ~/.bash_profile

[ END ]

alternatives コマンドを使用した java バージョンの切り替え

JDK 1.6.x のインストール (CentOS 5.5 64bit)」の「3.3. /usr/bin 配下のリンク先変更」において、/usr/bin 配下の java のリンク先を切り替えることにより実行される java のバージョン切り替えを実現しました。

が、alternatives (または update-alternatives) コマンドを用いることで、よりスマートに java バージョンの切り替えが実現できるようです。

今回は JDK (java) に関連する部分のみの手順に限定させていただきますので、alternatives の詳細については以下のサイトをご参照ください。

@see 「コマンドを便利に切り替える update-alternatives 使いこなし講座

1. 現在の設定確認

1.1. alternatives 設定

alternatives で java コマンドの設定状況を確認します。

# alternatives --config java

2 プログラムがあり 'java' を提供します。

  選択       コマンド
-----------------------------------------------
*+ 1           /usr/lib/jvm/jre-1.6.0-openjdk.x86_64/bin/java
   2           /usr/lib/jvm/jre-1.4.2-gcj/bin/java

/usr/lib/jvm/jre-1.6.0-openjdk.x86_64/bin/java が有効となっていて、そのほかに /usr/lib/jvm/jre-1.4.2-gcj/bin/java が登録されていることがわかります。

1.2. java 設定

java コマンドを実行すると、CentOS のデフォルトでは /usr/bin 配下の java が起動します。この実体は、以下が示すように /etc/alternatives/java となっています。

# ls -l /usr/bin/java
lrwxrwxrwx 1 root root 22 4月 18 18:11 java -> /etc/alternatives/java

/ect/alternatives/java は「1.1. alternatives 設定」となっていますので、結果として /usr/lib/jvm/jre-1.6.0-openjdk.x86_64/bin/java が動作することになります。

# java -version
java version "1.6.0_0"
OpenJDK Runtime Environment (IcedTea6 1.6) (rhel-1.11.b16.el5-x86_64)
OpenJDK 64-Bit Server VM (build 14.0-b16, mixed mode)

2. インストールした JDK の登録

新たに JDK をインストールしても alternatives には登録されません。
登録を行う場合には --install オプションを使用します。

# alternatives --install /usr/bin/java java /usr/java/default/bin/java 16021
  • 第1パラメータの「/usr/bin/java」は実行するリンクを指定します。
  • 第2パラメータの「java」は登録対象のグループを指定します。
  • 第3パラメータの「/usr/java/default/bin/java」は実際に実行するコマンドのパスを指定します。
    細かくバージョン管理を行いたい場合は「/usr/java/jdk1.6.0_21/bin/java」のように登録した方がよいかもしれません。
  • 第4パラメータの「16021」は優先度を指定します。今回は JDK1.6.0_21 ですので「16021」としました。

alternatives で登録結果を確認します。

# alternatives --config java

3 プログラムがあり 'java' を提供します。

  選択       コマンド
-----------------------------------------------
 + 1           /usr/lib/jvm/jre-1.6.0-openjdk.x86_64/bin/java
   2           /usr/lib/jvm/jre-1.4.2-gcj/bin/java
*  3           /usr/java/default/bin/java

Enter を押して現在の選択 [+] を保持するか、選択番号を入力します:3

「/usr/java/default/bin/java」が追加されていることが確認できます。
ただ、このままでは「1」が有効となっているので、「3」を入力して Enter キーで決定します。

3. 動作確認

前項の設定が有効となっているか確認します。

# java -version
java version "1.6.0_21"
Java(TM) SE Runtime Environment (build 1.6.0_21-b06)
Java HotSpot(TM) 64-Bit Server VM (build 17.0-b16, mixed mode)

[ END ]