티스토리 뷰
macOS에서 Jmeter 실행 안될 때(/usr/local/Cellar/jmeter/5.6.2/libexec/bin/jmeter: line 199: 20103 Abort trap: 6 "$JAVA_HOME/bin/java" $ARGS $JVM_ARGS $JMETER_OPTS -jar "$PRGDIR/ApacheJMeter.jar" "$@")
주디 𝙹𝚞𝚍𝚢 2023. 10. 25. 20:37윈도우 노트북에서 Redis를 이용하여 조회수 동시성 이슈 해결하고 Jmeter로 테스트해보기(https://dakafakadev.tistory.com/257)를 실행했을 때는 Jmeter가 이상없이 잘 작동했는데, macOS에서는 Jmeter가 제대로 실행되지 않는 문제가 있었는데 어쨌든 해결하긴 해서 정리해둔다. 요 문제는 구글링을 해도 답이 없어서 혼자 찾아봤다.
참고로 jmeter 5.6.2버전이고, 실행한 OS는 Sonoma 14.0버전이다.
문제
우선 나는 원래 homebrew를 사용하기 때문에 brew로 설치를 하고 실행했는데, 다음과 같은 문제가 발생했다.
여기서 주의깊게 볼 곳은 바로 이곳이다.
/usr/local/Cellar/jmeter/5.6.2/libexec/bin/jmeter: line 199: 20103 Abort trap: 6 "$JAVA_HOME/bin/java" $ARGS $JVM_ARGS $JMETER_OPTS -jar "$PRGDIR/ApacheJMeter.jar" "$@"
이게 뭐냐하면 brew로 설치한 jmeter는 아래의 명령어로 실행하는데, 실행하던 중 199번째 라인에서 문제가 발생했다는 것이다.
해결
바로 원인과 해결책을 알려주자면, $JAVA_HOME을 제대로 읽지 못해서 발생하는 문제로, 아래와 같이 하면 된다.
# jmeter를 vi로 연다.
vi /usr/local/Cellar/jmeter/5.6.2/libexec/bin/jmeter
# 아래의 내용을 추가한다.(각자의 JAVA_HOME 경로)
export JAVA_HOME=`/usr/local/opt/openjdk@17/libexec/openjdk.jdk/Contents/Home`
# jmeter를 실행해본다.
open /usr/local/bin/jmeter
내용 추가는 아래와 같이 실행되는 코드 가장 윗부분으로 하면 된다.
꼭 brew로 설치한 jmeter뿐만 아니라 zip파일로 다운로드받은 jmeter도 파일구조는 같으니 같은 방법으로 수정하면 된다.
좀 더 자세하게 알고 싶다면
좀 더 자세하게 알고 싶다면 아래의 글을 읽어보자.
open /usr/local/bin/jmeter
위 명령어는 brew로 설치한 jmeter를 실행하는 명령어로, usr/local/bin에 있는 jmeter는 아래와 같이 심볼릭링크가 걸려 있기 때문에 실제경로 /usr/local/Cellar/jmeter/5.6.2/bin에 있는 jmeter파일을 실행한다.
/usr/local/Cellar/jmeter/5.6.2/bin/jmeter파일을 열어보면 아래와 같다.(이 부분에서 JAVA_HOME이 아래와 같이 표시되는 이유는 brew로 설치하는 jmeter의 의존성이 openjdk17이기 때문인 것 같다. 자세하게는 잘 모름...)
#!/bin/bash
JAVA_HOME="/usr/local/opt/openjdk@17" exec "/usr/local/Cellar/jmeter/5.6.2/libexec/bin/jmeter" "$@"
JAVA_HOME을 이용하여 /usr/local/Cellar/jmeter/5.6.2/libexec/bin/jmeter를 실행하는 것이다. 그렇다면 직접적으로 실행하는 파일인 /usr/local/Cellar/jmeter/5.6.2/libexec/bin/jmeter를 뜯어보자.(vi /usr/local/Cellar/jmeter/5.6.2/libexec/bin/jmeter) 199번째 라인이 아래와 같다.
"$JAVA_HOME/bin/java" $ARGS $JVM_ARGS $JMETER_OPTS -jar "$PRGDIR/ApacheJMeter.jar" "$@"
여기에서 문제가 발생한 것인데, JAVA_HOME이 잘못 입력된 것일거라 생각하고, jmeter파일에 아래의 내용을 추가하여 실행했다.
export JAVA_HOME=`/usr/local/opt/openjdk@17/libexec/openjdk.jdk/Contents/Home`
# 각자의 JAVA_HOME 경로를 입력해준다.
그리고 다시 open /usr/local/bin/jmeter를 실행하면 jmeter가 잘 뜨는 것을 확인할 수 있다.
그런데 실제 /usr/local/Cellar/jmeter/5.6.2/libexec/bin/jmeter 파일에 직접적으로 JAVA_HOME을 지정해줘야 실행이 가능했고, /usr/local/Cellar/jmeter/5.6.2/bin/jmeter이 JAVA_HOME을 설정하고 /usr/local/Cellar/jmeter/5.6.2/libexec/bin/jmeter 파일을 실행하는 파일인데, 이 부분에서 JAVA_HOME을 지정해주는 방법으로는 실행이 불가능했다. 꼭 직접 실행하는 파일에서 JAVA_HOME을 지정해줘야 실행이 됐다.
'공부흔적' 카테고리의 다른 글
Redis를 이용하여 조회수 동시성 이슈 해결하고 Jmeter로 테스트해보기 (0) | 2023.10.25 |
---|---|
RestTemplate, HttpClient, WebClient, RestClient (0) | 2023.08.22 |
도커로 Redis를 이용한 세션 클러스터링 실습 (0) | 2023.07.07 |
기존 OpenSSL 업데이트 실패하는 문제 (0) | 2023.06.29 |
Git에 대한 간단한 정리 (0) | 2023.03.19 |