4
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

JMeterをLinuxに入れる① ~バージョン違いに気づかず遠回りした編~

Last updated at Posted at 2018-06-07

この記事について

JMeterをLinux(CentOS)に入れたときの体験記事を書きました。

2023年4月追記

文面の体裁を整えるため更新。新しい情報は何も入っていません。

背景

開発サーバはインターネットにつながるものの、ローカルの開発環境にはつながらない。
そのため、ローカルから開発サーバに上げたモジュールを試験するために、LinuxにJMeterを入れたかった

環境

Centos: 6.2
Java: 1.7
入れようとしたJMeter: 4.0

全編に対する注意点

当時のチームでの慣習なのですが、開発環境ということもありこのあたりの作業は全てrootユーザで実施してます。

起きたこと

手順

jdk→既に入ってる
jmeter→http://ftp.meisei-u.ac.jp/mirror/apache/dist//jmeter/binaries からダウンロード
apache-jmeter-4.0.tgzをダウンロード→scpでごにょごにょ

# tar xzf apache-jmeter-4.0.tgz
# mkdir /usr/local/jmeter
# mv apache-jmeter-4.0 /usr/local/jmeter
# cd /usr/local/jmeter/

エイリアスの登録

vi ~/.bashrc
PATH=$PATH:$HOME/bin:/usr/local/jmeter/apache-jmeter-4.0/bin
source ~/.bashrc

これで動く!と思った。

例外①

# /usr/local/jmeter/apache-jmeter-4.0/bin/./jmeter -v
Unrecognized VM option 'MaxMetaspaceSize=256m'
Error: Could not create the Java Virtual Machine.
Error: A fatal exception has occurred. Program will exit.

英語が読めず、一瞬思考停止する。

ググる

ログの文言をググるのは、個人的にはエンジニアの基本中の基本かなと思います。ネットがあるなら猶更。

ただし、

  • 「ググった結果が意味わからない」
  • 「ログどこに出てるの」
  • 「ログが分かりづらすぎる」

って場合は頼れる先輩エンジニアに聞くべきだと思います。


そんなこんなで見つけました。JMeterじゃないけど、同じ理由でJVMが起動しない時の対処法が書かれています

記事にはこんなことが書いてあります。170人近い人が良いねしてます。
「had to remove -XX:MaxMetaspaceSize=256m」

とりあえず、jmeterの設定ファイルからコメントアウト

# less /usr/local/jmeter/apache-jmeter-4.0/bin/jmeter | grep MaxMeta
##                    Defaults to "-Xms1g -Xmx1g -X:MaxMetaspaceSize=256m"
#: "${HEAP:="-Xms1g -Xmx1g -XX:MaxMetaspaceSize=256m"}"

例外②

エラーメッセージが変わりました

# jmeter
Exception in thread "main" java.lang.UnsupportedClassVersionError: org/apache/jmeter/NewDriver : Unsupported major.minor version 52.0
        at java.lang.ClassLoader.defineClass1(Native Method)
        at java.lang.ClassLoader.defineClass(ClassLoader.java:800)
        at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
        at java.net.URLClassLoader.defineClass(URLClassLoader.java:449)
        at java.net.URLClassLoader.access$100(URLClassLoader.java:71)
        at java.net.URLClassLoader$1.run(URLClassLoader.java:361)
        at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:425)
        at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:358)
        at sun.launcher.LauncherHelper.checkAndLoadMain(LauncherHelper.java:482)

バージョンが対応してないようです。
……version 52.0 って何のバージョンなんですか?Javaは1.7ですよね。

52の意味

StackOverflowにそれっぽいことが書いてあった

これの解答によれば

Java SE 10 = 54
Java SE 9 = 53
Java SE 8 = 52
Java SE 7 = 51
(以下略))

なるほどなるほど、こいつはjava8を要求しているわけです。

うちのサーバは?

# java -version
java version "1.7.0_79"

超今更ですが、改めて確認

を読み直す

Java version
Apache JMeter 4.0 requires **Java 8 or 9**

これが原因です。お疲れ様でした。状況的にそんなにすぐには更改できませんでした。

で、3系はどうなの?

現在JMeterを普通にググると4系しか出てこないのですが、2.10以降もアーカイブとしては残っているみたいです。
ここから確認することができます。
どうせなら新しいものを使いたいので、JMeter 3系をインストール出来るか試しました。

■jmeter3.3の場合

# jmeter
Error: Java version is too low to run JMeter. Needs at least Java >= 1.8.0.

■jmeter3.0の場合

# jmeter
Error: Java version is too low to run JMeter. Needs at least Java >= 1.8.0.

結論

今さらJava7なんか使ってるやつは2.x使ってくださいってことみたいです。
一悶着あったけど、Java7ならJMeter2.9がつかえるみたいです。
そのうち、一悶着も使ってみた感想も記事に書きます

教訓

  • ちゃんと公式サイトを読む
  • バージョン違いで動かないシステムもあるので気を付けよう
4
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?