dm-crypt beschleunigen

Der_Kanzler

Vice Admiral Special
Mitglied seit
11.11.2001
Beiträge
653
Renomée
2
nunja, ich habe mir mal ne neue 500gb platte gegönnt und hab darauf 3
verschlüsselte partitionen angelegt auf denen nu archlinux läuft.
im großen und ganzen bin ich ja zufrieden (wenn man mal von dem
problem absieht dass xfs + dmcrypt zu nem crash führt (vielleicht weiß hier auch wer was))

nunja wenn ich nun daten hin und herkopiere bin ich mit der gesamtperformance
nicht sonderlich zufrieden, die liegt irgendwo bei 30mb/s
das ist meinermeinung nach für nen x2 mit 2700mhz nich genug

hab auch mal mit openssl aes gebencht
(ich verwende aes 256 cbc essiv für meine platten)

type 16 bytes 64 bytes 256 bytes 1024 bytes 8192 bytes
aes-128 cbc 100201.20k 131601.76k 143532.80k 147012.27k 147759.10k
aes-192 cbc 88107.34k 114535.80k 123225.56k 126752.99k 127630.81k
aes-256 cbc 79909.02k 101249.36k 108964.68k 110785.19k 111435.78k

das schaut ja recht ordentlich aus, nur warum hab ich dann nur 30mb/s
wenn ich von einer unverschlüsselten auf die verschlüsselte kopiere
(die eine is ne 250gb ibm die mit sicherheit 50mb/s lesen kann)
außerdem ist mein system dann teilweise laut top mit 3-4 ausgelastet
und die maus reagiert kaum noch ...

also kurzum vielleicht fällt euch da was ein :)
 
kannst du mal auf ner Shell parallel "vmstat 1" laufen lassen und da mal einen Ausschnitt hier posten?
 
Sind das reine dmcrypt partitionen oder mit Luks?
Bei mir war dmcrypt in Reinform komischerweise nämlich auch ewig langsam und hat die CPU gestresst!

Was sagt dir denn ein hdparm -tT auf die verschlüsselte Partition?

Ich habe hier auch eine komplett Verschlüsseltes System mit aes-cbc-essiv 256bit und komme mit nem X2@2,2GHz auf ca. 70MBs

XFS funktiniert bei mir auf jeden Fall auch ohne Probleme
 
hdparm sagt auf dem mapper device 85mb/s
das andere werd ich mal später testen wenn ich mehr zeit hab
 
also, ich verwende schon luks...

nun zu vmstat
teilweise hat das system kaum reagiert
aber das wirst ja selber sehen ...


procs -----------memory---------- ---swap-- -----io---- -system-- ----cpu----
r b swpd free buff cache si so bi bo in cs us sy id wa
3 0 0 481940 592236 784124 0 0 2722 2652 343 1840 5 7 77 12
4 1 0 350464 635884 871924 0 0 43648 44660 4892 25407 6 50 18 27
4 2 0 210392 682648 965000 0 0 46720 50764 5639 28926 4 52 13 31
5 1 0 78556 713012 1067316 0 0 54656 54124 5116 30844 5 59 12 25
2 1 0 39184 704652 1114500 0 0 59008 55364 5464 32109 6 64 16 14
2 1 0 50204 688280 1119808 0 0 51840 59872 5385 33872 4 62 25 9
3 1 0 51816 676964 1129144 0 0 53248 53560 5509 30394 3 59 20 19
1 1 0 53156 663664 1140468 0 0 57472 56348 6352 31721 8 61 11 21
3 1 0 53160 651548 1151724 0 0 49408 49680 5564 27977 3 56 14 27
1 1 0 52904 643548 1163380 0 0 44544 46600 5276 26180 5 51 16 29
3 2 0 53612 632084 1173100 0 0 51456 49696 5405 27985 6 53 11 30
0 2 0 52132 622540 1183864 0 0 49920 49768 5752 28007 5 56 12 27
2 2 0 54072 594816 1208468 0 0 54528 55776 6141 31445 5 61 10 24
2 2 0 53816 570544 1233276 0 0 48384 46568 5431 26474 6 53 12 30
4 1 0 52892 548400 1257476 0 0 44800 56088 6019 31277 6 59 12 22
2 2 0 53192 531304 1274528 0 0 52096 42180 4870 24311 3 52 12 33
4 1 0 53556 531352 1273576 0 0 50184 50812 5630 29171 4 54 14 27
2 2 0 52088 531724 1274412 0 0 51192 48948 5695 28229 6 56 12 27
4 2 0 52340 531564 1273452 0 0 46464 47604 5132 26966 4 53 16 28
3 2 0 51952 532016 1273020 0 0 46208 44660 5072 25240 4 47 16 33
0 2 0 52756 533172 1273720 0 0 43648 49600 4602 27883 5 55 18 22
procs -----------memory---------- ---swap-- -----io---- -system-- ----cpu----
r b swpd free buff cache si so bi bo in cs us sy id wa
2 2 0 52260 532448 1274064 0 0 49792 46324 5248 26835 4 51 12 32
2 2 0 52496 532244 1274264 0 0 51456 49408 5495 28322 2 54 12 31
0 2 0 51848 527928 1265816 0 0 48128 51176 1784 28343 8 53 11 29
4 2 0 52344 526768 1262528 0 0 46592 47832 1138 26508 4 48 14 33
3 2 0 51784 525200 1253936 0 0 41216 51080 1042 27870 4 50 17 30
0 4 0 52548 525028 1253200 0 0 55296 37572 1261 12960 6 45 2 47
0 4 0 53256 521580 1245896 0 0 28928 72492 821 8499 6 38 1 55
0 2 0 59628 521580 1245944 0 0 0 0 347 822 3 22 0 76
0 2 0 52784 534076 1270832 0 0 20992 4 636 1813 5 7 6 82
3 1 0 52176 534340 1271924 0 0 54528 32216 4141 19640 6 43 7 45
0 2 0 52384 532540 1268740 0 0 54016 53300 3327 29836 4 60 11 26
5 1 0 54144 528312 1259132 0 0 48384 49988 1153 27649 5 53 17 26
0 2 0 52224 525864 1253940 0 0 43136 45332 1039 25113 5 48 16 30
0 3 0 51480 525376 1253236 0 0 49920 35172 1224 20911 4 43 12 43
2 2 0 54156 521116 1244356 0 0 37888 91996 982 17890 4 43 10 44
0 4 0 52648 521976 1244684 0 0 38272 39900 1022 2493 6 45 0 49
0 4 0 51556 523344 1245272 0 0 40448 40464 1036 2656 5 41 0 54
0 4 0 52532 522740 1243888 0 0 35968 35968 936 2386 3 40 0 57
1 4 0 54008 523348 1241456 0 0 38016 32512 951 2565 7 39 0 54
 
Ich habe meine Partitionen nach diesen Howto verschlüsselt, allerdings einmal mit AES-LRW und einmal mit AES-CBC.
Hatte dabei überlesen dass es auch ein aes-i586 Modul gibt. Hab das nun mal ausprobiert, und siehe da, der Unterschied ist beachtlich, bin noch bei weitere Benchmarks zu machen, als Vorgeschmack:

aes-lrw mit aes-Modul schrieb:
root@frickelbude:/mnt/daten# time dd if=/dev/zero of=./1gbfile bs=1024k count=1024
1024+0 Datensätze ein
1024+0 Datensätze aus
1073741824 Bytes (1,1 GB) kopiert, 41,9146 Sekunden, 25,6 MB/s

real 0m42.004s
user 0m0.012s
sys 0m5.784s
aes-lrw mit aes-i586-Modul schrieb:
root@frickelbude:/mnt/daten# time dd if=/dev/zero of=./1gbfile bs=1024k count=1024
1024+0 Datensätze ein
1024+0 Datensätze aus
1073741824 Bytes (1,1 GB) kopiert, 28,703 Sekunden, 37,4 MB/s

real 0m30.754s
user 0m0.004s
sys 0m5.400s

Also, probier das aes-i586 Modul mal aus, vielleicht hilfts ja ;-)
 
Wie das vmstat aussieht ist deine CPU schon gut ausgelastet.

mit "lsmod" kannst du schaun ob das aes oder aes-i586 geladen ist.

Hast du nun dmcrypt direkt laufen oder über luks?
 
ich verwende es via luks ...
ich werd mal genau nachsehn ob aes-i586 geladen is oder nich

update:

jo is nur aes_i586 geladen
also daran lags nich :(
 
Zuletzt bearbeitet:
hat denn keiner ne idee weil ich find das schon untragbar wie langsam mein system geworden is :(
auf der anderen seite brauch ich die verschlüsselung da der rechner für jederman zugänglich is ...
 
Kann es sein, dass es evtl. am Chipsatz deines Mainboards liegt?
Ich nehme an die 500GB ist S-ATA und die 250 IDE?

Ansonsten probier dochj mal eine Gentoo Live CD, mounte damit die Partitionen und Test dann mal den Datendurchsatz.
Wenns du dann die selben Ergebnisse hast liegt es schonmal mi Sicherheit kaum an einer Fehlkonfiguration.
 
beide sind sata,
der durchsatz im nicht verschlüsselten modus ist ja mit 60mb/s durchaus gut
 
An der Platte liegt es ja auch nicht, das vmstat zeigt dass deine CPU am Anschlag ist. Er verwendet für das Verschlüsseln offenbar nur eine CPU - und die ist am Anschlag (sys 50%).
 
hmm kann man da nix machen?

Nein, nicht wirklich. Man könnte per Profiling schauen, wo der Flaschenhals liegt, und dann programmiertechnisch daran arbeiten. Generell wirst du aber davon ausgehen müssen, dass sich da grundsätzlich erstmal nicht viel mehr rausholen lässt. Ich kann jetzt ein paar Vermutungen anstellen, wieso das so lahm ist, aber sicher kann ich dir das auch nicht sagen.
 
Man koennte das ganze evtl. auch parallelisieren, zwei gleiche, verschluesselte Partitionen auf der Platte erstellen und die im RAID 0 laufen lassen, das sollte beide Cores auslasten. 64-Bit ist auch nicht zu verachten, bringt bei mir mit Loop-AES ungefaehr doppelten Durchsatz.
 
Ich denke nicht, dass er bei einem RAID0 das ganze mit 2 Cores macht, das Verschlüsseln passiert denk ich vor der Aufteilung, aber wissen tu ich es nicht ;)
Da passt das 64bit schon eher...
 
hmm jo ich hatte 64 bit getestet, da hab ich aber mit luks und dm-crypt ein oops nach dem anderen bekommen => 32bit ;)
und ein raid 0 kommt mir nich in die tüte, dazu bin ich zu alt :)
ich hatte 1x nen raid 0 und dann sind mir 300gb an videodaten kaputtgegangen (selbst gefilmt, war zwar net weiter tragisch, da ich das bandmaterial noch hatte
aber trotzdem)
 
ein anderer Weg wäre über spezielle Verschlüsselungshardware zu gehen.
Hat damit jemand Erfahrung ?
imho gabs mal von IBM RSA Karten aber vermutlich eher für die mainframes.
der VIA C7 hat auch eine Verschlüsselungsroutine eingebaut, es wäre interessant damit einen "crypto server" zu bauen.
 
die frage ist halt hab die via cpus mit ihrer aes engine schneller sind als nen athlon 64 ...
 
Zumindest theoretisch schlagen C5P und C7 jede andere CPU um Laengen. Ich hatte auch schon den Gedanken umzusteigen, allerdings lohnt sich das in meinem Fall nicht wirklich, schon mit nem Sempron 2800+ limiteren hier die Platten.
 
also ich hab auch hier luks mit nem c2d am laufen und 64bit gentoo. keine probleme und mit nem a64 auch nie probleme gehabt. die beiden cores werden auch immer super ausgenutzt, also würd ich dir zum dual core raten. hab 2 kcryptd prozesse die auch schön malochen wenn ich was kopiere. hab auch mit raid0 zusammen 120mb/s beim dem hdparm benchmark.
 
Zuletzt bearbeitet:
Du kannst aus Spaß mal aes 128 cbc essiv probieren und schaun, wie schnell das ist.
Klingt zwar nicht so gut wie 256 - wenn du nicht fürs Pentagon arbeitest sollte das aber auch reichen ;)
 
Hallo,

ich bin gerade durch Google auf diesen Thread gestoßen.

Derzeit benutze ich Ubuntu 7.04 Feisty Fawn und habe dort exakt das selbe Problem.

Die Verschlüsselung mittels Cryptsetup/LUKS funktioniert prinzipiell zwar, beim Kopieren von größeren Datenmengen ist das System aber so ausgelastet, dass zeitweise sogar die Maus stecken bleibt.

Hat für dieses Problem vielleicht schon irgend jemand eine Lösung gefunden?
 
Zurück
Oben Unten