Help us understand the problem. What is going on with this article?

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

More than 1 year has passed since last update.

この記事について

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

背景

開発サーバはインターネットにつながるものの、ローカルの開発環境にはつながらない。
そのため、ローカルから開発サーバに上げたモジュールを試験するために、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が起動しない時の対処法が書かれています
https://github.com/51zero/eel-sdk/issues/58

記事にはこんなことが書いてあります。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)

んーっと、バージョンが対応してないようです。
てか52って?

52の意味

StackOverflowにそれっぽいことが書いてあった
Unsupported major.minor versionってなんやねん!みたいな記事

これの解答に(もっと言えばwikipediaに)よれば

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"

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

Jmeterのサイトを読み直す

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がつかえるみたいです。
そのうち、一悶着も使ってみた感想も記事に書きます

教訓

  • ちゃんと公式サイトを読む
  • バージョン違いで動かないシステムもあるので気を付けようね
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした