Frank Steinmetzger wrote:
> Am Thu, Oct 12, 2023 at 10:44:39PM +0100 schrieb Michael:
>
>> Why don't you test throughput without encryption to confirm your assumption?
> What does `cryptsetup benchmark` say? I used to use a Celeron G1840 in my 
> NAS, which is Intel Haswell without AES_NI. It was able to do ~ 150 MB/s raw 
> encryption throughput when transferring to or from a LUKS’ed image in a 
> ramdisk, so almost 150 % of gigabit ethernet speed.

When I first set up the old 770T system, I did that.  It was faster with
no encryption on the 770T end but I did have encryption on my main rig's
end.  The difference was a pretty good bit.  Pretty much all my stuff is
encrypted.  Anyway, I was still using the old mount options and it was
still faster. 

I've never used that benchmark.  Didn't know it exists.  This is the
results.  Keep in mind, fireball is my main rig.  The FX-8350 thingy. 
The NAS is currently the old 770T system.  Sometimes it is a old Dell
Inspiron but not this time.  ;-)



root@fireball / # cryptsetup benchmark
# Tests are approximate using memory only (no storage IO).
PBKDF2-sha1       878204 iterations per second for 256-bit key
PBKDF2-sha256     911805 iterations per second for 256-bit key
PBKDF2-sha512     698119 iterations per second for 256-bit key
PBKDF2-ripemd160  548418 iterations per second for 256-bit key
PBKDF2-whirlpool  299251 iterations per second for 256-bit key
argon2i       4 iterations, 1048576 memory, 4 parallel threads (CPUs)
for 256-bit key (requested 2000 ms time)
argon2id      4 iterations, 1048576 memory, 4 parallel threads (CPUs)
for 256-bit key (requested 2000 ms time)
#     Algorithm |       Key |      Encryption |      Decryption
        aes-cbc        128b        63.8 MiB/s        51.4 MiB/s
    serpent-cbc        128b        90.9 MiB/s       307.6 MiB/s
    twofish-cbc        128b       200.4 MiB/s       218.4 MiB/s
        aes-cbc        256b        54.6 MiB/s        37.5 MiB/s
    serpent-cbc        256b        90.4 MiB/s       302.6 MiB/s
    twofish-cbc        256b       198.2 MiB/s       216.7 MiB/s
        aes-xts        256b        68.0 MiB/s        45.0 MiB/s
    serpent-xts        256b       231.9 MiB/s       227.6 MiB/s
    twofish-xts        256b       191.8 MiB/s       163.1 MiB/s
        aes-xts        512b        42.4 MiB/s        18.9 MiB/s
    serpent-xts        512b       100.9 MiB/s       124.6 MiB/s
    twofish-xts        512b       154.8 MiB/s       173.3 MiB/s
root@fireball / #



root@nas:~# cryptsetup benchmark
# Tests are approximate using memory only (no storage IO).
PBKDF2-sha1       741567 iterations per second for 256-bit key
PBKDF2-sha256     910222 iterations per second for 256-bit key
PBKDF2-sha512     781353 iterations per second for 256-bit key
PBKDF2-ripemd160  547845 iterations per second for 256-bit key
PBKDF2-whirlpool  350929 iterations per second for 256-bit key
argon2i       4 iterations, 571787 memory, 4 parallel threads (CPUs) for
256-bit key (requested 2000 ms time)
argon2id      4 iterations, 524288 memory, 4 parallel threads (CPUs) for
256-bit key (requested 2000 ms time)
#     Algorithm |       Key |      Encryption |      Decryption
        aes-cbc        128b       130.6 MiB/s       128.0 MiB/s
    serpent-cbc        128b        64.7 MiB/s       161.8 MiB/s
    twofish-cbc        128b       175.4 MiB/s       218.8 MiB/s
        aes-cbc        256b       120.1 MiB/s       122.2 MiB/s
    serpent-cbc        256b        84.5 MiB/s       210.8 MiB/s
    twofish-cbc        256b       189.5 MiB/s       218.6 MiB/s
        aes-xts        256b       167.0 MiB/s       162.1 MiB/s
    serpent-xts        256b       173.9 MiB/s       204.5 MiB/s
    twofish-xts        256b       204.4 MiB/s       213.2 MiB/s
        aes-xts        512b       127.9 MiB/s       122.9 MiB/s
    serpent-xts        512b       201.5 MiB/s       204.7 MiB/s
    twofish-xts        512b       215.0 MiB/s       213.0 MiB/s
root@nas:~#



Is that about what you would expect?  Fireball is on a 970 mobo.  It's
slightly newer.  I think the 770T is about 2 years older, maybe 3. 


>>>> If you're copying over the network, that will be the limiting factor.
>>> Someone posted some extra options to mount with and add to exports
>>> file.
> Ah right, you use NFS. If not, I’d have suggested not to use rsync over ssh, 
> because that would indeed introduce a lot of encryption overhead.
>

I thought nfs was the proper way.  I use ssh and I use rsync,
separately.  Didn't know they can be used together tho. 


>>> I still think encryption is slowing it down some.  As you say tho,
>>> ethernet isn't helping which is why I may look into other options later,
>>> faster ethernet or fiber if I can find something cheap enough. 
>> There are a lot of hypotheses in your statements, but not much testing to 
>> prove or disprove any of them.
>>
>> Why don't you try to isolate the cause by testing one system element at a 
>> time 
>> and see what results you get.
>> […]
>> Unless you're running Pentium 4 or some other old CPU, it is almost certain 
>> your CPU is capable of using AES-NI to offload to hardware some/all of the 
>> encryption/decryption load - as long as you have the crypto module built in 
>> your kernel.
> The FX-8350 may be old, but it actually does have AES instructions.
>
> Here is my Haswell i5 (only two years younger than the FX) with AES_NI:
>
> ~ LC_ALL=C cryptsetup benchmark
> # Tests are approximate using memory only (no storage IO).
> PBKDF2-sha1      1323959 iterations per second for 256-bit key
> PBKDF2-sha256    1724631 iterations per second for 256-bit key
> PBKDF2-sha512    1137284 iterations per second for 256-bit key
> PBKDF2-ripemd160  706587 iterations per second for 256-bit key
> PBKDF2-whirlpool  510007 iterations per second for 256-bit key
> argon2i       7 iterations, 1048576 memory, 4 parallel threads (CPUs) for 
> 256-bit key (requested 2000 ms time)
> argon2id      7 iterations, 1048576 memory, 4 parallel threads (CPUs) for 
> 256-bit key (requested 2000 ms time)
> #     Algorithm |       Key |      Encryption |      Decryption
>         aes-cbc        128b       679.8 MiB/s      2787.0 MiB/s
>     serpent-cbc        128b        91.4 MiB/s       582.1 MiB/s
>     twofish-cbc        128b       194.9 MiB/s       368.3 MiB/s
>         aes-cbc        256b       502.3 MiB/s      2155.4 MiB/s
>     serpent-cbc        256b        90.3 MiB/s       582.5 MiB/s
>     twofish-cbc        256b       194.0 MiB/s       368.6 MiB/s
>         aes-xts        256b      2470.8 MiB/s      2478.7 MiB/s
>     serpent-xts        256b       537.4 MiB/s       526.1 MiB/s
>     twofish-xts        256b       347.3 MiB/s       347.3 MiB/s
>         aes-xts        512b      1932.6 MiB/s      1958.0 MiB/s
>     serpent-xts        512b       532.9 MiB/s       522.9 MiB/s
>     twofish-xts        512b       348.4 MiB/s       348.9 MiB/s
>
> The 6 Watts processor in my Surface Go yields:
>         aes-xts        512b      1122,2 MiB/s      1123,7 MiB/s
>
> -- Grüße | Greetings | Salut | Qapla’ Please do not share anything
> from, with or about me on any social network. The severity of the itch
> is inversely proportional to the reach.

That may explain why I don't see as much load on my main rig then.  It
has the extra instructions.  I'm not sure if the 770T does or not.  It
has Ubuntu so I can't run the Gentoo CPU flag thingy.  So, I checked
/proc/cpuinfo and it doesn't show it on the 770T but my main rig
Fireball does.  So, it seems Fireball has it, older 770T NAS box does
not.  That could be a bottleneck.  Maybe. 

Eventually, I'll get this all sorted.  Fireball may become the NAS box
thingy.  New rig would be my main system.  Maybe.  Hard to say right
now.  There will be a new rig for my main system but not sure on rest.  o_O

One thing I did learn about LVM.  I hooked the drives I had on the old
Dell to the 770T and it saw the LVM drives setup right away.  I just
used cryptsetup as usual and off it went.  I've never did that before. 
Works just like a regular drive.  :-D  Nifty.

Dale

:-)  :-)

Reply via email to