공유할 서비스 선택

TECH


TECH

OS OS내에 있는 stress-ng 도구를 사용하여 CPU, 메모리, HDD에 동시에 스트레스를 주는 방법을 안내해 드리겠습니다…

페이지 정보

작성자 OSworker 아이디로 검색 전체게시물 댓글 0건 조회 511회 좋아요 1회 작성일 24-05-19 22:08

본문

안녕하세요 

 

여러분들은 OS에 CPU, MEM, HDD등에 부하를 주실때 무엇을 사용하시나요? 보통 3rd party 제품을 많이 사용하시죠~

오늘은 RHEL 내에 있는 stress-ng를 소개시켜 드리려 합니다. 

 

제가 얼마전에 서버 장애 재현을 하기위해 부하 어플리케이션을 찾다가 이것을 써보니 괜찮다고 생각되어 이렇게 

안내 하게 되었습니다. 

 

 

1. 설명 

 

stress-ng 도구는 시스템이 불리한 조건에서 효율성을 유지하는 능력을 측정합니다. stress-ng 도구는 모든 커널 인터페이스에 부하를 걸고 스트레스를 주기 위한 스트레스 작업 생성기입니다. 이 도구는 스트레스 요인으로 알려진 다양한 스트레스 메커니즘을 포함합니다. 스트레스 테스트는 머신이 열 과부하나 시스템이 과도하게 작동될 때 발생하는 운영 체제 버그와 같은 하드웨어 문제를 유발하도록 열심히 작동하게 만듭니다.

 

270개 이상의 다양한 테스트가 있습니다. 여기에는 부동 소수점, 정수, 비트 조작, 제어 흐름, 가상 메모리 테스트를 수행하는 CPU 특정 테스트가 포함됩니다.

 

 

 

> 설치 

 -아래와 같이 dependencies 가 2가지 있습니다. 

 

 Judy-1.0.5-18.module+el8+2765+cfa4f87b.x86_64    <<<<<<<<<<<<<< 

 libatomic-8.5.0-20.el8.x86_64                                 <<<<<<<<<<<<<

stress-ng-0.15.00-1.el8.x86_64

 

 

# yum install stress-ng

 

Dependencies resolved.

=====================================================================================================================================================================================================

 Package                             Architecture                     Version                                                       Repository                                                  Size

=====================================================================================================================================================================================================

Installing:

 stress-ng                           x86_64                           0.15.00-1.el8                                                 rhel-8-for-x86_64-appstream-rpms                           2.1 M

Installing dependencies:

 Judy                                x86_64                           1.0.5-18.module+el8+2765+cfa4f87b                             rhel-8-for-x86_64-appstream-rpms                           131 k

 libatomic                           x86_64                           8.5.0-20.el8                                                  rhel-8-for-x86_64-baseos-rpms                               25 k

Enabling module streams:

 mariadb                                                              10.3

 

Transaction Summary

=====================================================================================================================================================================================================

Install  3 Packages

..........

........

.....

Installed:

  Judy-1.0.5-18.module+el8+2765+cfa4f87b.x86_64                              libatomic-8.5.0-20.el8.x86_64                              stress-ng-0.15.00-1.el8.x86_64

 

Complete!

 

 

-----------------------------------------------

사전 요구 사항

시스템에 대한 root 권한이 있어야 합니다.

-----------------------------------------------

 

 

 

> 사용 법 및 예제 테스트 

 

- 한 CPU에서 60초 동안 부동 소수점을 테스트하려면 --matrix 옵션을 사용합니다.

 

# stress-ng --matrix 1 -t 1m

 

. 아래 그래프를 보면 CPU가 치는것을 확인할 수 있습니다. 

038b4b20bbda523953c9a3127677fa7d_1716123982_9131.png
 

 

 

 

 

- 다음과 같이 CPU 강조 표시기 인스턴스를 여러 개 실행합니다.

 

# stress-ng --cpu 2 --matrix 1 --mq 3 -t 5m

 

- 모든 stress 테스트를 병렬로 실행하려면 -all 옵션을 사용합니다.

 

# stress-ng --all 2

 

이 예에서 stress-ng 는 모든 과부하 테스트의 두 인스턴스를 병렬로 실행합니다.

 

=>> 저는 이테스트를 하니 VM이 죽는 현상이 있었습니다. 서버에 부하가 많이 간것이죠....

 

- MEM test

 가상 메모리를 테스트하도록 하려면 --page-in 옵션을 사용합니다.

 

# stress-ng --vm 2 --vm-bytes 2G --mmap 2 --mmap-bytes 2G --page-in

stress-ng: info:  [5430] defaulting to a 86400 second (1 day, 0.00 secs) run per stressor

stress-ng: info:  [5430] dispatching hogs: 2 vm, 2 mmap

 

이 예에서는 할당된 버퍼 크기, 2 x 2GB의 vm stressor 및 --page -in 이 활성화된 2 x 2GB의 mmap 강조 기보다 작은 메모리가 4GB인 시스템에서 메모리 부족을 테스트합니다.

 

038b4b20bbda523953c9a3127677fa7d_1716124031_8119.png 

 

 

- 인터럽트 로드를 생성하려면 --timer 옵션을 사용합니다.

# stress-ng --timer 32 --timer-freq 1000000

 

이 예에서는 stress-ng 테스트 32개의 인스턴스 1ECDHE를 테스트합니다.

 

 

- 파일 시스템 스트레스 테스트 (fallocate): 파일을 할당하여 파일 시스템에 부하를 줄 수 있습니다.

# stress-ng --fallocate 1 --timeout 60s

stress-ng: info:  [6078] setting to a 60 second run per stressor

stress-ng: info:  [6078] dispatching hogs: 1 fallocate

stress-ng: warn:  [6079] fallocate: WARNING: finished prematurely after just 12.98s

stress-ng: info:  [6078] successful run completed in 12.48s

 

 

> 모니터링 같이 해봤습니다. 

avg-cpu:  %user   %nice %system %iowait  %steal   %idle

           5.76    0.00    0.75    0.00    0.00   93.48

 

Device             tps    kB_read/s    kB_wrtn/s    kB_read    kB_wrtn

vda               0.00         0.00         0.00          0          0

scd0              0.00         0.00         0.00          0          0

dm-0              0.00         0.00         0.00          0          0

dm-1              0.00         0.00         0.00          0          0

 

avg-cpu:  %user   %nice %system %iowait  %steal   %idle

           3.02    0.00    1.76    0.38    0.00   94.85

 

Device             tps    kB_read/s    kB_wrtn/s    kB_read    kB_wrtn

vda            4123.00     24736.00      4193.50      24736       4193         <<<<<<<<<<<<<< 증가 

scd0              0.00         0.00         0.00          0          0

dm-0           3014.00     18344.00      4197.50      18344       4197

dm-1           1598.00      6392.00         0.00       6392          0

 

avg-cpu:  %user   %nice %system %iowait  %steal   %idle

           1.50    0.00    1.50    0.00    0.12   96.88

 

Device             tps    kB_read/s    kB_wrtn/s    kB_read    kB_wrtn

vda            5035.00        16.00      7273.00         16       7273    <<<<<<<<<<<<<< 증가 

scd0              0.00         0.00         0.00          0          0

dm-0           5035.00         0.00      7269.00          0       7269

dm-1              4.00        16.00         0.00         16          0

 

avg-cpu:  %user   %nice %system %iowait  %steal   %idle

           1.38    0.00    1.75    0.00    0.00   96.87

 

Device             tps    kB_read/s    kB_wrtn/s    kB_read    kB_wrtn

vda            4955.00         8.00      7004.00          8       7004

scd0              0.00         0.00         0.00          0          0

dm-0           4953.00         0.00      7004.00          0       7004

dm-1              2.00         8.00         0.00          8          0

 

avg-cpu:  %user   %nice %system %iowait  %steal   %idle

           1.88    0.00    1.75    0.38    0.00   95.99

 

Device             tps    kB_read/s    kB_wrtn/s    kB_read    kB_wrtn

vda            6137.00     26120.00      6919.00      26120       6919     <<<<<<<<<<<<<< 증가 

scd0              0.00         0.00         0.00          0          0

dm-0           4962.00     17152.00      6919.00      17152       6919

dm-1           2242.00      8968.00         0.00       8968          0

 

avg-cpu:  %user   %nice %system %iowait  %steal   %idle

           2.89    0.00    2.14    1.01    0.00   93.96

 

Device             tps    kB_read/s    kB_wrtn/s    kB_read    kB_wrtn

vda            7982.00    109460.00      7490.00     109460       7490       <<<<<<<<<<<<<< 증가 

scd0              0.00         0.00         0.00          0          0

dm-0           5371.00     73992.00      7494.00      73992       7494

dm-1           8867.00     35468.00         0.00      35468          0

 

 

그외 HDD 부하 테스트 방법

 

# stress-ng --disk 1 --disk-bytes 1G --timeout 60s

. 이 명령은 1GB의 데이터를 디스크에 쓰는 작업을 1분 동안 수행합니다.

 

# stress-ng --iomix 1 --timeout 60s

랜덤 I/O 스트레스 테스트 (iomix): 랜덤 읽기/쓰기를 통해 디스크에 부하를 줄 수 있습니다.

 

# stress-ng --disk 4 --disk-bytes 500M --timeout 60s

동시 다중 디스크 스트레스 테스트:

 

 

 

 

- stress-ng 도구를 사용하여 CPU, 메모리, HDD에 동시에 스트레스를 주는 방법을 안내해 드리겠습니다. 

  stress-ng는 여러 유형의 스트레스를 동시에 주는 기능을 제공합니다.

 

# stress-ng --cpu 4 --vm 2 --vm-bytes 1G --disk 2 --timeout 60s

 

 

이 명령어의 구성 요소를 설명하면 다음과 같습니다:

 

--cpu 4: 4개의 CPU 스트레스 작업을 실행합니다.

--vm 2: 2개의 가상 메모리 스트레스 작업을 실행합니다.

--vm-bytes 1G: 각 가상 메모리 스트레스 작업이 1GB의 메모리를 할당하도록 설정합니다.

--disk 2: 2개의 디스크 스트레스 작업을 실행합니다.

--timeout 60s: 모든 스트레스 작업을 60초 동안 실행합니다.

이 명령어는 CPU, 메모리, 디스크에 동시에 부하를 주어 시스템의 전체적인 성능과 안정성을 테스트할 수 있습니다. 시스템의 성능과 하드웨어 상태에 따라 이 값을 조절할 수 있습니다.

 

주의: 실제 시스템에서 이 명령어를 실행할 때는 주의가 필요합니다. 과도한 부하는 시스템 성능 저하 및 하드웨어 손상을 초래할 수 있으므로 테스트 환경에서 충분히 검토한 후 실제 환경에서 사용하시기 바랍니다.

 

 

OS내에 부하 가능한 패키지가 있어서 따로 준비안해도 되는것이 좋은 것 같습니다. 

 

감사합니다. 

댓글목록

등록된 댓글이 없습니다.

TECH 목록
번호 제목 작성자 작성일 조회수
219 Middleware 미들웨어 아이디로 검색 전체게시물 07-22 29
(오픈소스 활용-33) "ISTIO 이스티오" 쿠버네티스 서비스 시각화 구현에 필요한 데모설치

카테고리 : Middleware

29 0
작성자 : 미들웨어 24/07/22
218 OS OSworker 아이디로 검색 전체게시물 07-21 50
RHEL7.9 가 2028년 6월30일까지 지원되시는거 아시나요? #ELS

카테고리 : OS

50 0
작성자 : OSworker 24/07/21
217 OS OSworker 아이디로 검색 전체게시물 07-10 140
[보안취약점] OpenSSH의 서버(sshd)에서 보안 회귀(CVE-2006-5051)가 발견되었습니다.

카테고리 : OS

140 0
작성자 : OSworker 24/07/10
216 Middleware 미들웨어 아이디로 검색 전체게시물 07-10 74
(Apache) mod_wl.so 에서 sticky session 사용방법 정리

카테고리 : Middleware

74 0
작성자 : 미들웨어 24/07/10
215 OS OSworker 아이디로 검색 전체게시물 06-29 131
CVE, RHSA, RHBA 의 대해 아시나요?

카테고리 : OS

131 0
작성자 : OSworker 24/06/29
214 Middleware 미들웨어 아이디로 검색 전체게시물 06-24 145
(오픈소스 활용-32) Apache Kafka 란? 다운로드 및 샘플 소개

카테고리 : Middleware

145 0
작성자 : 미들웨어 24/06/24
213 OS OSworker 아이디로 검색 전체게시물 06-23 231
Red Hat Enterprise Linux 8.10 에 대해 간략하게 알아보겠습니다.~

카테고리 : OS

231 0
작성자 : OSworker 24/06/23
212 OS OSworker 아이디로 검색 전체게시물 06-09 357
패키지의 변경 로그를 보는 방법에 대해 아시나요? #chagelog

카테고리 : OS

357 0
작성자 : OSworker 24/06/09
211 Middleware 미들웨어 아이디로 검색 전체게시물 06-07 338
(Apache) Apache & Webtier에서 Nginx와 동일한 비동기 방식 처리 하기 (MPM-event)

카테고리 : Middleware

338 0
작성자 : 미들웨어 24/06/07
210 OS OSworker 아이디로 검색 전체게시물 05-25 549
Log를 한 곳에서 볼 수 있도록 Log Server 구성에 대해 알아보겠습니다.

카테고리 : OS

549 0
작성자 : OSworker 24/05/25
Total 219건
게시물 검색

주식회사 클럭스| 대표 : 이찬호| 사업자등록번호 : 107-87-27655
주소 : 서울특별시 영등포구 국회대로 800, 여의도파라곤
E-mail : sales@chlux.co.kr
Copyright © 클럭스 www.chlux.co.kr All rights reserved.
상단으로Top