Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 22 Dec 2023 10:59:26 +0100 (CET)
From:      Ronald Klop <ronald-lists@klop.ws>
To:        freebsd-fs <freebsd-fs@freebsd.org>, void <void@f-m.fm>
Subject:   Re: measuring swap partition speed
Message-ID:  <478987228.2760.1703239166835@localhost>
In-Reply-To: <1137397689.3080.1703237862787@localhost>
References:  <D9C150E2-8453-463B-9A23-B0474D0AE390.ref@yahoo.com> <D9C150E2-8453-463B-9A23-B0474D0AE390@yahoo.com> <ZYRe3GFrf1fSIPjk@int21h> <1439231787.9333.1703184981914@localhost> <1dbf8804-f1ac-4578-a538-889744d7de9a@app.fastmail.com> <1137397689.3080.1703237862787@localhost>

next in thread | previous in thread | raw e-mail | index | archive | help
------=_Part_2759_327864946.1703239166820
Content-Type: text/plain; charset=us-ascii; format=flowed
Content-Transfer-Encoding: 7bit

Van: Ronald Klop <ronald-lists@klop.ws>
Datum: vrijdag, 22 december 2023 10:37
Aan: void <void@f-m.fm>
CC: freebsd-fs <freebsd-fs@freebsd.org>
Onderwerp: Re: measuring swap partition speed
> 
>  
> Van: void <void@f-m.fm>
> Datum: vrijdag, 22 december 2023 01:05
> Aan: freebsd-fs <freebsd-fs@freebsd.org>
> Onderwerp: Re: measuring swap partition speed
>> 
>> On Thu, 21 Dec 2023, at 18:56, Ronald Klop wrote:
>> > A bit weird that a simple dd is so slow.
>> >
>> > Just a quick thought.
>> > Are your partitions aligned properly?
>> 
>> no idea. How would I check? The system when installed,
>> the auto-zfs option was selected, block size set to 4k. The swap
>> was changed from the default 2gb to 12gb. geli encryption is
>> active for the zfs filesystem but not for swap. It's only the swap
>> that shows performance issues.
>> 
>> > Is other IO going on on the same time?
>> 
>> not really, the tests were done with cron jobs deactivated, almost completely idle,
>> swap was not being used at all.
>> 
>> > What does gstat say about %util, queue length and all the other stats
>> > while running the dd? Or "iostat -x -d 1".
>> 
>> I'll try that next, thanks
>> 
>> > Could you try if another disk has the same issues?
>> 
>> no spare or equivalent disk for this arch.
>> 
>> > How is your disk connected? USB-to-SATA-adapter? Any output of dmesg?
>> 
>> Regular usb3 connection.
>> 
>> da0: 400.000MB/s transfers
>> da0: 953869MB (1953525168 512 byte sectors)
>> da0: quirks=0x2<NO_6_BYTE>
>> da0: Delete methods: <NONE(*),ZERO>
>> -- 
>>  
>> 
>> 
>> 
> 
> 
> Can you provide more concrete information? Like:
> 
> # usbconfig list
> ugen0.1: <(0x1106) XHCI root HUB> at usbus0, cfg=0 md=HOST spd=SUPER (5.0Gbps) pwr=SAVE (0mA)
> ugen0.2: <vendor 0x2109 USB2.0 Hub> at usbus0, cfg=0 md=HOST spd=HIGH (480Mbps) pwr=SAVE (100mA)
> ugen0.3: <Silicon Labs CP2102 USB to UART Bridge Controller> at usbus0, cfg=0 md=HOST spd=FULL (12Mbps) pwr=ON (100mA)
> ugen0.4: <USB 3.0 Device USB 3.0 Device> at usbus0, cfg=0 md=HOST spd=SUPER (5.0Gbps) pwr=ON (224mA)
> ugen0.5: <Western Digital Elements 25A2> at usbus0, cfg=0 md=HOST spd=SUPER (5.0Gbps) pwr=ON (224mA)
> 
> And the output of "devinfo -v". That will give people much more information to work with instead of "anecdotal evidence" about your hardware being usb3.
> And the complete output of dmesg instead of only the "da0:" lines. There is more information in there which can be valuable for people to help you.
> 
> About the alignment. You wrote in your first mail:
> "# gpart show
> 
> =>        40  1953525088  da0  GPT  (932G)
>            40      532480    1  efi  (260M)
>        532520        2008       - free -  (1.0M)
>        534528     4194304    2  freebsd-swap  (2.0G)
>       4728832     4194304    4  freebsd-swap  (2.0G)
>       8923136     4194304    5  freebsd-swap  (2.0G)
>      13117440     4194304    6  freebsd-swap  (2.0G)
>      17311744     4194304    7  freebsd-swap  (2.0G)
>      21506048     4194304    8  freebsd-swap  (2.0G)
>      25700352  1927823360    3  freebsd-zfs  (920G)
>    1953523712        1416       - free -  (708K)
> "
> 
> Your dd tests were on da0p4 which starts on block 4728832.
> Assuming "gpart list" shows "Sectorsize: 512".
> (4728832 * 512) mod 4096 = 0, so the partitiion is aligned on a 4KB page size. And the calculation is also 0 for 8KB (is this the page size of arm64?) which is good.
> AFAIK: this is properly aligned such that the hardware does not need to double write or read-before-write when paging out.
> 
> Up until now I haven't seen anything which would explain the slow dd speed on of=/dev/da0p4 vs the quick dd on of=/mnt/test8k.bin.
> 
> Regards,
> Ronald.
>  

Just did the same test on my RPI4 running FreeBSD 15.0-CURRENT of Dec 14.
Used an unused partition on spinning disk. My used swap is on an ssd nowadays.

[root@rpi4 ~]# dd if=/dev/urandom of=/dev/da1p2 bs=8k count=25000 conv=sync status=progress
  193200128 bytes (193 MB, 184 MiB) transferred 10.024s, 19 MB/s
25000+0 records in
25000+0 records out
204800000 bytes transferred in 10.592984 secs (19333551 bytes/sec)

NB: using bs=128k makes it go to 69MB/s.

# gpart show
=>        40  1953458096  da1  GPT  (931G)
          40      102400    1  efi  (50M)
      102440     8388608    2  freebsd-swap  (4.0G)
     8491048  1944967088    3  freebsd-zfs  (927G)

ugen0.5: <Western Digital Elements 25A2> at usbus0
umass1 on uhub0
umass1: <Western Digital Elements 25A2, class 0/0, rev 3.00/10.04, addr 4> on usbus0
da1 at umass-sim1 bus 1 scbus1 target 0 lun 0
da1: <WD Elements 25A2 1004> Fixed Direct Access SPC-4 SCSI device
da1: Serial Number 575843314538354834414536
da1: 400.000MB/s transfers
da1: 953837MB (1953458176 512 byte sectors)
da1: quirks=0x2<NO_6_BYTE>

# usbconfig list
ugen0.1: <(0x1106) XHCI root HUB> at usbus0, cfg=0 md=HOST spd=SUPER (5.0Gbps) pwr=SAVE (0mA)
ugen0.2: <vendor 0x2109 USB2.0 Hub> at usbus0, cfg=0 md=HOST spd=HIGH (480Mbps) pwr=SAVE (100mA)
ugen0.3: <Silicon Labs CP2102 USB to UART Bridge Controller> at usbus0, cfg=0 md=HOST spd=FULL (12Mbps) pwr=ON (100mA)
ugen0.4: <USB 3.0 Device USB 3.0 Device> at usbus0, cfg=0 md=HOST spd=SUPER (5.0Gbps) pwr=ON (224mA)
ugen0.5: <Western Digital Elements 25A2> at usbus0, cfg=0 md=HOST spd=SUPER (5.0Gbps) pwr=ON (224mA)


Found some more things to check:

Do these settings have something non-default?
# sysctl kern.geom.disk
# sysctl kern.cam

And your disk prints this in dmesg. How does that influence things? I haven't seen this before anywhere.
da0: Delete methods: <NONE(*),ZERO>

Because of this I'm particularly interested in:
sysctl kern.cam.da.0.delete_method
and
sysctl kern.cam.da.0.trim_count

I might be totally of in my thinking here, but you never know with such unpredictable problems.

Regards,
Ronald.
 
------=_Part_2759_327864946.1703239166820
Content-Type: text/html; charset=us-ascii
Content-Transfer-Encoding: 7bit

<html><head></head><body><br>
<p><strong>Van:</strong> Ronald Klop &lt;ronald-lists@klop.ws&gt;<br>
<strong>Datum:</strong> vrijdag, 22 december 2023 10:37<br>
<strong>Aan:</strong> void &lt;void@f-m.fm&gt;<br>
<strong>CC:</strong> freebsd-fs &lt;freebsd-fs@freebsd.org&gt;<br>
<strong>Onderwerp:</strong> Re: measuring swap partition speed</p>

<blockquote style="padding-right: 0px; padding-left: 5px; margin-left: 5px; border-left: #000000 2px solid; margin-right: 0px">
<div class="MessageRFC822Viewer" id="P">
<div class="MultipartAlternativeViewer">
<div class="TextHTMLViewer" id="P.P.P">&nbsp;
<p><strong>Van:</strong> void &lt;void@f-m.fm&gt;<br>
<strong>Datum:</strong> vrijdag, 22 december 2023 01:05<br>
<strong>Aan:</strong> freebsd-fs &lt;freebsd-fs@freebsd.org&gt;<br>
<strong>Onderwerp:</strong> Re: measuring swap partition speed</p>

<blockquote style="padding-right: 0px; padding-left: 5px; margin-left: 5px; border-left: #000000 2px solid; margin-right: 0px">
<div class="MessageRFC822Viewer" id="P">
<div class="TextPlainViewer" id="P.P">On Thu, 21 Dec 2023, at 18:56, Ronald Klop wrote:<br>
&gt; A bit weird that a simple dd is so slow.<br>
&gt;<br>
&gt; Just a quick thought.<br>
&gt; Are your partitions aligned properly?<br>
<br>
no idea. How would I check? The system when installed,<br>
the auto-zfs option was selected, block size set to 4k. The swap<br>
was changed from the default 2gb to 12gb. geli encryption is<br>
active for the zfs filesystem but not for swap. It's only the swap<br>
that shows performance issues.<br>
<br>
&gt; Is other IO going on on the same time?<br>
<br>
not really, the tests were done with cron jobs deactivated, almost completely idle,<br>
swap was not being used at all.<br>
<br>
&gt; What does gstat say about %util, queue length and all the other stats<br>
&gt; while running the dd? Or "iostat -x -d 1".<br>
<br>
I'll try that next, thanks<br>
<br>
&gt; Could you try if another disk has the same issues?<br>
<br>
no spare or equivalent disk for this arch.<br>
<br>
&gt; How is your disk connected? USB-to-SATA-adapter? Any output of dmesg?<br>
<br>
Regular usb3 connection.<br>
<br>
da0: 400.000MB/s transfers<br>
da0: 953869MB (1953525168 512 byte sectors)<br>
da0: quirks=0x2&lt;NO_6_BYTE&gt;<br>
da0: Delete methods: &lt;NONE(*),ZERO&gt;<br>
--&nbsp;<br>
&nbsp;</div>

<hr></div>
</blockquote>
<br>
<br>
Can you provide more concrete information? Like:<br>
<br>
# usbconfig list<br>
ugen0.1: &lt;(0x1106) XHCI root HUB&gt; at usbus0, cfg=0 md=HOST spd=SUPER (5.0Gbps) pwr=SAVE (0mA)<br>
ugen0.2: &lt;vendor 0x2109 USB2.0 Hub&gt; at usbus0, cfg=0 md=HOST spd=HIGH (480Mbps) pwr=SAVE (100mA)<br>
ugen0.3: &lt;Silicon Labs CP2102 USB to UART Bridge Controller&gt; at usbus0, cfg=0 md=HOST spd=FULL (12Mbps) pwr=ON (100mA)<br>
ugen0.4: &lt;USB 3.0 Device USB 3.0 Device&gt; at usbus0, cfg=0 md=HOST spd=SUPER (5.0Gbps) pwr=ON (224mA)<br>
ugen0.5: &lt;Western Digital Elements 25A2&gt; at usbus0, cfg=0 md=HOST spd=SUPER (5.0Gbps) pwr=ON (224mA)<br>
<br>
And the output of "devinfo -v". That will give people much more information to work with instead of "anecdotal evidence" about your hardware being usb3.<br>
And the complete output of dmesg instead of only the "da0:" lines. There is more information in there which can be valuable for people to help you.<br>
<br>
About the alignment. You wrote in your first mail:<br>
"# gpart show<br>
<br>
=&gt; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;40 &nbsp;1953525088 &nbsp;da0 &nbsp;GPT &nbsp;(932G)<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;40 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;532480 &nbsp;&nbsp;&nbsp;1 &nbsp;efi &nbsp;(260M)<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;532520 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;2008 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;- free - &nbsp;(1.0M)<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;534528 &nbsp;&nbsp;&nbsp;&nbsp;4194304 &nbsp;&nbsp;&nbsp;2 &nbsp;freebsd-swap &nbsp;(2.0G)<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;4728832 &nbsp;&nbsp;&nbsp;&nbsp;4194304 &nbsp;&nbsp;&nbsp;4 &nbsp;freebsd-swap &nbsp;(2.0G)<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;8923136 &nbsp;&nbsp;&nbsp;&nbsp;4194304 &nbsp;&nbsp;&nbsp;5 &nbsp;freebsd-swap &nbsp;(2.0G)<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;13117440 &nbsp;&nbsp;&nbsp;&nbsp;4194304 &nbsp;&nbsp;&nbsp;6 &nbsp;freebsd-swap &nbsp;(2.0G)<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;17311744 &nbsp;&nbsp;&nbsp;&nbsp;4194304 &nbsp;&nbsp;&nbsp;7 &nbsp;freebsd-swap &nbsp;(2.0G)<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;21506048 &nbsp;&nbsp;&nbsp;&nbsp;4194304 &nbsp;&nbsp;&nbsp;8 &nbsp;freebsd-swap &nbsp;(2.0G)<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;25700352 &nbsp;1927823360 &nbsp;&nbsp;&nbsp;3 &nbsp;freebsd-zfs &nbsp;(920G)<br>
&nbsp;&nbsp;&nbsp;1953523712 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;1416 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;- free - &nbsp;(708K)<br>
"<br>
<br>
Your dd tests were on da0p4 which starts on block 4728832.<br>
Assuming "gpart list" shows "Sectorsize: 512".<br>
(4728832 * 512) mod 4096 = 0, so the partitiion is aligned on a 4KB page size. And the calculation is also 0 for 8KB (is this the page size of arm64?) which is good.<br>
AFAIK: this is properly aligned such that the hardware does not need to double write or read-before-write when paging out.<br>
<br>
Up until now I haven't seen anything which would explain the slow dd speed on&nbsp;of=/dev/da0p4 vs the quick dd on of=/mnt/test8k.bin.<br>
<br>
Regards,<br>
Ronald.<br>
&nbsp;</div>
</div>
</div>
</blockquote>
<br>
Just did the same test on my RPI4 running FreeBSD 15.0-CURRENT of Dec 14.<br>
Used an unused partition on spinning disk. My used swap is on an ssd nowadays.<br>
<br>
[root@rpi4 ~]# dd if=/dev/urandom of=/dev/da1p2 bs=8k count=25000 conv=sync status=progress<br>
&nbsp; 193200128 bytes (193 MB, 184 MiB) transferred 10.024s, 19 MB/s<br>
25000+0 records in<br>
25000+0 records out<br>
204800000 bytes transferred in 10.592984 secs (19333551 bytes/sec)<br>
<br>
NB: using bs=128k makes it go to 69MB/s.<br>
<br>
# gpart show<br>
=&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 40&nbsp; 1953458096&nbsp; da1&nbsp; GPT&nbsp; (931G)<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 40&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 102400&nbsp;&nbsp;&nbsp; 1&nbsp; efi&nbsp; (50M)<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 102440&nbsp;&nbsp;&nbsp;&nbsp; 8388608&nbsp;&nbsp;&nbsp; 2&nbsp; freebsd-swap&nbsp; (4.0G)<br>
&nbsp;&nbsp;&nbsp;&nbsp; 8491048&nbsp; 1944967088&nbsp;&nbsp;&nbsp; 3&nbsp; freebsd-zfs&nbsp; (927G)<br>
<br>
ugen0.5: &lt;Western Digital Elements 25A2&gt; at usbus0<br>
umass1 on uhub0<br>
umass1: &lt;Western Digital Elements 25A2, class 0/0, rev 3.00/10.04, addr 4&gt; on usbus0<br>
da1 at umass-sim1 bus 1 scbus1 target 0 lun 0<br>
da1: &lt;WD Elements 25A2 1004&gt; Fixed Direct Access SPC-4 SCSI device<br>
da1: Serial Number 575843314538354834414536<br>
da1: 400.000MB/s transfers<br>
da1: 953837MB (1953458176 512 byte sectors)<br>
da1: quirks=0x2&lt;NO_6_BYTE&gt;<br>
<br>
# usbconfig list<br>
ugen0.1: &lt;(0x1106) XHCI root HUB&gt; at usbus0, cfg=0 md=HOST spd=SUPER (5.0Gbps) pwr=SAVE (0mA)<br>
ugen0.2: &lt;vendor 0x2109 USB2.0 Hub&gt; at usbus0, cfg=0 md=HOST spd=HIGH (480Mbps) pwr=SAVE (100mA)<br>
ugen0.3: &lt;Silicon Labs CP2102 USB to UART Bridge Controller&gt; at usbus0, cfg=0 md=HOST spd=FULL (12Mbps) pwr=ON (100mA)<br>
ugen0.4: &lt;USB 3.0 Device USB 3.0 Device&gt; at usbus0, cfg=0 md=HOST spd=SUPER (5.0Gbps) pwr=ON (224mA)<br>
ugen0.5: &lt;Western Digital Elements 25A2&gt; at usbus0, cfg=0 md=HOST spd=SUPER (5.0Gbps) pwr=ON (224mA)<br>
<br>
<br>
Found some more things to check:<br>
<br>
Do these settings have something non-default?<br>
# sysctl kern.geom.disk<br>
# sysctl kern.cam<br>
<br>
And your disk prints this in dmesg. How does that influence things? I haven't seen this before anywhere.<br>
da0: Delete methods: &lt;NONE(*),ZERO&gt;<br>
<br>
Because of this I'm particularly interested in:<br>
sysctl kern.cam.da.0.delete_method<br>
and<br>
sysctl kern.cam.da.0.trim_count<br>
<br>
I might be totally of in my thinking here, but you never know with such unpredictable problems.<br>
<br>
Regards,<br>
Ronald.<br>
&nbsp;</body></html>
------=_Part_2759_327864946.1703239166820--



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?478987228.2760.1703239166835>