{
    "componentChunkName": "component---src-templates-blog-post-tsx",
    "path": "/proxmox-vmbr-01/",
    "result": {"data":{"site":{"siteMetadata":{"title":"vulcan Blog"}},"markdownRemark":{"id":"a2d3c9b2-68b5-5649-8641-e423b3e75c70","tableOfContents":"<ul>\n<li><a href=\"#%EC%8B%9C%EC%9E%91\">시작</a></li>\n<li><a href=\"#%ED%99%98%EA%B2%BD\">환경</a></li>\n<li><a href=\"#1-%ED%85%8C%EC%8A%A4%ED%8A%B8-%EA%B0%9C%EC%9A%94\">1. 테스트 개요</a></li>\n<li><a href=\"#2-%ED%85%8C%EC%8A%A4%ED%8A%B8-%EC%8A%A4%ED%81%AC%EB%A6%BD%ED%8A%B8\">2. 테스트 스크립트</a></li>\n<li><a href=\"#3-%ED%85%8C%EC%8A%A4%ED%8A%B8-%EA%B2%B0%EA%B3%BC\">3. 테스트 결과</a></li>\n<li><a href=\"#4-%ED%85%8C%EC%8A%A4%ED%8A%B8-%EB%B6%84%EC%84%9D\">4. 테스트 분석</a></li>\n</ul>","excerpt":"시작 Proxmox에서 보통 VM이나 CT에 네트워크를 할당할 때는 linux bridge를 사용한다. nic의 포트를 linux brige에 할당해서 사용하거나 같은 linux bridge에서 여러 VM이 통신을 할 수 있다. 여기서 nic…","html":"<h1 id=\"시작\" style=\"position:relative;\">시작<a href=\"#%EC%8B%9C%EC%9E%91\" aria-label=\"시작 permalink\" class=\"heading-anchor after\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a></h1>\n<p>Proxmox에서 보통 VM이나 CT에 네트워크를 할당할 때는 linux bridge를 사용한다. nic의 포트를 linux brige에 할당해서 사용하거나 같은 linux bridge에서 여러 VM이 통신을 할 수 있다. 여기서 nic의 포트 밖으로 나가지 않는 트래픽은 linux bridge에서 처리하는데 이 경우 host의 cpu가 처리하게 된다. 이 cpu는 네트워크 브릿징에 최적화된 칩이 아니기 때문에 속도에 제약이 발생할 수밖에 없다. 이 글에서는 proxmox의 linux bridge에서 내부적으로 낼 수 있는 최대 대역폭이 얼마인지를 테스트해 보려고 한다. (이 속도는 사용하는 cpu의 종류, 클럭에 따라 다를 수 있다.)</p>\n<h1 id=\"환경\" style=\"position:relative;\">환경<a href=\"#%ED%99%98%EA%B2%BD\" aria-label=\"환경 permalink\" class=\"heading-anchor after\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a></h1>\n<ul>\n<li>하드웨어 : AMD EPYC Milan 7T83, 2933Mhz 채널당 2 dimm</li>\n<li>proxmox version : proxmox-ve: 8.4.0 (running kernel: 6.8.12-9-pve)</li>\n<li>Test VM : 42 core, 128GB</li>\n<li>MTU : 9000</li>\n</ul>\n<p>아래와 같이 MTU가 바르게 설정됐는지 확인할 수 있다.\n<span\n      class=\"gatsby-resp-image-wrapper\"\n      style=\"position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 630px; \"\n    >\n      <a\n    class=\"gatsby-resp-image-link\"\n    href=\"/static/910a6145b857029866a0f56a51e88626/d6a46/ping.png\"\n    style=\"display: block\"\n    target=\"_blank\"\n    rel=\"noopener\"\n  >\n    <span\n    class=\"gatsby-resp-image-background-image\"\n    style=\"padding-bottom: 41.77215189873418%; position: relative; bottom: 0; left: 0; background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAICAYAAAD5nd/tAAAACXBIWXMAABYlAAAWJQFJUiTwAAABQElEQVQozz2SWY7CQAxE+zL8sAiRhJ1A9nTYQ0Yw3P8gNXqWej6sjqvtcpU7rmpOqpuTqiZV43NleaaqqlSWpUWe5yqKQm3bqmka3e933W43q9lut5rP59psNppOpxqNRnLf71fD8CPvO/nW63w+y3tvTY/Hwwjqujas6zrLGXS5XAyj5vl82h0D3Gvodb1eTcHhcDA1BAUEqtI0tXtySFBEfjwebXBQT537fN7q+96UQUQDilDAIHBshwFgEIGjNPTSB+4+v2+TDEGWZTaNwBoRCCEiwHBCPQKGYTAcQvpdUeZar9daLpdaLBaK4/j/TJLEThbPGYIHiKLI8NDHN7iLk8i8swOUMAkr5CjhmxWwN0hms5k1TyYTi/F4bHkQ4fIiswZsYgErBOS73c6Iw+74VYK9YBGi1WplL7zf7/UHm2oa6wQMeJ0AAAAASUVORK5CYII='); background-size: cover; display: block;\"\n  ></span>\n  <img\n        class=\"gatsby-resp-image-image\"\n        alt=\"ping\"\n        title=\"ping\"\n        src=\"/static/910a6145b857029866a0f56a51e88626/f058b/ping.png\"\n        srcset=\"/static/910a6145b857029866a0f56a51e88626/c26ae/ping.png 158w,\n/static/910a6145b857029866a0f56a51e88626/6bdcf/ping.png 315w,\n/static/910a6145b857029866a0f56a51e88626/f058b/ping.png 630w,\n/static/910a6145b857029866a0f56a51e88626/40601/ping.png 945w,\n/static/910a6145b857029866a0f56a51e88626/d6a46/ping.png 1008w\"\n        sizes=\"(max-width: 630px) 100vw, 630px\"\n        style=\"width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;\"\n        loading=\"lazy\"\n        decoding=\"async\"\n      />\n  </a>\n    </span></p>\n<h1 id=\"1-테스트-개요\" style=\"position:relative;\">1. 테스트 개요<a href=\"#1-%ED%85%8C%EC%8A%A4%ED%8A%B8-%EA%B0%9C%EC%9A%94\" aria-label=\"1 테스트 개요 permalink\" class=\"heading-anchor after\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a></h1>\n<p>테스트의 주요 목표는 다음과 같다:</p>\n<ul>\n<li>vmdr Multiqueue 값 조정: Proxmox VM 내 네트워크 인터페이스의 multiqueue 수를 1, 2, 4, 8, 16, 32, 40으로 순차적으로 변경하여 테스트 진행</li>\n<li>iperf3 병렬 채널 구성: 각 multiqueue 값에 대해 iperf3 테스트 채널 수를\n<ul>\n<li>\n<p>기본 (1배): 현재 queue 수와 동일</p>\n</li>\n<li>\n<p>2배: 현재 queue 수의 두 배</p>\n</li>\n<li>\n<p>4배: 현재 queue 수의 네 배</p>\n<p>로 설정하여 성능 비교</p>\n</li>\n</ul>\n</li>\n<li>성능 분석: 각 테스트 단계별로 네트워크 throughput, 지연 시간, 패킷 손실 및 CPU 부하 등을 측정하여 최적의 설정을 도출</li>\n</ul>\n<h1 id=\"2-테스트-스크립트\" style=\"position:relative;\">2. 테스트 스크립트<a href=\"#2-%ED%85%8C%EC%8A%A4%ED%8A%B8-%EC%8A%A4%ED%81%AC%EB%A6%BD%ED%8A%B8\" aria-label=\"2 테스트 스크립트 permalink\" class=\"heading-anchor after\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a></h1>\n<div class=\"gatsby-highlight\" data-language=\"sh\"><pre class=\"language-sh\"><code class=\"language-sh\">#!/bin/bash\nif [ &quot;$#&quot; -ne 1 ]; then\n    echo &quot;Usage: $0 &lt;queue_number&gt;&quot;\n    exit 1\nfi\n\nQUEUE=&quot;$1&quot;\nSERVER_IP=&quot;192.168.0.84&quot;\nTEST_TIME=30\nOUTPUT_FILE=&quot;queue_${QUEUE}.txt&quot;\n\nif [ -f &quot;$OUTPUT_FILE&quot; ]; then\n    rm -f &quot;$OUTPUT_FILE&quot;\nfi\n\nfor MULT in 1 2 4; do\n    CHANNELS=$(( QUEUE * MULT ))\n    echo &quot;==========================&quot; | tee -a &quot;$OUTPUT_FILE&quot;\n    echo &quot;채널 수: ${CHANNELS} (입력 queue: ${QUEUE}, multiplier: ${MULT})&quot; | tee -a &quot;$OUTPUT_FILE&quot;\n    echo &quot;테스트 시작: $(date)&quot; | tee -a &quot;$OUTPUT_FILE&quot;\n    echo &quot;--------------------------&quot; | tee -a &quot;$OUTPUT_FILE&quot;\n\n    iperf3 -c &quot;$SERVER_IP&quot; -P &quot;$CHANNELS&quot; -t &quot;$TEST_TIME&quot; &gt;&gt; &quot;$OUTPUT_FILE&quot; 2&gt;&amp;1\n\n    echo &quot;테스트 종료: $(date)&quot; | tee -a &quot;$OUTPUT_FILE&quot;\n    echo &quot;&quot; | tee -a &quot;$OUTPUT_FILE&quot;\n    echo &quot;&quot; | tee -a &quot;$OUTPUT_FILE&quot;\n\n    sleep 5\ndone\n\necho &quot;테스트 완료. 결과는 ${OUTPUT_FILE} 파일을 확인하세요.&quot;</code></pre></div>\n<h1 id=\"3-테스트-결과\" style=\"position:relative;\">3. 테스트 결과<a href=\"#3-%ED%85%8C%EC%8A%A4%ED%8A%B8-%EA%B2%B0%EA%B3%BC\" aria-label=\"3 테스트 결과 permalink\" class=\"heading-anchor after\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a></h1>\n<p>자세한 결과는 <a href=\"https://github.com/firekann/vulcan.site/tree/master/content/blog/proxmox-vmbr-01\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">여기</a>의 파일을 확인하자.</p>\n<table>\n<thead>\n<tr>\n<th>Queue</th>\n<th>채널 수</th>\n<th>대역폭 (Gbit/sec)</th>\n<th>Server VM CPU (%)</th>\n<th>Proxmox CPU (%)</th>\n<th>Client VM CPU (%)</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>1</td>\n<td>1</td>\n<td>12.7</td>\n<td>1</td>\n<td>3</td>\n<td>2</td>\n</tr>\n<tr>\n<td>1</td>\n<td>2</td>\n<td>25.8</td>\n<td>4</td>\n<td>5</td>\n<td>5</td>\n</tr>\n<tr>\n<td>1</td>\n<td>4</td>\n<td>28.5</td>\n<td>4</td>\n<td>4</td>\n<td>2</td>\n</tr>\n<tr>\n<td>2</td>\n<td>2</td>\n<td>27.8</td>\n<td>4</td>\n<td>4</td>\n<td>2</td>\n</tr>\n<tr>\n<td>2</td>\n<td>4</td>\n<td>27.7</td>\n<td>4</td>\n<td>4</td>\n<td>2</td>\n</tr>\n<tr>\n<td>2</td>\n<td>8</td>\n<td>28.7</td>\n<td>4</td>\n<td>4</td>\n<td>2</td>\n</tr>\n<tr>\n<td>4</td>\n<td>4</td>\n<td>27.1</td>\n<td>4</td>\n<td>4</td>\n<td>2</td>\n</tr>\n<tr>\n<td>4</td>\n<td>8</td>\n<td>29.1</td>\n<td>2</td>\n<td>5</td>\n<td>2</td>\n</tr>\n<tr>\n<td>4</td>\n<td>16</td>\n<td>56.2</td>\n<td>9</td>\n<td>10</td>\n<td>6</td>\n</tr>\n<tr>\n<td>8</td>\n<td>8</td>\n<td>52.6</td>\n<td>8</td>\n<td>10</td>\n<td>6</td>\n</tr>\n<tr>\n<td>8</td>\n<td>16</td>\n<td>64.1</td>\n<td>12</td>\n<td>15</td>\n<td>9</td>\n</tr>\n<tr>\n<td>8</td>\n<td>32</td>\n<td>66.6</td>\n<td>23</td>\n<td>29</td>\n<td>16</td>\n</tr>\n<tr>\n<td>16</td>\n<td>16</td>\n<td>71.4</td>\n<td>12</td>\n<td>19</td>\n<td>13</td>\n</tr>\n<tr>\n<td>16</td>\n<td>32</td>\n<td>74.4</td>\n<td>41</td>\n<td>48</td>\n<td>30</td>\n</tr>\n<tr>\n<td>16</td>\n<td>64</td>\n<td>71.0</td>\n<td>39</td>\n<td>44</td>\n<td>26</td>\n</tr>\n<tr>\n<td>32</td>\n<td>32</td>\n<td>76.4</td>\n<td>65</td>\n<td>50</td>\n<td>30</td>\n</tr>\n<tr>\n<td>32</td>\n<td>64</td>\n<td>72.7</td>\n<td>78</td>\n<td>65</td>\n<td>30</td>\n</tr>\n<tr>\n<td>32</td>\n<td>128</td>\n<td>75.8</td>\n<td>55</td>\n<td>53</td>\n<td>30</td>\n</tr>\n<tr>\n<td>40</td>\n<td>40</td>\n<td>77.2</td>\n<td>40</td>\n<td>40</td>\n<td>26</td>\n</tr>\n<tr>\n<td>40</td>\n<td>80</td>\n<td>69.2</td>\n<td>96</td>\n<td>30</td>\n<td>13</td>\n</tr>\n<tr>\n<td>40</td>\n<td>128</td>\n<td>70.7</td>\n<td>96</td>\n<td>44</td>\n<td>18</td>\n</tr>\n</tbody>\n</table>\n<ul>\n<li>40 * 4의 경우 160으로 iperf3의 최대 채널 수 128을 초과하기에 128로 낮춰서 테스트했음.</li>\n</ul>\n<p><span\n      class=\"gatsby-resp-image-wrapper\"\n      style=\"position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 630px; \"\n    >\n      <a\n    class=\"gatsby-resp-image-link\"\n    href=\"/static/0100103488be5f982ac89fb12a7ffac1/8ecb0/bandwidth.png\"\n    style=\"display: block\"\n    target=\"_blank\"\n    rel=\"noopener\"\n  >\n    <span\n    class=\"gatsby-resp-image-background-image\"\n    style=\"padding-bottom: 59.49367088607595%; position: relative; bottom: 0; left: 0; background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAMCAYAAABiDJ37AAAACXBIWXMAAA9hAAAPYQGoP6dpAAABrElEQVQoz42T6Y7bMAyEHR+SddhSZMlHY7SNt2iC7fs/3xSjVIt0gwL9QZCmlI8jkqlE1yHNCeu6YpmX7K/XK7Ztw77v2Zi7XC5YliUbvzfalwtCTDDWwg4DRudQtW2L48eB91/vuN1uuN/vOI4DVVVBSonT6ZSt6zrUdQ2tFb6/fUOIE9KS8PbzwHmaMKWItMwPoNEGfd+jaRoopSCEAPOM6YWQ2LYV3juEFBFizAVovZQQXQtrNWKcUDFpjMlqqKBACLfWQikNozWWZYKyFp0Q+S7PS9G6blA3DYZhQOW9z0kqfAbSzucpe617hGXOsPKKZ2CJx3FEFWPMsM9AKlNaQ4gOLniYYcjnnyEvwHmeM6w8mV7KPveNvfTBQZlHj4vyAmG7XoC8yB4Ow5gvhBAwxQlSdli3lNXVp/qfql6A/HBuxDxPcGeH/euO0Y8Y/Ih13z4G9N9AqtJaQ1sLodTj6ac67574MwRa6fFzTMhzPk+5bVo47xFSAv81rMICvMi4DIzbUGLnXC5MdSXmb9iuinSqJIwVeViWlnFefGPA4dH/vfDiY1i8y/g3HJgMglzMc6MAAAAASUVORK5CYII='); background-size: cover; display: block;\"\n  ></span>\n  <img\n        class=\"gatsby-resp-image-image\"\n        alt=\"bandwidth\"\n        title=\"bandwidth\"\n        src=\"/static/0100103488be5f982ac89fb12a7ffac1/f058b/bandwidth.png\"\n        srcset=\"/static/0100103488be5f982ac89fb12a7ffac1/c26ae/bandwidth.png 158w,\n/static/0100103488be5f982ac89fb12a7ffac1/6bdcf/bandwidth.png 315w,\n/static/0100103488be5f982ac89fb12a7ffac1/f058b/bandwidth.png 630w,\n/static/0100103488be5f982ac89fb12a7ffac1/40601/bandwidth.png 945w,\n/static/0100103488be5f982ac89fb12a7ffac1/8ecb0/bandwidth.png 989w\"\n        sizes=\"(max-width: 630px) 100vw, 630px\"\n        style=\"width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;\"\n        loading=\"lazy\"\n        decoding=\"async\"\n      />\n  </a>\n    </span></p>\n<p><span\n      class=\"gatsby-resp-image-wrapper\"\n      style=\"position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 630px; \"\n    >\n      <a\n    class=\"gatsby-resp-image-link\"\n    href=\"/static/a4497b739e70f5e2011898ef9659dd81/1790f/cpu.png\"\n    style=\"display: block\"\n    target=\"_blank\"\n    rel=\"noopener\"\n  >\n    <span\n    class=\"gatsby-resp-image-background-image\"\n    style=\"padding-bottom: 66.45569620253164%; position: relative; bottom: 0; left: 0; background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAANCAYAAACpUE5eAAAACXBIWXMAAA9hAAAPYQGoP6dpAAAB/0lEQVQ4y3VS2Y7bMAy0ZeuWfF9x4jqHN9ugBfrW//+zKchNFu6ifRA4OjicoZgoqTAcRhyPR0zThMPhwMtai6qqMAwD+r7HOI4caV/XNYwx/MZ7D601YgwIISBJ0xTrcsL9fsflcsH5fMb1eoVSClmWIUkSXnuc5zlHypUyRyoyVEWAswYJXS7zhPvbG263G9Z1xbZtiDFyZSklE5AairQnTAUIh1jCWoPgLYyxSIQQGIYOy7Jgnme2ezqd+PG/VO2xyCWUsZDiwwG5YkKqSBuyQKroks4JU9zjV6LIMu7b3BQQgqwr7mtCZAT40TNxT0iY1v7cGA0fA4a6wLZMCEazaiakXr2S/mft60dM84TCO7RVgVDX6NoabVV+WCZW59ynAlK8/4gXNtZCa4Nx7DCNPUrv4ENgklxKzOOAMkYqmvw1IntVRMY4TRF9QF3SrHlURYWublCUAcPYQukcPmg49xybrwrpTIgMUmkuFpzF8dCh7ToUZYV1PaKqPbRR8M6jKAp0fcNDzoNNkomAVRFZmkLJHH1Tou8qTIcej8d3NE2FGC36JuwGXnDUUkMrTThF3zX4+diwXRY8thXvtxXb5Rt+//qBbVsxDC36voY1EkrJTzf7IaczcppQf5y1iMFDacWNpkuyaq1j5VS5aVr+FG7B8zPoHdkkYiIj8j+8gSKggGepfwAAAABJRU5ErkJggg=='); background-size: cover; display: block;\"\n  ></span>\n  <img\n        class=\"gatsby-resp-image-image\"\n        alt=\"cpu\"\n        title=\"cpu\"\n        src=\"/static/a4497b739e70f5e2011898ef9659dd81/f058b/cpu.png\"\n        srcset=\"/static/a4497b739e70f5e2011898ef9659dd81/c26ae/cpu.png 158w,\n/static/a4497b739e70f5e2011898ef9659dd81/6bdcf/cpu.png 315w,\n/static/a4497b739e70f5e2011898ef9659dd81/f058b/cpu.png 630w,\n/static/a4497b739e70f5e2011898ef9659dd81/40601/cpu.png 945w,\n/static/a4497b739e70f5e2011898ef9659dd81/1790f/cpu.png 1189w\"\n        sizes=\"(max-width: 630px) 100vw, 630px\"\n        style=\"width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;\"\n        loading=\"lazy\"\n        decoding=\"async\"\n      />\n  </a>\n    </span></p>\n<h1 id=\"4-테스트-분석\" style=\"position:relative;\">4. 테스트 분석<a href=\"#4-%ED%85%8C%EC%8A%A4%ED%8A%B8-%EB%B6%84%EC%84%9D\" aria-label=\"4 테스트 분석 permalink\" class=\"heading-anchor after\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a></h1>\n<p>그래프 분석\n그래프는 각 Queue 및 iperf3 채널 수에 따른 대역폭과 CPU 사용량 변화를 보여준다.</p>\n<p>대역폭</p>\n<ul>\n<li>Queue 값이 증가할수록 대역폭이 증가하였으나, Queue가 16을 넘어서면 약 70~77Gbps 수준에서 포화 상태를 보인다.</li>\n</ul>\n<p>특히 Queue 8에서 16채널(64.1Gbps)을 사용할 때 가장 효율적으로 대역폭이 증가하는 구간을 확인할 수 있다.</p>\n<p>CPU 사용량</p>\n<ul>\n<li>Proxmox와 VM의 CPU 사용률은 Queue 및 채널 수 증가와 함께 급격히 증가한다.</li>\n</ul>\n<p>특히 Queue 32 이상, 채널 수가 Queue의 2~4배인 경우 VM 및 Proxmox CPU 부하가 상당히 높아졌다.</p>\n<p>결과적으로 multiqueue를 너무 높이 설정하면 얻는 성능 증가 대비 CPU 자원 소모가 너무 높아진다.\n특히 multiqueue가 8인 설정에서 좋은 성능과 적절한 CPU 자원 활용률을 보였다.</p>\n<p>나는 multiqueue를 조정해서 VM에 올린 TrueNAS와 proxmox간의 NFS연결에서 충분한 대역폭을 확보하고 싶었다. NFS의 마운팅 옵션에서 최대 16개의 커넥션을 설정할 수 있으므로 multiqueue를 8 ~ 16 정도로 설정하면 적당할 것 같다. 다음 글에서는 VM간의 실질적인 NFS 속도를 테스트해 보려고 한다.</p>\n<p>이 글이 Proxmox를 운영하거나 네트워크 성능을 최적화하려는 사용자들에게 좋은 참고 자료가 되길 바란다.</p>\n<p>잘못된 설명이나 추가로 설명했으면 좋겠는 부분, 오타, 맞춤법에 대한 지적은 언제나 환영합니다.</p>\n<ul>\n<li>이 글을 홈서버 사용자를 위한 것입니다. 틀린 내용이 있을 수 있고, 각자의 상황에 따라 데이터가 달라질 수 있습니다.</li>\n<li>이 글을 포함해 인터넷에 존재하는 코드, 스크립트를 복사해 사용할 때는 코드, 스크립트를 충분히 읽고, 분석하여 문제가 없는지 확인하시기를 바랍니다. 최소한 ChatGPT 같은 AI에 해당 코드, 스크립트가 정말 안전하고 사용해도 되는지 확인받으시길 권장합니다.</li>\n</ul>","fields":{"slug":"/proxmox-vmbr-01/"},"frontmatter":{"title":"Proxmox에서 linux bridge 속도 테스트하기 01","date":"2025-04-12","description":"Proxmox에서 iperf3로 linux bridge 속도 테스트","tags":["proxmox","ubuntu"]}},"previous":{"fields":{"slug":"/new-homeserver-01/"},"frontmatter":{"title":"홈서버 2년간의 회고"}},"next":null},"pageContext":{"id":"a2d3c9b2-68b5-5649-8641-e423b3e75c70","previousPostId":"44088d7d-4a38-5862-b566-797b86bb401a","nextPostId":null}},
    "staticQueryHashes": ["2260143708","2538111481","658623446","984448874"]}