Author Archives: opendocs

[Guide | JMeter] 서비스 성능 테스트

JMeter를 통해 성능테스트 하는 방법을 정리한다.


테스트클라이언트 : Windows10 + JMeter5.5
테스트서버 : Ubuntu22.04
작성일 : 2023-01-09

1> 아래 사이트에 접속하여 바이너리 파일을 다운로드 하고 압축을 해제한다.

https://jmeter.apache.org/download_jmeter.cgi

apache-jmeter-5.5.zip 파일 압축해제


2> JMeter 실행

압축해제 폴더/bin/jmeter.bat 실행


3> Thread Group 추가

Test Plan 우클릭 > Add > Threads(Users) > Thread Group

Number of Threads (users) : 사용자수
Ramp-up period (seconds) : 요청 반복주기
Loop Count : 반복횟수 (Infinite 체크시 무한반복)

※ 위와 같이 설정하면 10명의 유저로 10초에 한번씩 100번을 반복해 호출한다.


4> 요청값 설정

추가한 Thread Group (OpendocsTest) 우클릭 > Add > Sampler > HTTP Request

Protocol / Server Name or IP / Method(POST or GET) / Path / Parameters 입력


5> Listener 추가 (결과 확인)

Test Plan 우클릭 > Add > Listener > 유형선택

① ~ ⑥의 유형은 아래와 같은 결과를 보여준다.

① View Results Tree : 요청별로 상세정보를 확인할 수 있다.
– 결과값 / 요청값 / 응답데이터 확인가능
– 전체 요청에 대한 검색기능 제공

② View Results in Table : 모든 결과를 Table로 보여준다.
– Sample : ID번호
– Start Time : 부하 시작시간
– Thread Name : Thread Group Name
– Label : request 이름
– Sample Time(ms) : 요청 시작부터 응답 종료까지의 시간
(Load Time, Elapsed Time, Response Time 과 동일한 의미)
– Status : 응답 상태
– Bytes : 응답 데이터 바이트
– Sent Byte : 요청 데이터 바이트
– Latency : 요청 시작부터 응답 시작까지의 시간 (지연 속도)
– Connect Time(ms) : TCP Handshake 이후 연결된 시간
– No of Samples : 처리중인 데이터의 수
– Latest Sample : 가장 마지막 Sample Time
– Average : Sample Time 평균
– Deviation : Sample Time의 표준편차

③ Graph Result : 대략적인 그래프

④ Summery Report : 결과 레포트
– Samples : requset 갯수
– Average : Sample Time 평균
– Min : Sample Time 최소
– Max : Sample Time 최대
– Std. Dev. : Sample Time 표준편차
– Error % : 에러율
– Throughput : 시간당 처리량
– Received KB/sec : 시간당(sec) 받은 데이터(KB)
– Sent KB/sec : 시간당(sec) 보낸 데이터(KB)
– Avg. Bytes : 평균 바이트

⑤ Response Time Graph : 지속적인 추세 확인

[Tip | Ubuntu] zombie 프로세스 제거

프로세스를 종료 하였음에도 메모리가 정상해지 되지 않았거나 프로세스 엔트리에 남아 실행되고 있는 경우 이를 제거 하는 방법을 정리한다.


테스트서버 : Ubuntu22.04
작성일 : 2023-01-03

Zombie

On Unix operating systems, a zombie process or defunct process is a process that has completed execution but still has an entry in the process table, allowing the process that started it to read its exit status. In the term's colorful metaphor, the child process has died but has not yet been reaped.

When a process ends, all of the memory and resources associated with it are deallocated so they can be used by other processes. However, the process's entry in the process table remains. The parent is sent a SIGCHLD signal indicating that a child has died; the handler for this signal will typically execute the wait system call, which reads the exit status and removes the zombie. The zombie's process ID and entry in the process table can then be reused. However, if a parent ignores the SIGCHLD, the zombie will be left in the process table. In some situations this may be desirable, for example if the parent creates another child process it ensures that it will not be allocated the same process ID.

1> zombie 프로세서 확인

top
# ----------------------------------------
top - 10:13:56 up 4 days, 16:19,  2 users,  load average: 0.08, 0.53, 3.08
Tasks: 246 total,   1 running, 245 sleeping,   0 stopped,   0 zombie
%Cpu(s):  2.2 us,  0.7 sy,  0.0 ni, 97.1 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
# ----------------------------------------

zombie의 숫자가 1이상이라면 pid 를 확인하여 kill 해야한다.


2> pid 확인

ps axo stat,ppid,pid,comm | grep -w defunct
# ----------------------------------------
Z     544478  545217 ruby <defunct>
Z     544478  547937 ruby <defunct>
# ----------------------------------------

3> kill 프로세스

kill -9 544478

[Setting | WebtoB] 설치방법

리눅스 서버에 WebtoB를 설치하는 방법을 정리한다.

작성일 : 2022-07-13
OS : Ubuntu 22.04 LTS
WebtoB : 4.1 SP 9 fix #1

1> 데모라이센스 신청

tmaxsoft 사이트에 가입한 후 로그인


2> 데모라이센스 신청

우측 중간에 데모라이선스 신청을 클릭하고 사용정보를 입력

Hostname (리눅스 콘솔에서 ‘hostname’명령으로 확인), 회사명, 사용목적을 작성후 제출하기를 클릭


3> 라이센스 파일

가입한 이메일로 라이센스 파일(license.dat)이 발송됨. 해당파일을 서버에 적용시켜야 하므로 서버에 다운받아 놓음


4> 설치파일 다운로드

아래 메뉴에서 설치하고자 하는 버전을 다운받음

WEBTOB4_1_SP9_Fix1_LinuxK2_6_x64.bin 파일을 다운로드 받아 서버로 업로드


5> 설치파일 실행

chmod u+x WEBTOB4_1_SP9_Fix1_LinuxK2_6_x64.bin
./WEBTOB4_1_SP9_Fix1_LinuxK2_6_x64.bin

6> 약관동의 및 Install Set 선택

PRESS <ENTER> TO CONTINUE:
# 엔터로 계속
DO YOU ACCEPT THE TERMS OF THIS LICENSE AGREEMENT? (Y/N): y
# y + 엔터로 계속
===============================================================================
Choose Install Set
------------------

Please choose the Install Set to be installed by this installer.

  ->1- WebtoB
    2- Servlet + WebtoB

ENTER THE NUMBER FOR THE INSTALL SET, OR PRESS <ENTER> TO ACCEPT THE DEFAULT
   :
# 2 + 엔터

7> 설치폴더 입력

===============================================================================
Choose Install Folder
---------------------

Where would you like to install?

  Default Install Folder: /root/webtob

ENTER AN ABSOLUTE PATH, OR PRESS <ENTER> TO ACCEPT THE DEFAULT
      :
# /home/webtob + 엔터

8> JDK Path 입력

===============================================================================
Choose JDK Folder
-----------------

Please Choose a Folder:

Input User JDK Folder (DEFAULT: /usr):

아래 명령으로 JDK 1.6 설치

# oracle 에서 jdk 다운로드
sudo su
chmod +x jdk-6u45-linux-x64.bin
./jdk-6u45-linux-x64.bin
mkdir /home/env
mv jdk1.6.0_45 /home/env

9> 비밀번호 설정

===============================================================================
Password Input
--------------

Enter the Password for the administrator account. This password will be
registered in Servlet as the first user.

Input Password::

Corfirm Password::


10> 설치 확인

===============================================================================
Pre-Installation Summary
------------------------

Please Review the Following Before Continuing:

Product Name:
    WEBTOB4.1_SP9_Fix#1

Install Folder:
    /home/webtob

Install Set
    Servlet + WebtoB

Disk Space Information (for Installation Target):
    Required:  335,872,120 bytes
    Available: 23,808,159,744 bytes

PRESS <ENTER> TO CONTINUE:



===============================================================================
Ready To Install
----------------

Ready to install WEBTOB4.1_SP9_Fix#1 onto your system at the following
location:

   /home/webtob

PRESS <ENTER> TO INSTALL:



===============================================================================
Installing...
-------------

 [==================|==================|==================|==================]
 [------------------|------------------|------------------|------------------]



===============================================================================
Information
-----------

The administrator can set the maximum number of file descriptors as follows.
The machine needs a reboot in order for the configuration change to take
effect.

Linux 2.4 and later
-------------------
To check the current maximum number of file descriptors:
- Run "ulimit -Hn" on the command line.
This shows the hard limit.

To permanently change the maximum number of file descriptors:
- Open "/etc/security/limits.conf" with a text editor.
- Add a new line "*       hard      nofile     65536".
  65536 is the new maximum.  Change it as necessary.

PRESS <ENTER> TO CONTINUE:



===============================================================================
Install Complete
----------------

The installation of WEBTOB4.1_SP9_Fix#1 is complete, but some errors occurred
during the install.
   Please see the installation log for details.  Press "Done" to quit the
installer.

PRESS <ENTER> TO EXIT THE INSTALLER:


11> 라이센스 파일 복사

cp license.dat /home/webtob/license/

12> 환경변수 설정

sudo su
cd ~
vi .bashrc
# 아래내용 추가 후 저장
export WEBTOBDIR=/home/webtob
export PATH=$PATH:$WEBTOBDIR/bin
export PATH=$PATH:$WEBTOBDIR/lib

13> 환경파일 설정

vi ${WEBTOBDIR}/config/http.m

14> 환경파일 컴파일

cd ${WEBTOBDIR}/config
wscfl -i http.m
# jeus / webtob 모두 wscfl 파일이 있기 때문에 에러발생함
# 아래와 같이 실행해야함
${WEBTOBDIR}/bin/wscfl -i http.m
# 에러발생함 error while loading shared libraries: libwbiconv.so: cannot open shared object file: No such file or directory
# lib파일을 복사
cp ${WEBTOBDIR}/lib/libwbiconv.so /usr/lib/
# 다시실행
${WEBTOBDIR}/bin/wscfl -i http.m

15> WebtoB기동

${WEBTOBDIR}/bin/wsboot

16> 사이트 접속확인

http://[설치서버 IP]:8080