Dålig prestanda ESXi NFS/iSCSI

Permalänk
Medlem

Dålig prestanda ESXi NFS/iSCSI

Hej!

Jag har en ESXi-server och en separat NAS enligt följande:

ESXi 5.1.0: Xeon E3-1230v2 & 32GB RAM
NAS: Pentium G620 & 16GB RAM

På min NAS kör jag Debian och mjukvaruraid (mdadm), 6 diskar. Alla partitioner är 4K alignade med parted. Debian är installerat på en USB-sticka.

Själva raid-konfigen är lite speciell eftersom det är 4x750GB och 2x1TB:
Det är alltså 6x750GB i RAID5 samt 2x250GB i RAID1. Den partition jag vill använda till ESXi host är 2x250GB i RAID1.

Det är inget fel på prestandan på nätverket, uppmätt med TPTEST från en virtuell host (client) till NAS (server):
TCP Send: 777203802 bps (777.20 Mbit/s)
TCP Recv: 751229858 bps (751.23 Mbit/s)

Kör jag en överföring via FTP så kommer jag upp i ca 50MB/s vilket inte heller är strålande men ändå bättre än vad jag får med NFS/iSCSI.

När jag mountar ESXi mot en NFS på nasen så kommer jag upp i ca 15MB/s och sätter jag async så kommer jag upp i ca 30MB/s.
iSCSI ger också ca 30MB/s.

Detta har medfört att jag inte vill köra mina virtuella maskiner mot NAS via iSCSI/NFS eftersom det är för dålig prestanda. Förstår dock inte varför det är så långsamt. Har uteslutit att det sker skrivningar till den andra raid-partitionen genom att umounta den partitionen.

Kan det vara så illa att min CPU är den begränsande faktorn? Eller kan det bero på att jag har installerat Debian på en USB-sticka?
Har för mig att många här får upp betydligt högre hastigheter på sämre hårdvara. Någon inställning jag kan ha missat?

Nedan en dstat/iostat under FTP-överföring:

----total-cpu-usage---- -dsk/total- -net/total- ---paging-- ---system-- usr sys idl wai hiq siq| read writ| recv send| in out | int csw 13 41 31 8 0 6| 0 92M| 94M 596k| 0 0 | 15k 38k 2 65 28 0 0 4|4096B 173M| 92M 295k| 0 0 | 19k 56k 2 46 32 18 0 1|4096B 118M| 91M 287k| 0 0 |9868 37k 1 7 52 39 0 1| 0 32k| 59M 184k| 0 0 |5392 6356 2 9 33 55 0 2|1568k 1792k| 72M 229k| 0 0 |6120 8132 2 57 28 8 0 6|4096B 134M| 91M 285k| 0 0 | 15k 44k 1 78 0 19 0 3| 0 193M| 58M 176k| 0 0 | 14k 61k 1 62 0 36 0 2|4096B 189M| 89M 279k| 0 0 |9073 50k 1 63 0 34 0 3| 0 187M| 96M 304k| 0 0 |9794 50k 1 28 26 44 0 1|4096B 80M| 84M 267k| 0 0 |7566 21k 1 29 42 27 0 2| 0 2796k| 56M 168k| 0 0 |7078 16k 1 57 39 0 0 4|4096B 208M| 15M 37k| 0 0 |4638 49k

Visa signatur

RIPE LIR

Permalänk
Medlem

Det är skillnad på 100% läs eller skriv och när du börjar få 80/20.

Kör du iscsi kan du använda esxtop för att se vad du får för svarstider mot lagringen.. skulle gissa på att du har höga svarstid och därför får dålig prestanda.

http://kb.vmware.com/selfservice/microsites/search.do?languag...

Har du låga värden på KAVG (0-10ms) och höga på DAVG (allt över 15 ms) så är det att lagringen inte orkar med.

Edit:
Esxtop går inte att använda om du kör NFS har jag för mig.

Edit2: Förutsätter att du fått de där hastigheterna från en VM som kör på iSCSI/NFS ?

Visa signatur

"Datorn har ju fan mer dragningskraft än jorden. Skulle jag ramla skulle jag hamna i datorstolen & inte på golvet."

Permalänk

iSCSI är känslig för nätverksfel; kolla noga efter CRC-fel eller liknande på länkarna. Testa sedan med att öka MTU till 9000 och öka ködjupet för iSCSI på bägge sidor (med risk för högre latency)

Sedan använder VMFS 5 8KB block, om filsystemet du använder för NFS, eller mdadm, använder mindre block än så kan du kanske få lite bättre fart genom att öka blockstorleken.

Visa signatur

Two types of people laugh at the law: those that break it and those that make it.

Permalänk
Medlem
Skrivet av JZ0NiC:

Det är skillnad på 100% läs eller skriv och när du börjar få 80/20.

Kör du iscsi kan du använda esxtop för att se vad du får för svarstider mot lagringen.. skulle gissa på att du har höga svarstid och därför får dålig prestanda.

http://kb.vmware.com/selfservice/microsites/search.do?languag...

Har du låga värden på KAVG (0-10ms) och höga på DAVG (allt över 15 ms) så är det att lagringen inte orkar med.

Edit:
Esxtop går inte att använda om du kör NFS har jag för mig.

Edit2: Förutsätter att du fått de där hastigheterna från en VM som kör på iSCSI/NFS ?

esxtop ger inte mycket information när jag kör NFS
Hastigheterna för iSCSI/NFS har jag mätt upp genom att med vSphere Client öppna datastore och sedan ladda upp en ISO, väldigt basic test alltså.

Skrivet av RulerOfHeck:

iSCSI är känslig för nätverksfel; kolla noga efter CRC-fel eller liknande på länkarna. Testa sedan med att öka MTU till 9000 och öka ködjupet för iSCSI på bägge sidor (med risk för högre latency)

Sedan använder VMFS 5 8KB block, om filsystemet du använder för NFS, eller mdadm, använder mindre block än så kan du kanske få lite bättre fart genom att öka blockstorleken.

Körde en ifconfig på NASen och errors:0 på både RX och TX. Har tyvärr inte stöd för jumbo frames på min switch så det är inte ett alternativ.
Blocksize verkar vara 4KB.

Visa signatur

RIPE LIR

Permalänk
Medlem
Skrivet av tomle:

esxtop ger inte mycket information när jag kör NFS
Hastigheterna för iSCSI/NFS har jag mätt upp genom att med vSphere Client öppna datastore och sedan ladda upp en ISO, väldigt basic test alltså.

Ett väldigt intetsägande test med andra ord, det kan ju i själva verket vara att du inte har något problem i huvudtaget. Upp med en VM och testa prestandan i den för guds skull.
Tex med http://www.techpowerup.com/downloads/1749/ATTO%20Disk%20Bench...

Har du olika nätverkskort för mgmt och storage eller delar du nätverkskort för det?

Visa signatur

"Datorn har ju fan mer dragningskraft än jorden. Skulle jag ramla skulle jag hamna i datorstolen & inte på golvet."

Permalänk
Medlem
Skrivet av tomle:

esxtop ger inte mycket information när jag kör NFS
Hastigheterna för iSCSI/NFS har jag mätt upp genom att med vSphere Client öppna datastore och sedan ladda upp en ISO, väldigt basic test alltså.

Precis JZ0NiC skriver så är det testet inget bra. Detta för att kommunikationen går via management-interfacet. Även om det är gig-anslutet så har den processen väldigt låg prio hos ESXi. Så även om du hade haft en super-san hade det gått lika snabbt/långsamt.

Testa prestandan inifrån en VM.

Visa signatur

I/O is everything !

Permalänk
Medlem
Skrivet av JZ0NiC:

Ett väldigt intetsägande test med andra ord, det kan ju i själva verket vara att du inte har något problem i huvudtaget. Upp med en VM och testa prestandan i den för guds skull.
Tex med http://www.techpowerup.com/downloads/1749/ATTO%20Disk%20Bench...

Har du olika nätverkskort för mgmt och storage eller delar du nätverkskort för det?

Kör samma nätverkskort Intel (82541PI) för mgmt och storage, har dock ett Realtek som samlar damm, värt att använda det för mgmt?

Har hunnit köra några tester med NFS, bilder nedan:
NFS (async):

NFS (async):

NFS (sync):

NFS (sync):

iSCSI:

Ser ut som om iSCSI är snabbare än NFS (sync) vid små skrivningar och antagligen mitt bästa alternativ eftersom man inte vill köra NFS(async)?
Hur är hastigheterna, borde jag förvänta mig mer?

Vill även tillägga:

tomle@nas:/mnt/raid1# dd if=/dev/zero of=iscsi2 bs=4M count=8000 8000+0 records in 8000+0 records out 33554432000 bytes (34 GB) copied, 349.698 s, 96.0 MB/s

Visa signatur

RIPE LIR

Permalänk
Medlem

Kör du async så kan det ju hända att du får korrupt data vid strömavbrott, har du en UPS så är det ju en betydligt mindre risk att ta.
Det är egentligen en avvägningsfråga, har du möjlighet att ta backup på dina vms, typ (Veeam Backup Free Edition) så kan du ju köra på NFS async och den dagen (om) det skiter sig så får du läsa tillbaka en backup av maskinerna som inte vill vara med.

Det är absolut inget fel på din hastighet för den HW du har. Frågan är ju om det går att få upp skrivhastigheten.
Nu vet jag inte hur NFS async fungerar i botten men jag antar att den cache:ar direkt till RAM innan det skrivs ned på disk (i sin egen takt)
Det låter ju som att det är CPUn som är för klen i din NAS.

Edit: beroende på vad du ska ha på din NAS, så kan du ju tex köra NFS inifrån en VM också..
Så om du ska tex dela linuxisos via torrents så behöver du ju bara ta backup på "C" disken, medans "D" är en Separat disk som du NFS moterat i OSet.
på så sätt slipper du oroa dig att någon befintlig data eller filsystemet blir korrupt där du har dina linuxisos. Det enda som i så fall kan bli korrupt är det som just då håller på att laddas ner.

Hoppas du förstår hur jag menar.

Visa signatur

"Datorn har ju fan mer dragningskraft än jorden. Skulle jag ramla skulle jag hamna i datorstolen & inte på golvet."

Permalänk
Medlem

Tanken är att det ska rulla på så stabilt som möjligt, kör mail/dns/webserver och lite sånt på den så det känns rätt onödigt att köra RAID1 och sen NFS async och bara vänta på problem
Tycker bara det verkar konstigt att folk med en HP NL36L får upp högre hastigheter över NFS än vad jag får med min G620 som ska vara ca dubbelt så snabb enligt cpubenchmark...

Funderar på att köpa ett M1015, sätta in det i ESXi-servern och köra FreeNAS på den direkt med diskarna i burken men då behöver jag ett nytt chassi
Alternativt att byta ut Debian mot FreeNAS på NASen men frågan är om det ger så mycket, trist att behöva backa upp och återställa datat bara...

Eftersom iSCSI verkar leverera bra prestanda för allt över 1kb och NFS (sync) över 2kb, kan jag på något sätt tvinga den virtuella maskinen att använda sig av större blockstorlekar? Räcker det att jag anger det vid ext3-formatering? Eftersom jag kör 4K-diskar, alignas de automatiskt av ESXi när jag skapar en ny virtuell disk?

Visa signatur

RIPE LIR

Permalänk
Medlem
Skrivet av tomle:

Tanken är att det ska rulla på så stabilt som möjligt, kör mail/dns/webserver och lite sånt på den så det känns rätt onödigt att köra RAID1 och sen NFS async och bara vänta på problem
Tycker bara det verkar konstigt att folk med en HP NL36L får upp högre hastigheter över NFS än vad jag får med min G620 som ska vara ca dubbelt så snabb enligt cpubenchmark...

Funderar på att köpa ett M1015, sätta in det i ESXi-servern och köra FreeNAS på den direkt med diskarna i burken men då behöver jag ett nytt chassi
Alternativt att byta ut Debian mot FreeNAS på NASen men frågan är om det ger så mycket, trist att behöva backa upp och återställa datat bara...

Eftersom iSCSI verkar leverera bra prestanda för allt över 1kb och NFS (sync) över 2kb, kan jag på något sätt tvinga den virtuella maskinen att använda sig av större blockstorlekar? Räcker det att jag anger det vid ext3-formatering? Eftersom jag kör 4K-diskar, alignas de automatiskt av ESXi när jag skapar en ny virtuell disk?

En gissning från min sida är att du har lite RAM på din NAS. Vad får du för skrivprestanda om du sitter lokalt på NASen?

/Zyber

Visa signatur

Jag är en optimist; det är aldrig så dåligt så att det inte kan bli sämre.

Permalänk
Medlem
Skrivet av zyberzero:

En gissning från min sida är att du har lite RAM på din NAS. Vad får du för skrivprestanda om du sitter lokalt på NASen?

/Zyber

16GB RAM

tomle@nas:/mnt/raid1# dd if=/dev/zero of=iscsi2 bs=4M count=8000 8000+0 records in 8000+0 records out 33554432000 bytes (34 GB) copied, 349.698 s, 96.0 MB/s

Visa signatur

RIPE LIR

Permalänk
Medlem
Skrivet av tomle:

16GB RAM

tomle@nas:/mnt/raid1# dd if=/dev/zero of=iscsi2 bs=4M count=8000 8000+0 records in 8000+0 records out 33554432000 bytes (34 GB) copied, 349.698 s, 96.0 MB/s

Sorry, tyckte det stod 1 GB.

Det var väldigt besynnerliga resultat. Vad är det för nätverkskort, och switch du har? (i båda ändar?)

Har du kört iperf (eller lik.) för att mäta hastigheten i båda riktningar?

Visa signatur

Jag är en optimist; det är aldrig så dåligt så att det inte kan bli sämre.

Permalänk
Medlem
Skrivet av zyberzero:

Sorry, tyckte det stod 1 GB.

Det var väldigt besynnerliga resultat. Vad är det för nätverkskort, och switch du har? (i båda ändar?)

Har du kört iperf (eller lik.) för att mäta hastigheten i båda riktningar?

Det är inget fel på prestandan på nätverket, uppmätt med TPTEST från en virtuell host (client) till NAS (server):
TCP Send: 777203802 bps (777.20 Mbit/s)
TCP Recv: 751229858 bps (751.23 Mbit/s)

Nätverkskort i NAS: inbyggt Realtek (tyvärr, bara en expansionsplats)
Nätverkskort ESXi: Intel 82541PI
Switch: Dlink DGS-1008D

Visa signatur

RIPE LIR

Permalänk
Medlem
Skrivet av zyberzero:

Sorry, tyckte det stod 1 GB.

Det var väldigt besynnerliga resultat. Vad är det för nätverkskort, och switch du har? (i båda ändar?)

Har du kört iperf (eller lik.) för att mäta hastigheten i båda riktningar?

Om du tittar på historiken i tråden så ser du att om han kör nfs med async så får han 90+MB/s både på skriv och läs

Visa signatur

"Datorn har ju fan mer dragningskraft än jorden. Skulle jag ramla skulle jag hamna i datorstolen & inte på golvet."

Permalänk
Medlem
Skrivet av tomle:

Tanken är att det ska rulla på så stabilt som möjligt, kör mail/dns/webserver och lite sånt på den så det känns rätt onödigt att köra RAID1 och sen NFS async och bara vänta på problem
Tycker bara det verkar konstigt att folk med en HP NL36L får upp högre hastigheter över NFS än vad jag får med min G620 som ska vara ca dubbelt så snabb enligt cpubenchmark...

Funderar på att köpa ett M1015, sätta in det i ESXi-servern och köra FreeNAS på den direkt med diskarna i burken men då behöver jag ett nytt chassi
Alternativt att byta ut Debian mot FreeNAS på NASen men frågan är om det ger så mycket, trist att behöva backa upp och återställa datat bara...

Eftersom iSCSI verkar leverera bra prestanda för allt över 1kb och NFS (sync) över 2kb, kan jag på något sätt tvinga den virtuella maskinen att använda sig av större blockstorlekar? Räcker det att jag anger det vid ext3-formatering? Eftersom jag kör 4K-diskar, alignas de automatiskt av ESXi när jag skapar en ny virtuell disk?

Kan ju som sagt vara för att du kör mjuvaruraid i botten.
Har du en singeldisk att testa med? ger den bra skriv på iscsi/nfs så pekar det ju mot att den inte orkar med din mjukvaruraid.

Ett annat alternativ kan ju vara att stoppa en SSD i ESXi servern. Så har du bara C disken lagrat där och ser till att resten av diskarna ligger på iSCSI/NFS

Kör du iSCSI så formateras volymen med VMFS5 (blocksize 1MB.) Men du har även "subblock" som är på 8KB
http://www.yellow-bricks.com/2011/07/13/vsphere-5-0-what-has-...

Kör du NFS så kör du inte vmfs i huvudtaget utan det snurrar på vad du ställer in på din NAS.

Visa signatur

"Datorn har ju fan mer dragningskraft än jorden. Skulle jag ramla skulle jag hamna i datorstolen & inte på golvet."

Permalänk
Medlem
Skrivet av tomle:

Alternativt att byta ut Debian mot FreeNAS på NASen men frågan är om det ger så mycket, trist att behöva backa upp och återställa datat bara...

Ett litet råd är att inte göra det. FreeNAS med ZFS klarar i princip inte av synkrona skrivningar över huvud taget och ESXi kommer att använda synkrona skrivningar utan att du kan göra något åt saken.

Permalänk
Medlem

Jag ska försöka testa en disk utan RAID och se hur det går, känns som om det inte finns så mycket mer att göra.
Eventuellt kanske jag biter i det sura äpplet och kör 6x750GB direkt mot disk istället för mot partitioner och skippar de sista 2x250GB men i så fall föredrar jag NFS så att jag inte behöver sätta av ett visst utrymme från början. Kanske hinner testa detta i helgen men det är aldrig kul att behöva kopiera data fram och tillbaka.

Visa signatur

RIPE LIR

Permalänk
Medlem

Har tittat lite på RAID-kort för att avlasta processorn. M1015 har dålig RAID-prestanda som jag har förstått och då man tydligen inte ska köra FreeNAS med ZFS så behöver jag antagligen leva vidare med Debian på NASen.

Hittar t.ex. Dell:
P400
Perc i/5
Perc i/6
P800 (enda kortet som har stöd för 2TB+)
Samtliga Dell-kort verkar vara ha bra prestanda i RAID5 och finns att hitta till ett lägre pris än M1015, nackdelen är att de bara har SATA1/2. Finns under 1000 sek inkl frakt, ibland med cache och BBU.

Alternativet är att jag skaffar en i3-3220.

Visa signatur

RIPE LIR

Permalänk
Medlem
Skrivet av tomle:

Har tittat lite på RAID-kort för att avlasta processorn. M1015 har dålig RAID-prestanda som jag har förstått och då man tydligen inte ska köra FreeNAS med ZFS så behöver jag antagligen leva vidare med Debian på NASen.

Hittar t.ex. Dell:
P400
Perc i/5
Perc i/6
P800 (enda kortet som har stöd för 2TB+)
Samtliga Dell-kort verkar vara ha bra prestanda i RAID5 och finns att hitta till ett lägre pris än M1015, nackdelen är att de bara har SATA1/2. Finns under 1000 sek inkl frakt, ibland med cache och BBU.

Alternativet är att jag skaffar en i3-3220.

Hur har det gått? Kommit fram till något?

Skickades från m.sweclockers.com

Visa signatur

"Datorn har ju fan mer dragningskraft än jorden. Skulle jag ramla skulle jag hamna i datorstolen & inte på golvet."

Permalänk
Medlem
Skrivet av JZ0NiC:

Hur har det gått? Kommit fram till något?

Skickades från m.sweclockers.com

Lackade till slut och bestämmde mig för att börja typ från början.
Ändrade så att jag fick

Lun 0 Path=/dev/md1,Type=blockio

och på något magiskt sätt så hoppade det igång. CPU-belastningen är i princip 0% under testerna!
Stora frågan är om det går att optimera mer, t.ex. få ESXi-servern att använda sig av större block.
Tänkte även sätta i extra NICs i burkarna och köra ISCSI separat med korskopplad Cat6 för att få ut så hög hastighet som möjligt.
Lärdomen är att köra ISCSI direkt mot "block device" utan några lager emellan. Tack till er som engagerat er

Visa signatur

RIPE LIR

Permalänk
Medlem

Se även till att slå igång jumbo frames på iscsi nätet, bör ge de dig lite extra kräm.

Visa signatur

AMD Ryzen 7950x3D | Asus ROG Strix B650E-E | 32GB G.Skill DDR5 6000Hz CL30 | ASUS TUF RX 7900 XTX OC | Cooler Master Tempest GP27U, Dell U2515H