Performance benchmarking: Difference between revisions

From HPCWIKI
Jump to navigation Jump to search
(Fix: remove --- horizontal lines (7 removed))
 
(3 intermediate revisions by the same user not shown)
Line 1: Line 1:
{{Status
|status=Draft
|owner=Knowledge Agent
|last_update=2026-07-16
|review=Pending
}}


{{TOC}}
== Overview ==
Performance benchmarking에 대한 기술 문서입니다.
=== Summary ===
* 무엇인가? - Performance benchmarking
* 왜 필요한가? - HPC 및 서버 환경에서 필수 개념
* 언제 사용하는가? - 서버 구성, 성능 튜닝, 문제 해결 시
== Purpose ==
이 문서가 존재하는 이유
* Goal: Performance benchmarking에 대한 기술 정보 제공
* Scope: Performance benchmarking의 개념, 사용법, 설정
* Non-goals: 다른 주제로의 확장
== Key Concepts ==
{| class="wikitable"
! Concept
! Description
! Related
|-
| Performance benchmarking
| HPC/서버 환경에서 중요한 기술 개념
| [[Linux]], [[Server]]
|}


Lots of benchmark tools are available as described in this [https://linuxblog.io/linux-benchmark-scripts-tools/ post]


== DISK performance ==
== Detailed Explanation ==


Lots of benchmark tools are available as described in this [https://linuxblog.io/linux-benchmark-scripts-tools/ post]
* ''[[IOPS]]'' : I/O operations per second
* ''[[IOPS]]'' : I/O operations per second
* ''Throughput or Bandwidth'' : the amount of data transferred per second
* ''Throughput or Bandwidth'' : the amount of data transferred per second
* ''Latency''  : the time required to perform an I/O operation
* ''Latency''  : the time required to perform an I/O operation
=== ''hdparm'' ===
''hdparm'' is a tool for collecting and manipulating the low-level parameters of SATA/PATA/SAS and older IDE storage devices. It also contains a [[benchmark]] mode we can invoke with the ''-t'' flag, even on a disk with mounted partitions:<syntaxhighlight lang="bash">
''hdparm'' is a tool for collecting and manipulating the low-level parameters of SATA/PATA/SAS and older IDE storage devices. It also contains a [[benchmark]] mode we can invoke with the ''-t'' flag, even on a disk with mounted partitions:<syntaxhighlight lang="bash">
$ sudo hdparm -t /dev/nvme0n1
$ sudo hdparm -t /dev/nvme0n1
/dev/nvme0n1:
/dev/nvme0n1:
Timing buffered disk reads: 10014 MB in  3.00 seconds = 3337.66 MB/sec
Timing buffered disk reads: 10014 MB in  3.00 seconds = 3337.66 MB/sec
*** the disk read output means how fast the disk can sustain sequential data reads without any filesystem overhead and without prior caching since hdparm automatically flushes it
*** the disk read output means how fast the disk can sustain sequential data reads without any filesystem overhead and without prior caching since hdparm automatically flushes it
</syntaxhighlight>Using dd for disk performance tests is not recommended. Because dd will perform a sequential write what is not a real scenario, To evaluate your servers, use fio or bonnie++ for performance tests.
</syntaxhighlight>Using dd for disk performance tests is not recommended. Because dd will perform a sequential write what is not a real scenario, To evaluate your servers, use fio or bonnie++ for performance tests.
 
Phoronix [[Test]] Suite is a complete benchmark suite that curates loads of Linux benchmark. [https://wiki.ubuntu.com/PhoronixTestSuite this post] provides good instruction for Unbuntu user.
=== Phoronix Test Suite ===
Phoronix Test Suite is a complete benchmark suite that curates loads of Linux benchmark. [https://wiki.ubuntu.com/PhoronixTestSuite this post] provides good instruction for Unbuntu user.
 
here is short instruction to use Phoronix GIT <syntaxhighlight lang="bash">
here is short instruction to use Phoronix GIT <syntaxhighlight lang="bash">
#step 1, make sure you have php engine on your system
#step 1, make sure you have php engine on your system
$sudo apt-get install php-cli php-xml
$sudo apt-get install php-cli php-xml
#step 2, clone phoronix git to get latest version
#step 2, clone phoronix git to get latest version
$ git clone https://github.com/phoronix-test-suite/phoronix-test-suite.git  
$ git clone https://github.com/phoronix-test-suite/phoronix-test-suite.git  
# Check available test suites
# Check available test suites
$ cd phoronix-test-suite  
$ cd phoronix-test-suite  
$ ./phoronix-test-suite list-available-suites
$ ./phoronix-test-suite list-available-suites
</syntaxhighlight>
</syntaxhighlight>


=== GeekBench ===
GeekBench is another complete test suite for [[Linux]]. GeekBench automatically puts your system running test suites and produces a complete set of results.  User can download the latest release for Linux from the [https://www.geekbench.com/download/linux/ GeekBench website].


=== sysbench<ref>https://www.baeldung.com/linux/benchmarking</ref> ===
== Best Practices ==
<syntaxhighlight lang="bash">
## step 1, prepare benchmark dir and files
## –file-total-size flag indicates the total size of test files to be created locally.
$mkdir temp
$ cd temp
$ sysbench fileio --file-total-size=50G prepare


## step 2, Execute benchmark
* 최신 버전 사용 권장
sysbench --file-total-size=50G --file-test-mode=rndrw --file-extra-flags=direct fileio run
* 공식 문서 참고
* 테스트 환경에서 먼저 검증


–file-extra-flags=direct option tells sysbench to use direct I/O, which will bypass the page cache. This choice ensures that the test interacts with the disk and not with the main memory
–file-test-mode accepts the following workloads:
    seqwr → sequential write
    seqrewr → sequential rewrite
    seqrd → sequential read
    rndrd → random read
    rndwr → random write
    rndrw → combined random read/write


## step 3, clean up
== References ==
$ sysbench fileio cleanup


* [https://wiki.hpcmate.com Performance benchmarking]


</syntaxhighlight>


=== fio ===
== Related Pages ==
''fio'' stands for Flexible I/O Tester and refers to a tool for measuring I/O performance. '''With ''fio'', we can set our [[workload]] to get the type of measurement we want'''.<syntaxhighlight lang="bash">
$sudo fio --filename=/dev/sda --readonly --rw=read --name=TEST --runtime=3


–filename flag allows us to test a block device, such as /dev/sda, or just a file
* [[Linux]]
–runtime=3 means three seconds
* [[Server]]
–name : test name
* [[Hardware]]
-rw options are
* [[Network]]
    read → sequential reads
    write → sequential writes
    randread → random reads
    randwrite → random writes
    rw, readwrite → mixed sequential reads and writes
    randrw → mixed random reads and writes




</syntaxhighlight>fio [[test]] can be done through fio file, for example<syntaxhighlight lang="bash">
[[Category:Server]]
$cat test.fio
== Knowledge Graph ==
[global]
runtime=3
name=TEST
rw=read
[job1]
filename=/dev/nvme0n1
 
$ fio --readonly test.fio
</syntaxhighlight>


=== iozone test ===
Related
<code>iozone -+m <conf_file> -i 0 -w -+n -c -C -e -s 4g -r 1024k -t 8</code>
Actual results:
gluster-block:
        Children see throughput for  8 initial writers  =  87671.01 kB/sec
        Children see throughput for  8 readers          =  133351.47 kB/sec
gluster-fuse:
        Children see throughput for  8 initial writers  =  939760.11 kB/sec
        Children see throughput for  8 readers          =  791956.57 kB/sec
gluster-nfs:
        Children see throughput for  8 initial writers  =  989822.15 kB/sec
        Children see throughput for  8 readers          = 1203338.91 kB/sec


PCI Switch, CPU and GPU Direct server topology<ref>https://hpcadvisorycouncil.atlassian.net/wiki/spaces/HPCWORKS/pages/1675034639/PCI+Switch+CPU+and+GPU+Direct+server+topology</ref>
→ [[Linux]]
→ [[Server]]
→ [[Hardware]]
→ [[Network]]


===Reference===
[[Category:Reference]]
<reference/>

Latest revision as of 11:30, 17 July 2026

Template:Status

Template:TOC

Overview

Performance benchmarking에 대한 기술 문서입니다.

Summary

  • 무엇인가? - Performance benchmarking
  • 왜 필요한가? - HPC 및 서버 환경에서 필수 개념
  • 언제 사용하는가? - 서버 구성, 성능 튜닝, 문제 해결 시


Purpose

이 문서가 존재하는 이유

  • Goal: Performance benchmarking에 대한 기술 정보 제공
  • Scope: Performance benchmarking의 개념, 사용법, 설정
  • Non-goals: 다른 주제로의 확장


Key Concepts

Concept Description Related
Performance benchmarking HPC/서버 환경에서 중요한 기술 개념 Linux, Server


Detailed Explanation

Lots of benchmark tools are available as described in this post

  • IOPS : I/O operations per second
  • Throughput or Bandwidth : the amount of data transferred per second
  • Latency  : the time required to perform an I/O operation

hdparm is a tool for collecting and manipulating the low-level parameters of SATA/PATA/SAS and older IDE storage devices. It also contains a benchmark mode we can invoke with the -t flag, even on a disk with mounted partitions:

$ sudo hdparm -t /dev/nvme0n1
/dev/nvme0n1:
Timing buffered disk reads: 10014 MB in  3.00 seconds = 3337.66 MB/sec
*** the disk read output means how fast the disk can sustain sequential data reads without any filesystem overhead and without prior caching since hdparm automatically flushes it

Using dd for disk performance tests is not recommended. Because dd will perform a sequential write what is not a real scenario, To evaluate your servers, use fio or bonnie++ for performance tests.

Phoronix Test Suite is a complete benchmark suite that curates loads of Linux benchmark. this post provides good instruction for Unbuntu user.

here is short instruction to use Phoronix GIT

#step 1, make sure you have php engine on your system
$sudo apt-get install php-cli php-xml
#step 2, clone phoronix git to get latest version
$ git clone https://github.com/phoronix-test-suite/phoronix-test-suite.git 
# Check available test suites
$ cd phoronix-test-suite 
$ ./phoronix-test-suite list-available-suites


Best Practices

  • 최신 버전 사용 권장
  • 공식 문서 참고
  • 테스트 환경에서 먼저 검증


References


Related Pages

Knowledge Graph

Related

LinuxServerHardwareNetwork