Blame
|
1 | # BeeGFS |
||||||
|
2 | |||||||
| 3 | A particular need has risen that a research group needs large amounts of storage space, yet reliable and fast. |
|||||||
| 4 | ||||||||
| 5 | Traditionally, central file storage is relatively slow, especially when implemented with NFS, as its designed for availability and reliability and not speed. |
|||||||
| 6 | ||||||||
| 7 | As an option, we've installed additional 14TB drives in a few machines, 7TB drives in a few others, and made those available as an aggregate storage volume that is faster than NFS. |
|||||||
| 8 | The disadvantage is that this architecture requires several services to be up and running else the entire volume/filesystem will become unavailable or unstable. |
|||||||
| 9 | ||||||||
| 10 | After considerable testing and experimentation, BeeGFS tends to perform better than other alternatives, though with the aforementioned downside of required services. |
|||||||
| 11 | For specifics on the testing done, see [Throughput](/Main/BeeGFS#throughput-testing). |
|||||||
| 12 | ||||||||
| 13 | ## Implementation |
|||||||
| 14 | We're going off the [BeeGFS Quickstart](https://doc.beegfs.io/latest/quick_start_guide/quick_start_guide.html#example-setup). |
|||||||
| 15 | ||||||||
| 16 | We're installing on Ubuntu 22.04 LTS. |
|||||||
| 17 | First, we'll add the repositories, then we'll add the packages and configure. |
|||||||
| 18 | ||||||||
| 19 | ### Repository Keys |
|||||||
| 20 | Since things have changed slightly since the test (below), we need to add the GPG repository key in a different way than is noted in BeeGFS Quickstart. |
|||||||
| 21 | `wget -qOhttps://website/release/GPG-KEY | apt-key add -` will no longer work as it has been DEPRECATED. |
|||||||
| 22 | Now, use the following format: |
|||||||
| 23 | ||||||||
| 24 | ``` |
|||||||
| 25 | wget -qO- https://www.beegfs.io/release/beegfs_7.3.4/gpg/GPG-KEY-beegfs | \ |
|||||||
| 26 | gpg --dearmor > /etc/apt/trusted.gpg.d/beegfs.gpg |
|||||||
| 27 | ``` |
|||||||
| 28 | ||||||||
| 29 | which will strip the key of its encryption, creating it as a binary. |
|||||||
| 30 | Next, we'll add the repo: |
|||||||
| 31 | ||||||||
| 32 | ``` |
|||||||
| 33 | # /etc/apt/sources.list.d/beegfs-jammy.list |
|||||||
| 34 | deb https://www.beegfs.io/release/beegfs_7.3.4 jammy non-free |
|||||||
| 35 | ``` |
|||||||
| 36 | ||||||||
| 37 | This should make all beegfs packages available to us. |
|||||||
| 38 | ||||||||
| 39 | ### BeeGFS-MGMTD |
|||||||
| 40 | We need to have a `mgmtd` server, to orchestrate the goings on. |
|||||||
| 41 | In Imaging, we'll make this `IMAGING-01`. |
|||||||
| 42 | This means that the MGMTD service needs to be constantly running and available on IMAGING-01, else the BeeGFS filesystem will appear unavailable. |
|||||||
| 43 | This is done ala: |
|||||||
| 44 | ||||||||
| 45 | ``` |
|||||||
| 46 | > /opt/beegfs/sbin/beegfs-setup-mgmtd -p /opt/beegfs/mgmtd |
|||||||
| 47 | ||||||||
| 48 | ``` |
|||||||
| 49 | ||||||||
| 50 | This will create files in `/opt/beegfs/mgmtd` to keep track. |
|||||||
| 51 | We will need to edit the `/etc/beegfs/beegfs-mgmtd.conf` file to include the `connauthfile` directive. |
|||||||
| 52 | We'll create the `connauthfile`: |
|||||||
| 53 | ||||||||
| 54 | ``` |
|||||||
| 55 | > dd if=/dev/random of=/etc/beegfs/connauthfile bs=128 count=1 |
|||||||
| 56 | > chown root.root /etc/beegfs/connauthfile |
|||||||
| 57 | > chmod 400 /etc/beegfs/connauthfile |
|||||||
| 58 | ``` |
|||||||
| 59 | ||||||||
| 60 | And that file we will need to be copied to every participating node, whether storage, client, or other. |
|||||||
| 61 | ||||||||
| 62 | ### BeeGFS-META |
|||||||
| 63 | We need to have a `-meta` server to keep track of the files in the filesystem. |
|||||||
| 64 | This will be the service that locates data blocks throughout the volume, and tracks which system the data is on. |
|||||||
| 65 | This service also needs to be constantly available, else clients will not be able to access data. |
|||||||
| 66 | ||||||||
| 67 | We'll mirror this later, but for now we only need one, and install it onto `IMAGING-01` with: |
|||||||
| 68 | ||||||||
| 69 | ``` |
|||||||
| 70 | > /opt/beegfs/sbin/beegfs-setup-meta -p /opt/beegfs/meta/ -s 1 -m imaging-01 |
|||||||
| 71 | ``` |
|||||||
| 72 | Then edit the `/etc/beegfs/beegfs-meta.conf` file to include the `connauthfile` directive. |
|||||||
| 73 | ||||||||
| 74 | ### BeeGFS-STORAGE |
|||||||
| 75 | Of course we have to declare the storage, and in Imaging its no different. |
|||||||
| 76 | The following is a breakout: |
|||||||
| 77 | ||||||||
| 78 | | Host | Device | Size | |
|||||||
| 79 | | ------------ | ---------------- | ---- | |
|||||||
| 80 | | `IMAGING-01` | `/dev/sdb1` | 12T | |
|||||||
| 81 | | `IMAGING-02` | `/dev/sdb1` | 12T | |
|||||||
| 82 | | `IMAGING-03` | `/dev/nvme1n1p1` | 7T | |
|||||||
| 83 | | `IMAGING-04` | `/dev/nvme1n1p1` | 7T | |
|||||||
| 84 | This should create a 37T volume of space, located under… we'll get to that. |
|||||||
| 85 | First, configuration with: |
|||||||
| 86 | ||||||||
| 87 | ``` |
|||||||
| 88 | > /opt/beegfs/sbin/beegfs-setup-storage -p /mnt/14t_drive -s1 -i 101 -m imaging-01 |
|||||||
| 89 | ``` |
|||||||
| 90 | ||||||||
| 91 | The `/mnt/14t_drive` is different on `-03` and `-04`, as those are mounted as `/mnt/7t_drive`. |
|||||||
| 92 | The `-s1` and `-i 101` here indicate that we're on `IMAGING-01`, the first server, and naming the storage target the first one. |
|||||||
| 93 | On `IMAGING-02`, it would look like `-s2 -i 201`, with the same `-m imaging-01` since that is still our `-mgmtd` node. |
|||||||
| 94 | Also, edit the `/etc/beegfs/beegfs-storage.conf` to include the `connauthfile` directive. |
|||||||
| 95 | ||||||||
| 96 | ### BeeGFS-CLIENT |
|||||||
| 97 | Of course each system is going to be its own client. |
|||||||
| 98 | ||||||||
| 99 | ``` |
|||||||
| 100 | > /opt/beegfs/sbin/beegfs-setup-client -m imaging-01 |
|||||||
| 101 | ``` |
|||||||
| 102 | ||||||||
| 103 | Also, edit the `/etc/beegfs/beegfs-client.conf` to include the `connauthfile` directive. |
|||||||
| 104 | Additionally, we'll need the `beegfs-helperd` package installed, and configured via the `/etc/beegfs/beegfs-helperd.conf` file to include the `connauthfile` directive. |
|||||||
| 105 | ||||||||
| 106 | ### BeeGFS-MOUNT |
|||||||
| 107 | Finally, each client that will be mounting the filesystem will have a list of mounted and client config files in `/etc/beegfs/beegfs-mount.conf` that looks similar to: |
|||||||
| 108 | ||||||||
| 109 | ``` |
|||||||
| 110 | /srv/tmp /etc/beegfs/beegfs-client.conf |
|||||||
| 111 | ``` |
|||||||
| 112 | ||||||||
| 113 | As you guessed it, the system will mount the filesystem onto `/srv/tmp`. |
|||||||
| 114 | ||||||||
| 115 | ## Daemon Launch/Enable |
|||||||
| 116 | On `IMAGING-01` (the `-mgmtd` and `-meta` node), |
|||||||
| 117 | Launch: |
|||||||
| 118 | `systemctl start beegfs-mgmtd` |
|||||||
| 119 | `systemctl start beegfs-meta` |
|||||||
| 120 | and check for errors (they may fail silently). |
|||||||
| 121 | ||||||||
| 122 | On all participating nodes (`IMAGING-01 thru -04`) |
|||||||
| 123 | Launch: |
|||||||
| 124 | `systemctl start beegfs-storage` |
|||||||
| 125 | `systemctl start beegfs-helperd` |
|||||||
| 126 | `systemctl start beegfs-client` |
|||||||
| 127 | and check for errors. |
|||||||
| 128 | ||||||||
| 129 | ## Checking Validity |
|||||||
| 130 | If everything went as expected, you should be able to verify with some `beegfs-utils` commands ala: |
|||||||
| 131 | ||||||||
| 132 | ```bash |
|||||||
| 133 | > beegfs-ctl --listnodes --nodetype=management --details |
|||||||
| 134 | > beegfs-ctl --listnodes --nodetype=meta --details |
|||||||
| 135 | > beegfs-ctl --listnodes --nodetype=storage --details |
|||||||
| 136 | > beegfs-ctl --listnodes --nodetype=client --details |
|||||||
| 137 | > beegfs-df |
|||||||
| 138 | > beegfs-net |
|||||||
| 139 | > beegfs-check-servers |
|||||||
| 140 | ``` |
|||||||
| 141 | ||||||||
| 142 | ### Throughput testing |
|||||||
| 143 | We'll go through our throughput tests that we've done before. |
|||||||
| 144 | ||||||||
| 145 | #### SCRATCH NFS WRITE |
|||||||
| 146 | ||||||||
| 147 | ``` |
|||||||
| 148 | SCRATCH-NFS-WRITE: (g=0): rw=write, bs=(R) 2049KiB-2049KiB, (W) 2049KiB-2049KiB, (T) 2049KiB-2049KiB, ioengine=libaio, iodepth=32 |
|||||||
| 149 | fio-3.28 |
|||||||
| 150 | Starting 1 process |
|||||||
| 151 | SCRATCH-NFS-WRITE: Laying out IO file (1 file / 1024MiB) |
|||||||
| 152 | ||||||||
| 153 | SCRATCH-NFS-WRITE: (groupid=0, jobs=1): err= 0: pid=22026: Wed Jul 12 05:22:48 2023 |
|||||||
| 154 | write: IOPS=27, BW=54.9MiB/s (57.5MB/s)(4090MiB/74528msec); 0 zone resets |
|||||||
| 155 | slat (usec): min=1115, max=10854, avg=1488.93, stdev=295.11 |
|||||||
| 156 | clat (usec): min=3, max=51284, avg=44515.98, stdev=6766.35 |
|||||||
| 157 | lat (usec): min=1470, max=62092, avg=46005.17, stdev=6788.76 |
|||||||
| 158 | clat percentiles (usec): |
|||||||
| 159 | | 1.00th=[ 6915], 5.00th=[37487], 10.00th=[42730], 20.00th=[43254], |
|||||||
| 160 | | 30.00th=[45876], 40.00th=[46400], 50.00th=[46400], 60.00th=[46924], |
|||||||
| 161 | | 70.00th=[46924], 80.00th=[46924], 90.00th=[47449], 95.00th=[47449], |
|||||||
| 162 | | 99.00th=[49021], 99.50th=[50070], 99.90th=[51119], 99.95th=[51119], |
|||||||
| 163 | | 99.99th=[51119] |
|||||||
| 164 | bw ( KiB/s): min=254076, max=1352340, per=100.00%, avg=930701.33, stdev=392448.73, samples=9 |
|||||||
| 165 | iops : min= 124, max= 660, avg=454.22, stdev=191.53, samples=9 |
|||||||
| 166 | lat (usec) : 4=0.20% |
|||||||
| 167 | lat (msec) : 2=0.20%, 4=0.20%, 10=0.83%, 20=1.37%, 50=96.77% |
|||||||
| 168 | lat (msec) : 100=0.44% |
|||||||
| 169 | cpu : usr=0.41%, sys=4.87%, ctx=264481, majf=0, minf=12 |
|||||||
| 170 | IO depths : 1=0.2%, 2=0.4%, 4=0.8%, 8=1.6%, 16=3.1%, 32=93.9%, >=64=0.0% |
|||||||
| 171 | submit : 0=0.0%, 4=100.0%, 8=0.0%, 16=0.0%, 32=0.0%, 64=0.0%, >=64=0.0% |
|||||||
| 172 | complete : 0=0.0%, 4=99.8%, 8=0.0%, 16=0.0%, 32=0.2%, 64=0.0%, >=64=0.0% |
|||||||
| 173 | issued rwts: total=0,2044,0,0 short=0,0,0,0 dropped=0,0,0,0 |
|||||||
| 174 | latency : target=0, window=0, percentile=100.00%, depth=32 |
|||||||
| 175 | ||||||||
| 176 | Run status group 0 (all jobs): |
|||||||
| 177 | WRITE: bw=54.9MiB/s (57.5MB/s), 54.9MiB/s-54.9MiB/s (57.5MB/s-57.5MB/s), io=4090MiB (4289MB), run=74528-74528msec |
|||||||
| 178 | ``` |
|||||||
| 179 | ||||||||
| 180 | #### SCRATCH NFS READ |
|||||||
| 181 | ||||||||
| 182 | ``` |
|||||||
| 183 | SCRATCH-NFS-READ: (g=0): rw=read, bs=(R) 2049KiB-2049KiB, (W) 2049KiB-2049KiB, (T) 2049KiB-2049KiB, ioengine=libaio, iodepth=32 |
|||||||
| 184 | fio-3.28 |
|||||||
| 185 | Starting 1 process |
|||||||
| 186 | ||||||||
| 187 | SCRATCH-NFS-READ: (groupid=0, jobs=1): err= 0: pid=22145: Wed Jul 12 05:25:15 2023 |
|||||||
| 188 | read: IOPS=26, BW=52.1MiB/s (54.6MB/s)(3170MiB/60845msec) |
|||||||
| 189 | slat (msec): min=13, max=1759, avg=38.18, stdev=180.47 |
|||||||
| 190 | clat (usec): min=5, max=2299.4k, avg=1134958.95, stdev=792260.44 |
|||||||
| 191 | lat (msec): min=15, max=2312, avg=1173.14, stdev=796.95 |
|||||||
| 192 | clat percentiles (msec): |
|||||||
| 193 | | 1.00th=[ 72], 5.00th=[ 460], 10.00th=[ 542], 20.00th=[ 550], |
|||||||
| 194 | | 30.00th=[ 558], 40.00th=[ 558], 50.00th=[ 558], 60.00th=[ 558], |
|||||||
| 195 | | 70.00th=[ 2056], 80.00th=[ 2072], 90.00th=[ 2265], 95.00th=[ 2299], |
|||||||
| 196 | | 99.00th=[ 2299], 99.50th=[ 2299], 99.90th=[ 2299], 99.95th=[ 2299], |
|||||||
| 197 | | 99.99th=[ 2299] |
|||||||
| 198 | bw ( KiB/s): min= 4098, max=188508, per=100.00%, avg=85947.24, stdev=41220.53, samples=74 |
|||||||
| 199 | iops : min= 2, max= 92, avg=41.95, stdev=20.12, samples=74 |
|||||||
| 200 | lat (usec) : 10=0.25% |
|||||||
| 201 | lat (msec) : 20=0.19%, 50=0.19%, 100=0.57%, 250=1.70%, 500=2.65% |
|||||||
| 202 | lat (msec) : 750=56.82%, 2000=0.95%, >=2000=36.68% |
|||||||
| 203 | cpu : usr=0.02%, sys=6.16%, ctx=5123, majf=0, minf=16408 |
|||||||
| 204 | IO depths : 1=0.3%, 2=0.5%, 4=1.0%, 8=2.0%, 16=4.0%, 32=92.2%, >=64=0.0% |
|||||||
| 205 | submit : 0=0.0%, 4=100.0%, 8=0.0%, 16=0.0%, 32=0.0%, 64=0.0%, >=64=0.0% |
|||||||
| 206 | complete : 0=0.0%, 4=99.7%, 8=0.0%, 16=0.0%, 32=0.3%, 64=0.0%, >=64=0.0% |
|||||||
| 207 | issued rwts: total=1584,0,0,0 short=0,0,0,0 dropped=0,0,0,0 |
|||||||
| 208 | latency : target=0, window=0, percentile=100.00%, depth=32 |
|||||||
| 209 | ||||||||
| 210 | Run status group 0 (all jobs): |
|||||||
| 211 | READ: bw=52.1MiB/s (54.6MB/s), 52.1MiB/s-52.1MiB/s (54.6MB/s-54.6MB/s), io=3170MiB (3324MB), run=60845-60845msec |
|||||||
| 212 | ``` |
|||||||
| 213 | ||||||||
| 214 | #### LOCAL WRITE |
|||||||
| 215 | ||||||||
| 216 | ``` |
|||||||
| 217 | LOCAL-WRITE: (g=0): rw=write, bs=(R) 2049KiB-2049KiB, (W) 2049KiB-2049KiB, (T) 2049KiB-2049KiB, ioengine=libaio, iodepth=32 |
|||||||
| 218 | fio-3.28 |
|||||||
| 219 | Starting 1 process |
|||||||
| 220 | LOCAL-WRITE: Laying out IO file (1 file / 1024MiB) |
|||||||
| 221 | ||||||||
| 222 | LOCAL-WRITE: (groupid=0, jobs=1): err= 0: pid=22283: Wed Jul 12 05:28:20 2023 |
|||||||
| 223 | write: IOPS=173, BW=348MiB/s (365MB/s)(10.0GiB/29446msec); 0 zone resets |
|||||||
| 224 | slat (usec): min=1087, max=4394, avg=1238.50, stdev=131.52 |
|||||||
| 225 | clat (usec): min=3, max=42947, avg=37143.29, stdev=5337.20 |
|||||||
| 226 | lat (usec): min=1156, max=44101, avg=38382.06, stdev=5314.32 |
|||||||
| 227 | clat percentiles (usec): |
|||||||
| 228 | | 1.00th=[ 6980], 5.00th=[32375], 10.00th=[35914], 20.00th=[37487], |
|||||||
| 229 | | 30.00th=[38011], 40.00th=[38011], 50.00th=[38011], 60.00th=[38536], |
|||||||
| 230 | | 70.00th=[38536], 80.00th=[39060], 90.00th=[39584], 95.00th=[39584], |
|||||||
| 231 | | 99.00th=[40633], 99.50th=[41157], 99.90th=[41681], 99.95th=[42730], |
|||||||
| 232 | | 99.99th=[42730] |
|||||||
| 233 | bw ( KiB/s): min=426192, max=1667886, per=100.00%, avg=1046875.40, stdev=424328.54, samples=20 |
|||||||
| 234 | iops : min= 208, max= 814, avg=510.90, stdev=207.06, samples=20 |
|||||||
| 235 | lat (usec) : 4=0.21% |
|||||||
| 236 | lat (msec) : 2=0.10%, 4=0.20%, 10=1.02%, 20=1.58%, 50=96.89% |
|||||||
| 237 | cpu : usr=1.83%, sys=31.39%, ctx=7684, majf=0, minf=17 |
|||||||
| 238 | IO depths : 1=0.2%, 2=0.4%, 4=0.9%, 8=1.6%, 16=3.1%, 32=93.8%, >=64=0.0% |
|||||||
| 239 | submit : 0=0.0%, 4=100.0%, 8=0.0%, 16=0.0%, 32=0.0%, 64=0.0%, >=64=0.0% |
|||||||
| 240 | complete : 0=0.0%, 4=99.8%, 8=0.1%, 16=0.0%, 32=0.2%, 64=0.0%, >=64=0.0% |
|||||||
| 241 | issued rwts: total=0,5118,0,0 short=0,0,0,0 dropped=0,0,0,0 |
|||||||
| 242 | latency : target=0, window=0, percentile=100.00%, depth=32 |
|||||||
| 243 | ||||||||
| 244 | Run status group 0 (all jobs): |
|||||||
| 245 | WRITE: bw=348MiB/s (365MB/s), 348MiB/s-348MiB/s (365MB/s-365MB/s), io=10.0GiB (10.7GB), run=29446-29446msec |
|||||||
| 246 | ||||||||
| 247 | Disk stats (read/write): |
|||||||
| 248 | sda: ios=3456/8439, merge=0/45, ticks=445/135160, in_queue=135700, util=92.35% |
|||||||
| 249 | ``` |
|||||||
| 250 | ||||||||
| 251 | #### LOCAL READ |
|||||||
| 252 | ||||||||
| 253 | ``` |
|||||||
| 254 | LOCAL-READ: (g=0): rw=read, bs=(R) 2049KiB-2049KiB, (W) 2049KiB-2049KiB, (T) 2049KiB-2049KiB, ioengine=libaio, iodepth=32 |
|||||||
| 255 | fio-3.28 |
|||||||
| 256 | Starting 1 process |
|||||||
| 257 | ||||||||
| 258 | LOCAL-READ: (groupid=0, jobs=1): err= 0: pid=22386: Wed Jul 12 05:29:52 2023 |
|||||||
| 259 | read: IOPS=170, BW=341MiB/s (357MB/s)(10.0GiB/30065msec) |
|||||||
| 260 | slat (usec): min=3203, max=10216, avg=5714.25, stdev=336.53 |
|||||||
| 261 | clat (usec): min=2, max=182102, avg=171437.90, stdev=26459.08 |
|||||||
| 262 | lat (msec): min=3, max=190, avg=177.15, stdev=26.48 |
|||||||
| 263 | clat percentiles (msec): |
|||||||
| 264 | | 1.00th=[ 21], 5.00th=[ 138], 10.00th=[ 167], 20.00th=[ 178], |
|||||||
| 265 | | 30.00th=[ 178], 40.00th=[ 178], 50.00th=[ 178], 60.00th=[ 180], |
|||||||
| 266 | | 70.00th=[ 180], 80.00th=[ 180], 90.00th=[ 180], 95.00th=[ 180], |
|||||||
| 267 | | 99.00th=[ 182], 99.50th=[ 182], 99.90th=[ 182], 99.95th=[ 182], |
|||||||
| 268 | | 99.99th=[ 182] |
|||||||
| 269 | bw ( KiB/s): min=208998, max=458976, per=100.00%, avg=349013.00, stdev=63311.60, samples=60 |
|||||||
| 270 | iops : min= 102, max= 224, avg=170.33, stdev=30.90, samples=60 |
|||||||
| 271 | lat (usec) : 4=0.02%, 10=0.20% |
|||||||
| 272 | lat (msec) : 4=0.20%, 10=0.21%, 20=0.23%, 50=1.21%, 100=1.60% |
|||||||
| 273 | lat (msec) : 250=96.33% |
|||||||
| 274 | cpu : usr=0.14%, sys=30.15%, ctx=5561, majf=0, minf=16411 |
|||||||
| 275 | IO depths : 1=0.2%, 2=0.4%, 4=0.9%, 8=1.6%, 16=3.1%, 32=93.8%, >=64=0.0% |
|||||||
| 276 | submit : 0=0.0%, 4=100.0%, 8=0.0%, 16=0.0%, 32=0.0%, 64=0.0%, >=64=0.0% |
|||||||
| 277 | complete : 0=0.0%, 4=99.8%, 8=0.1%, 16=0.0%, 32=0.2%, 64=0.0%, >=64=0.0% |
|||||||
| 278 | issued rwts: total=5118,0,0,0 short=0,0,0,0 dropped=0,0,0,0 |
|||||||
| 279 | latency : target=0, window=0, percentile=100.00%, depth=32 |
|||||||
| 280 | ||||||||
| 281 | Run status group 0 (all jobs): |
|||||||
| 282 | READ: bw=341MiB/s (357MB/s), 341MiB/s-341MiB/s (357MB/s-357MB/s), io=10.0GiB (10.7GB), run=30065-30065msec |
|||||||
| 283 | ||||||||
| 284 | Disk stats (read/write): |
|||||||
| 285 | sda: ios=10530/9, merge=50/1, ticks=46614/7, in_queue=46621, util=97.41% |
|||||||
| 286 | ``` |
|||||||
| 287 | ||||||||
| 288 | #### BeeGFS WRITE |
|||||||
| 289 | ||||||||
| 290 | ``` |
|||||||
| 291 | BeeGFS-WRITE: (g=0): rw=write, bs=(R) 2049KiB-2049KiB, (W) 2049KiB-2049KiB, (T) 2049KiB-2049KiB, ioengine=libaio, iodepth=32 |
|||||||
| 292 | fio-3.28 |
|||||||
| 293 | Starting 1 process |
|||||||
| 294 | BeeGFS-WRITE: Laying out IO file (1 file / 1024MiB) |
|||||||
| 295 | ||||||||
| 296 | BeeGFS-WRITE: (groupid=0, jobs=1): err= 0: pid=22709: Wed Jul 12 05:35:38 2023 |
|||||||
| 297 | write: IOPS=34, BW=68.9MiB/s (72.2MB/s)(4132MiB/60005msec); 0 zone resets |
|||||||
| 298 | slat (msec): min=13, max=1582, avg=29.04, stdev=149.64 |
|||||||
| 299 | clat (usec): min=7, max=2013.4k, avg=851876.99, stdev=690184.39 |
|||||||
| 300 | lat (msec): min=14, max=2027, avg=880.92, stdev=696.79 |
|||||||
| 301 | clat percentiles (msec): |
|||||||
| 302 | | 1.00th=[ 57], 5.00th=[ 426], 10.00th=[ 439], 20.00th=[ 439], |
|||||||
| 303 | | 30.00th=[ 443], 40.00th=[ 443], 50.00th=[ 443], 60.00th=[ 443], |
|||||||
| 304 | | 70.00th=[ 447], 80.00th=[ 1955], 90.00th=[ 1972], 95.00th=[ 1989], |
|||||||
| 305 | | 99.00th=[ 2005], 99.50th=[ 2005], 99.90th=[ 2005], 99.95th=[ 2022], |
|||||||
| 306 | | 99.99th=[ 2022] |
|||||||
| 307 | bw ( KiB/s): min= 4098, max=249978, per=100.00%, avg=108783.27, stdev=52595.86, samples=77 |
|||||||
| 308 | iops : min= 2, max= 122, avg=53.09, stdev=25.67, samples=77 |
|||||||
| 309 | lat (usec) : 10=0.19%, 20=0.05% |
|||||||
| 310 | lat (msec) : 20=0.24%, 50=0.44%, 100=0.73%, 250=1.60%, 500=68.81% |
|||||||
| 311 | lat (msec) : 2000=26.44%, >=2000=1.50% |
|||||||
| 312 | cpu : usr=0.86%, sys=9.71%, ctx=445229, majf=0, minf=16 |
|||||||
| 313 | IO depths : 1=0.2%, 2=0.5%, 4=1.0%, 8=1.9%, 16=3.4%, 32=93.0%, >=64=0.0% |
|||||||
| 314 | submit : 0=0.0%, 4=100.0%, 8=0.0%, 16=0.0%, 32=0.0%, 64=0.0%, >=64=0.0% |
|||||||
| 315 | complete : 0=0.0%, 4=99.7%, 8=0.0%, 16=0.0%, 32=0.3%, 64=0.0%, >=64=0.0% |
|||||||
| 316 | issued rwts: total=0,2065,0,0 short=0,0,0,0 dropped=0,0,0,0 |
|||||||
| 317 | latency : target=0, window=0, percentile=100.00%, depth=32 |
|||||||
| 318 | ||||||||
| 319 | Run status group 0 (all jobs): |
|||||||
| 320 | WRITE: bw=68.9MiB/s (72.2MB/s), 68.9MiB/s-68.9MiB/s (72.2MB/s-72.2MB/s), io=4132MiB (4333MB), run=60005-60005msec |
|||||||
| 321 | ``` |
|||||||
| 322 | ||||||||
| 323 | #### BeeGFS READ |
|||||||
| 324 | ||||||||
| 325 | ``` |
|||||||
| 326 | BeeGFS-READ: (g=0): rw=read, bs=(R) 2049KiB-2049KiB, (W) 2049KiB-2049KiB, (T) 2049KiB-2049KiB, ioengine=libaio, iodepth=32 |
|||||||
| 327 | fio-3.28 |
|||||||
| 328 | Starting 1 process |
|||||||
| 329 | BeeGFS-READ: Laying out IO file (1 file / 1024MiB) |
|||||||
| 330 | ||||||||
| 331 | BeeGFS-READ: (groupid=0, jobs=1): err= 0: pid=22827: Wed Jul 12 05:37:41 2023 |
|||||||
| 332 | read: IOPS=67, BW=135MiB/s (142MB/s)(8106MiB/60001msec) |
|||||||
| 333 | slat (msec): min=14, max=215, avg=14.80, stdev= 8.33 |
|||||||
| 334 | clat (usec): min=8, max=669906, avg=444903.42, stdev=80659.05 |
|||||||
| 335 | lat (msec): min=14, max=684, avg=459.70, stdev=81.14 |
|||||||
| 336 | clat percentiles (msec): |
|||||||
| 337 | | 1.00th=[ 72], 5.00th=[ 359], 10.00th=[ 443], 20.00th=[ 447], |
|||||||
| 338 | | 30.00th=[ 447], 40.00th=[ 447], 50.00th=[ 447], 60.00th=[ 447], |
|||||||
| 339 | | 70.00th=[ 447], 80.00th=[ 447], 90.00th=[ 464], 95.00th=[ 642], |
|||||||
| 340 | | 99.00th=[ 651], 99.50th=[ 651], 99.90th=[ 659], 99.95th=[ 667], |
|||||||
| 341 | | 99.99th=[ 667] |
|||||||
| 342 | bw ( KiB/s): min=12294, max=266370, per=99.22%, avg=137265.78, stdev=28838.77, samples=119 |
|||||||
| 343 | iops : min= 6, max= 130, avg=66.99, stdev=14.07, samples=119 |
|||||||
| 344 | lat (usec) : 10=0.05%, 20=0.15% |
|||||||
| 345 | lat (msec) : 20=0.20%, 50=0.39%, 100=0.59%, 250=2.17%, 500=91.09% |
|||||||
| 346 | lat (msec) : 750=5.36% |
|||||||
| 347 | cpu : usr=0.06%, sys=20.48%, ctx=448073, majf=0, minf=16412 |
|||||||
| 348 | IO depths : 1=0.2%, 2=0.4%, 4=0.8%, 8=1.6%, 16=3.2%, 32=93.9%, >=64=0.0% |
|||||||
| 349 | submit : 0=0.0%, 4=100.0%, 8=0.0%, 16=0.0%, 32=0.0%, 64=0.0%, >=64=0.0% |
|||||||
| 350 | complete : 0=0.0%, 4=99.8%, 8=0.0%, 16=0.0%, 32=0.2%, 64=0.0%, >=64=0.0% |
|||||||
| 351 | issued rwts: total=4051,0,0,0 short=0,0,0,0 dropped=0,0,0,0 |
|||||||
| 352 | latency : target=0, window=0, percentile=100.00%, depth=32 |
|||||||
| 353 | ||||||||
| 354 | Run status group 0 (all jobs): |
|||||||
| 355 | READ: bw=135MiB/s (142MB/s), 135MiB/s-135MiB/s (142MB/s-142MB/s), io=8106MiB (8500MB), run=60001-60001msec |
|||||||
| 356 | ``` |
|||||||
| 357 | ||||||||
| 358 | Tests all ran on `IMAGING-02`. |
|||||||
| 359 | Scratch NFS = ~57MB/s read/write |
|||||||
| 360 | BeeGFS = ~80MB/s write, ~140MB/s read |
|||||||
| 361 | ||||||||
| 362 | This is about a 50% improvement for write operations, |
|||||||