Nätverksprestanda mellan VM i ESXi

Permalänk
Medlem

Nätverksprestanda mellan VM i ESXi

Efter ett tag i drift har jag börjat leta prestanda flaskhalsar i min ESXi server. En viktig komponent i en server är ju självklart nätverket och då min setup är en ”all-in-one” lösning med filserver och andra VM i samma maskin så är de är viktigt att nätverket är på topp.

Setup

  • Moderkrot: Asus Rampage II Extreme, X58

  • CPU: Intel I7-920 (svårklockad C0 modell)

  • RAM: 30GB @ 1600Mhz

  • Chassi: Norco 4020

  • raidkort: Intel SASUC8I (flashat med LTI, TI firmware)

  • HDD/SSD: 128GB SSD + 8x 2tb HDD

VM
• FreeBSD - Router med PfSense 2.0.3
• OpenIndiana - Filserver med OpenIndiana + ”Napp-It” mjukvara för att hantera ZFS.
• Ubuntu - Ubuntu server 12.04 där jag kör web och lite andra tjänster på
• Windows - Win7 maskin som jag kör övriga tjänster på. De jag inte orkar eller kan köra på linux.

Disclamer
Jag har ingen direkt utbildning inom nätverk, så rätta mig gärna om jag skriver några felaktigheter.

Bakgrund
Samtliga maskiner (förutom routern) kör med vmxnet3 som virtuellt nätverkskort, kortet är specificerat till 10Gb/s men det finns i teorin ingen övre gräns som jag har fattat det. Så 10 Gb/s är vad man kan förvänta sig att filöverföringar mellan de virtuella maskinerna skall klara.
För att prestandatesta har jag använt iperf.
Jag kör följande med lite olika TCP windows size 64K-2M.

iperf –c 192.168.x.x -w 64K

Detta är resultatet från några av testerna.

Iperf från Win7 till Ubuntu 12.04
0.0-10.0 sec 11.8 Gbytes 10.1 Gbits/s

Iperf mellan Ubuntu 12.04 och Ubuntu 12.04
0.0-10.0 sec 20.8 GBytes 17.9 Gbits/sec

Iperf från OpenIndiana till Ubuntu 12.04
0.0-10.0 sec 3.52 GBytes 3.02 Gbits/sec

Iperf från Ubuntu 12.04 till OpenIndiana
0.0-10.0 sec 8.08 GBytes 6.94 Gbits/sec

Vad jag provat
Två första punkterna har jag följt denna blog.

  1. Jumbo frames
    Jumboframes är en "storlek av paket" (aka MTU) för nätverk. Standard är 1,5Kb och med Jumbo frames så kan paketen vara 9Kb stora. Detta skall kunna ge en prestanda ökning men vad jag har sett så hände det inte så mycket för mina maskiner när jag ändrade MTU. Har ändrat på samtliga maskiner och även i ESXi och i den virtuella switchen.

  2. disable LSO
    En sak som gjorde STOR skillnad var att inte använda mig av LSO. Det står tydligt förklarat i länken ovan vad prestandaförlusten troligtvis beror på och varför man använder det med fysiska kort.

  3. CPU prestanda
    Här är ett kvarstående problem som jag fortfarande inte löst, men tror att det är någon optimering man kan göra för att minska CPU belastningen och öka nätverksprestandan.
    Klicka för "hela" bilden!

    CPU prestandan då jag först mäter från "Ubuntu 1" till OpenIndiana, sen från "Ubuntu 1" till "Ubuntu 2". I första fallet fick jag som förut ca 6Gb/s (100% CPU) och i andra fallet ~14Gb/s och mycket lägre CPU last.

Problemet
Som vi ser så är prestandan mellan de flesta maskinerna godkänd men från just min filserver (OpenIndiana) maskinen så får jag inte ut den hastighet jag hade önskat.
Någon som har haft samma problem? Är det möjligt att öka prestandan i OpenIndiana och i så fall hur?

Visa signatur

Gaming: Asus P8P67, Intel i5-2500k, Asus 7970 DCII, 8gb ram, 300gb velociraptor
Server: Asus Rampage II, Intel i7-980x, 6970 ref, 30gb ram, SASUC8I + 8st 2tb diskar + 1st 128gb SSD

Permalänk
Medlem

Followup:
Har än så länge inte hittat någon lösning för att öka prestandan i OpenIndiana. Napp-it går även köra i andra operativsystem, har provat alternativ som omniOS men samma problem där, verkar vara en kombination av solaris+vmxnet3 virtuella nätverkskortet som inte lirar så bra tillsammans. Installerade FreeNAS som har freeeBSD i botten och där fick jag 20Gbit/s i send och ~5Gbit/s i läs. Har nu flyttat min ZFS raid från Napp-it till FreeNAS. Var mycket nöjd med Napp-it men prestandan mellan diskarna och ESXi var det ända som gjorde att jag bytte. nu får jag betydligt bättre prestanda ~700Mbyte/s i läs och ~400Mbyte/s i skriv från en virtuell windows maskin installerad på Datastore delad med NFS till ESXi. Nu är det diskarrayen som är flaskhalsen, så skall det vara!

Visa signatur

Gaming: Asus P8P67, Intel i5-2500k, Asus 7970 DCII, 8gb ram, 300gb velociraptor
Server: Asus Rampage II, Intel i7-980x, 6970 ref, 30gb ram, SASUC8I + 8st 2tb diskar + 1st 128gb SSD

Permalänk
Hedersmedlem

iperf är möjligen inte idealiskt för att mäta prestanda i alla lägen, har du testat med ett filbaserat verktyg, typ IoZone?

Visa signatur

SWECLOCKERS.COM :: If Quake was done today ::
WS: Gigabyte Z690 UD DDR5 :: Core i5 12600K :: 32 GB RAM :: Geforce RTX 3060 Ti :: 10 GbE NIC :: AOC C32G1 32" :: Seagate FireCuda 530 1TB :: Deepcool Matrexx 55
NAS: SM X10-SLM-F :: Mellanox Connect2X SFP+ :: Intel XL710-QDA1 QSFP+

Permalänk
Medlem
Skrivet av Kr^PacMan:

iperf är möjligen inte idealiskt för att mäta prestanda i alla lägen, har du testat med ett filbaserat verktyg, typ IoZone?

Jag har benchmarkat mitt system i olika steg. Lägsta "nivå" eller vad man skall säga är Bonnie++ testet jag gjorde från napp-it interfacet där jag fick sekvensiell läs och skriv från min array. När jag sedan försökte göra mer praktiska manövrar som att skicka filer mellan VMs (internt i servern) så tyckte jag det gick mycket långsammare än vad jag visste diskarrayen klarade. Så jag började leta flaskhalsar och insåg att nätverksprestandan mellan Solaris maskinerna jag hade och övriga maskiner (win7, FreeBSD,ubuntu) inte var lika bra. Skrev denna post för att kolla om någon annan haft liknande erfarenheter men den kanske var lite för specifik menar du att iperf inte passar bra för att benchmarka nätverk, för det är enbart det jag använt verktyget till. IOzone ser ju intressant ut, känns som en kombination av Bonnie och iperf.

Skickades från m.sweclockers.com

Visa signatur

Gaming: Asus P8P67, Intel i5-2500k, Asus 7970 DCII, 8gb ram, 300gb velociraptor
Server: Asus Rampage II, Intel i7-980x, 6970 ref, 30gb ram, SASUC8I + 8st 2tb diskar + 1st 128gb SSD

Permalänk
Hedersmedlem

Det känns som att OpenIndiana har en dålig drivrutin. Om det inte finns någon bättre man kan använda och detta är viktigt för dig skulle jag bytt filserver OS'et.

Visa signatur

Använd gilla för att markera nyttiga inlägg!

Permalänk
Skrivet av kufra:

Followup:
Har än så länge inte hittat någon lösning för att öka prestandan i OpenIndiana.

Hur mycket har du petat på konfigen för nätverket? Har aldrig kört openindiana men om det är som Solaris så finns det dokumentation från Oracle, typ www.oracle.com/technetwork/server.../ovm3-10gbe-perf-1900032....

FreeBSD finns det vansinnigt mycket att peta på. Här är någon som har skrivit ihop ett exempel, så man slipper läsa tusen man-sidor själv

https://calomel.org/freebsd_network_tuning.html

Testa även att stänga av Hyper-Threading på dina VM:s om du har CPU-prestanda så det räcker (det kan göras per vm):

Citat:

We highly recommend disabling Hyper-Threading for latency and message rate sensitive applications like firewalls and routers.

https://calomel.org/network_performance.html

Visa signatur

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

Permalänk
Medlem
Skrivet av RulerOfHeck:

Hur mycket har du petat på konfigen för nätverket? Har aldrig kört openindiana men om det är som Solaris så finns det dokumentation från Oracle, typ www.oracle.com/technetwork/server.../ovm3-10gbe-perf-1900032....

Jag har försökt en hel del, men tillslut gav jag upp. Kan vara bristande kunskap och google skills men denna kille har försökt med många trix som jag också provat.
http://blog.cyberexplorer.me/2013/03/improving-vm-to-vm-network-throughput.html

Skrivet av RulerOfHeck:

FreeBSD finns det vansinnigt mycket att peta på. Här är någon som har skrivit ihop ett exempel, så man slipper läsa tusen man-sidor själv

https://calomel.org/freebsd_network_tuning.html

Tackar, FreeBSD verkar ju funka riktigt bra som det är nu. Dock aldrig fel med länkar som denna att läsa igenom, man lär sig mycket!

Skrivet av RulerOfHeck:

Testa även att stänga av Hyper-Threading på dina VM:s om du har CPU-prestanda så det räcker (det kan göras per vm):
https://calomel.org/network_performance.html

Ohh de visste jag inte att jag kunde stänga av hyperthreading för VM's specifikt. Det står att det är en potentiell säkerhetsrisk för gateway/routers vilket PFsense som jag använder är.

--------------------
Förhoppningsvis om någon vet hur man tweakar OpenIndiana för att öka nätverksprestandan så posta gärna det här, inte för att jag behöver hjälpen längre utan om någon annan vill lösa problemet i framtiden

Visa signatur

Gaming: Asus P8P67, Intel i5-2500k, Asus 7970 DCII, 8gb ram, 300gb velociraptor
Server: Asus Rampage II, Intel i7-980x, 6970 ref, 30gb ram, SASUC8I + 8st 2tb diskar + 1st 128gb SSD

Permalänk
Medlem

Efter att grävt i detta ämne en längre tid så har jag insett att det är rätt många faktorer som spelar roll här och som är långt mer avancerade än bara själva trafiken.

Min tanke om hur det funkar i praktiken (Så jag tror det funkar)

VM1 skall skicka data till VM2

1. VM1 skapar ett paket med data (upp till 65kB är största paketet jag sett från ubuntu till ubuntu)
2. VM1 använder TSO (TCP Segment Offload) för att packetera om det stora packetet i mindre delar, TSO kallas också för LSO (Large Segment Offload) och är som jag förstår det samma sak
3. VM1's VNIC skickar paketen till den "kopplade" vswitchen i det virtuella nätverket i ESXi
4. Switchen skickar packeten till VM2
5. VM2 använder RSO (Recieve Segment Offload) för att packetera ihop flera små paket och lägga dessa "större" paket i bufferten redo för läsning av cpun
6. VM2 Läser data från de stora paketet

Precis såhär verkar det fungera mellan mina två linuxmaskiner. Jag har loggat iperf överföringen från båda hållen med tcpdump men jag är inte tillräckligt kunnig för att kunna dra några slutsatser om datat jag samlat in. Jag har också kollat i prestanda fliken i Vsphere och kollat på antalet skickade paket, när jag skickar mellan linux och linux så är det väldigt få paket som skickas i jämförelse när jag skickar mellan linux och windows eller freebsd eller annat os (eller mellan freebsd och windows). Så segmenteringen behandlas olika beroende på vilket OS paketen skickas till?
Det finns något som heter GSO också och står för (Generic Segment Offload) men tror det är samma sak som LSO/TSO.

Jag har nog två frågor.
1. Har jag tänkt rätt "so far"?
2. Hur skall jag fortsätta härifrån? målet är ju självklart att få nätverksprestandan att bli som mellan mina två linuxmaskiner 10GBit/s+

(Antar det är bättre att bygga vidare på denna tråden än att skapa en ny likadan)

Visa signatur

Gaming: Asus P8P67, Intel i5-2500k, Asus 7970 DCII, 8gb ram, 300gb velociraptor
Server: Asus Rampage II, Intel i7-980x, 6970 ref, 30gb ram, SASUC8I + 8st 2tb diskar + 1st 128gb SSD

Permalänk

Lånar tråden lite snabbt.
Går och funderar lite på min backup lösning av Veeam
Har alla mina VMs på olika vlan och en rätt slö Cisco router som skyfflar runt dessa (24 Mbit/s), men vad tror ni om att tilldela ett nytt NIC till varje guest och köra ett virutuellt nätverk inom dessa så Veeam slipper gå ut via riktigta routern?

En idé jag fick när läste posterna ovan, kanske är det enda normala lösningen?

Visa signatur

Intel Core i7 860 3,6 GHz | Corsair 6GB DDR3 1600MHz | 580 GTX | Asrock P55 Deluxe3
Förra Gaming datorn Media datorn

Permalänk
Medlem
Skrivet av kufra:

Followup:
Har än så länge inte hittat någon lösning för att öka prestandan i OpenIndiana. Napp-it går även köra i andra operativsystem, har provat alternativ som omniOS men samma problem där, verkar vara en kombination av solaris+vmxnet3 virtuella nätverkskortet som inte lirar så bra tillsammans. Installerade FreeNAS som har freeeBSD i botten och där fick jag 20Gbit/s i send och ~5Gbit/s i läs. Har nu flyttat min ZFS raid från Napp-it till FreeNAS. Var mycket nöjd med Napp-it men prestandan mellan diskarna och ESXi var det ända som gjorde att jag bytte. nu får jag betydligt bättre prestanda ~700Mbyte/s i läs och ~400Mbyte/s i skriv från en virtuell windows maskin installerad på Datastore delad med NFS till ESXi. Nu är det diskarrayen som är flaskhalsen, så skall det vara!

Får man fråga hur du får så bra prestanda via NFS? Kör du ZFS sync disabled eller kör du SSD'n som ZIL?

Visa signatur

[Intel Core i5 2500k] [Asus P8Z68-V Pro] [2x ATI 6950 1gb] [Fractal Design XL] [Corsair HX 750W] [Corsair 16Gb 1600MHz] [OCZ SSD Vertex3 120GB]

Permalänk
Medlem
Skrivet av Stylaren:

Får man fråga hur du får så bra prestanda via NFS? Kör du ZFS sync disabled eller kör du SSD'n som ZIL?

Kör sync disabled då min data jag lagrar där med nfs inte är jätteviktig. Hade hellre kört med ssd ZIL men smakar det så kostar det men sitter med 8a diskar i raidZ2 och de benchar 400-600 MB/s i sekventiell läs och skriv. Men det får jag bara ut lokalt på freenas. När jag kör över iSCSI eller NFS så får jag kanske 200-300 och jag tror det är mitt nätverk som flaskar.

Skickades från m.sweclockers.com

Visa signatur

Gaming: Asus P8P67, Intel i5-2500k, Asus 7970 DCII, 8gb ram, 300gb velociraptor
Server: Asus Rampage II, Intel i7-980x, 6970 ref, 30gb ram, SASUC8I + 8st 2tb diskar + 1st 128gb SSD

Permalänk
Medlem
Skrivet av subaru_impreza:

Lånar tråden lite snabbt.
Går och funderar lite på min backup lösning av Veeam
Har alla mina VMs på olika vlan och en rätt slö Cisco router som skyfflar runt dessa (24 Mbit/s), men vad tror ni om att tilldela ett nytt NIC till varje guest och köra ett virutuellt nätverk inom dessa så Veeam slipper gå ut via riktigta routern?

En idé jag fick när läste posterna ovan, kanske är det enda normala lösningen?

Är de fortfarande esxi vi pratar om här? I så fall kör med e1000 eller vmxnet3 som virtuellt nic på dina vms och koppla till samma vswitch. Googla på veeam och de verkar göra backuper för Virtuella maskiner, men är de en VM eller någon extern mjukvara? Prestandamässigt så kommer du få ut gigabit utan problem, vill du få bättre än det så kommer du till samma sits som mig. Sen när det gäller om man bör sätta maskiner man separerat i olika Vlan till ett gemensamt lan för intern trafik så kan de finnas säkerhetsproblem.

Skickades från m.sweclockers.com

Visa signatur

Gaming: Asus P8P67, Intel i5-2500k, Asus 7970 DCII, 8gb ram, 300gb velociraptor
Server: Asus Rampage II, Intel i7-980x, 6970 ref, 30gb ram, SASUC8I + 8st 2tb diskar + 1st 128gb SSD

Permalänk
Skrivet av subaru_impreza:

Lånar tråden lite snabbt.
Går och funderar lite på min backup lösning av Veeam
Har alla mina VMs på olika vlan och en rätt slö Cisco router som skyfflar runt dessa (24 Mbit/s), men vad tror ni om att tilldela ett nytt NIC till varje guest och köra ett virutuellt nätverk inom dessa så Veeam slipper gå ut via riktigta routern?

En idé jag fick när läste posterna ovan, kanske är det enda normala lösningen?

Veeam använder sig av snapshot-backup så det enda den behöver komma åt är ESXi-hostarna/vCenter-servern.
Den behöver inte prata med varje enskild maskin

Permalänk
Medlem
Skrivet av FlippyBoy:

Veeam använder sig av snapshot-backup så det enda den behöver komma åt är ESXi-hostarna/vCenter-servern.
Den behöver inte prata med varje enskild maskin

Aha så den behöver bara ha tillgång till datastore. Men så om veeam ligger på samma server så kan man koppla upp sig mot datastore med nfs (om nu man kan dela dem från esxi) annars sftp

Skickades från m.sweclockers.com

Visa signatur

Gaming: Asus P8P67, Intel i5-2500k, Asus 7970 DCII, 8gb ram, 300gb velociraptor
Server: Asus Rampage II, Intel i7-980x, 6970 ref, 30gb ram, SASUC8I + 8st 2tb diskar + 1st 128gb SSD

Permalänk
Medlem
Skrivet av kufra:

Followup:
Har än så länge inte hittat någon lösning för att öka prestandan i OpenIndiana. Napp-it går även köra i andra operativsystem, har provat alternativ som omniOS men samma problem där, verkar vara en kombination av solaris+vmxnet3 virtuella nätverkskortet som inte lirar så bra tillsammans. Installerade FreeNAS som har freeeBSD i botten och där fick jag 20Gbit/s i send och ~5Gbit/s i läs. Har nu flyttat min ZFS raid från Napp-it till FreeNAS. Var mycket nöjd med Napp-it men prestandan mellan diskarna och ESXi var det ända som gjorde att jag bytte. nu får jag betydligt bättre prestanda ~700Mbyte/s i läs och ~400Mbyte/s i skriv från en virtuell windows maskin installerad på Datastore delad med NFS till ESXi. Nu är det diskarrayen som är flaskhalsen, så skall det vara!

Måste du köra esxi då? Både omnios och smartos stödjer virtualisering med kvm som är portat från linux och native zfs.

Visa signatur

CCNP

Permalänk
Medlem
Skrivet av maniak:

Måste du köra esxi då? Både omnios och smartos stödjer virtualisering med kvm som är portat från linux och native zfs.

Har ingen kunskap i någon annan virtuell host. Xen låter lovande men inte testat. Hur är det med nätverksprestandan hos andra system (vad de nu kallas) finns det virtuella nätverkskort färdigt precis som till esxi och hur är dess prestanda?

Edit: andra system= kvm xen hyperV osv

Skickades från m.sweclockers.com

Visa signatur

Gaming: Asus P8P67, Intel i5-2500k, Asus 7970 DCII, 8gb ram, 300gb velociraptor
Server: Asus Rampage II, Intel i7-980x, 6970 ref, 30gb ram, SASUC8I + 8st 2tb diskar + 1st 128gb SSD

Permalänk
Medlem
Skrivet av kufra:

Har ingen kunskap i någon annan virtuell host. Xen låter lovande men inte testat. Hur är det med nätverksprestandan hos andra system (vad de nu kallas) finns det virtuella nätverkskort färdigt precis som till esxi och hur är dess prestanda?

Edit: andra system= kvm xen hyperV osv

Skickades från m.sweclockers.com

KVM har virtio, finns inte i windows per default men går att installera och vet inte hur det ser ut på annat nix än linux. Prestandan bör vara likvärdig, men fördelen är att du inte behöver virtualisera för att köra zfs då hosten stödjer det native.

http://wiki.smartos.org/display/DOC/Guest+OS+Compatibility

Visa signatur

CCNP

Permalänk
Medlem
Skrivet av maniak:

KVM har virtio, finns inte i windows per default men går att installera och vet inte hur det ser ut på annat nix än linux. Prestandan bör vara likvärdig, men fördelen är att du inte behöver virtualisera för att köra zfs då hosten stödjer det native.

http://wiki.smartos.org/display/DOC/Guest+OS+Compatibility

VM av nas:
Den stora fördelen med att virtualisera zfs är att jag kan flytta diskar och GuestVM mellan olika maskiner utan att något annat, nu kan man alltid exportera och importera zfs poolen men då följer inte de övriga inställningarna med (Share, rättigheter osv osv).

Back to networking
VMWare och deras vmxnet3 fixar ju 30 Gb/s mellan två ubuntu gäster i min maskin, men så fort jag går till andra system (freebsd, windows, openindiana, omnios) så presterar de inte alls lika bra, lite därför jag frågade. Även därför jag skapat denna tråden, varför går det så satans jävla fort mellan linux men inte mellan andra OS?

Visa signatur

Gaming: Asus P8P67, Intel i5-2500k, Asus 7970 DCII, 8gb ram, 300gb velociraptor
Server: Asus Rampage II, Intel i7-980x, 6970 ref, 30gb ram, SASUC8I + 8st 2tb diskar + 1st 128gb SSD

Permalänk
Skrivet av FlippyBoy:

Veeam använder sig av snapshot-backup så det enda den behöver komma åt är ESXi-hostarna/vCenter-servern.
Den behöver inte prata med varje enskild maskin

Haha tack. Blir lite rädd för mig själv nu då jag redan har provat Veeam och kommer ihåg det nu när du säger det.
Aja då slipper jag krånga till det.

Visa signatur

Intel Core i7 860 3,6 GHz | Corsair 6GB DDR3 1600MHz | 580 GTX | Asrock P55 Deluxe3
Förra Gaming datorn Media datorn

Permalänk
Medlem
Skrivet av FlippyBoy:

Veeam använder sig av snapshot-backup så det enda den behöver komma åt är ESXi-hostarna/vCenter-servern.
Den behöver inte prata med varje enskild maskin

Finns lite olika sätt för Veeam att ta backup på VMs.
Vill man ha riktigt bra fart på backupen så ska man köra backupservern direkt mot datastoren, dvs SAN-mode. Då skippar man ESXi hostarna helt (det förutsätter dock att man har en fysisk Veeam-server).

Veeam pratar med varje enskilld maskin endast vi start av backup om man sagt att man ska köra VSS-snapshot, vilket man bör göra på alla sina databas VMar, AD, Exchange, Sharepoint mm

Så allt beror lite på hur man confar och hur ens miljö ser ut

Visa signatur

.: Learn the system, Play the system, Break the system :.

Permalänk
Medlem
Skrivet av kufra:

Followup:
Har än så länge inte hittat någon lösning för att öka prestandan i OpenIndiana. Napp-it går även köra i andra operativsystem, har provat alternativ som omniOS men samma problem där, verkar vara en kombination av solaris+vmxnet3 virtuella nätverkskortet som inte lirar så bra tillsammans. Installerade FreeNAS som har freeeBSD i botten och där fick jag 20Gbit/s i send och ~5Gbit/s i läs. Har nu flyttat min ZFS raid från Napp-it till FreeNAS. Var mycket nöjd med Napp-it men prestandan mellan diskarna och ESXi var det ända som gjorde att jag bytte. nu får jag betydligt bättre prestanda ~700Mbyte/s i läs och ~400Mbyte/s i skriv från en virtuell windows maskin installerad på Datastore delad med NFS till ESXi. Nu är det diskarrayen som är flaskhalsen, så skall det vara!

Skulle väldigt gärna ta råd utav dig här. Om jag iperfar mellan två olika VM's med Debian så får jag 25-30GB medans jag får 2-3GB mellan Debian och FreeNAS.

Mellan routern-VM'en, pfSense och valfri Deb-VM får jag inte mer än 100MB.

Ska då erkänna att jag inte lyckats aktivera något annat än E1000 på FreeBSD (fastnar vid perl-scriptet som säger att jag saknar minnes-kontrollern eller något sånt).

Hur har du fått så bra prestanda?

Visa signatur

Pad: Apple iPad 12,9" (2018).
Desktop: Ghost S1 Ash - i7-4770 - MSI 1070 GTX - Noctua NH-L12.
Server: HP Z420 Xenon E5-2690 - 64GB - ESXi 6.7
NAS: HP Microserver G8 (16TB) - ReadyNAS U2 (20TB) - ReadyNAS U4 (16TB)

Permalänk
Medlem
Skrivet av malek:

Skulle väldigt gärna ta råd utav dig här. Om jag iperfar mellan två olika VM's med Debian så får jag 25-30GB medans jag får 2-3GB mellan Debian och FreeNAS.

Mellan routern-VM'en, pfSense och valfri Deb-VM får jag inte mer än 100MB.

Ska då erkänna att jag inte lyckats aktivera något annat än E1000 på FreeBSD (fastnar vid perl-scriptet som säger att jag saknar minnes-kontrollern eller något sånt).

Hur har du fått så bra prestanda?

I pfSense har jag inte ens brytt mig om att benchmarka då jag har E1000 som vnic istället för vmxnet3, men jag får ut runt 1.5 Gbit/s i båda riktningarna. Men mellan freeNAS (som också är freebsd) så har jag fått betydligt bättre (3-5 Gbit/s mellan freenas och ubuntu) men långt ifrån lika bra som mellan två linuxmaskiner och där har jag ju vmxnet3 installerat. Så det låter lite som att du sitter i samma sits som mig

Jo kolla denna länken, jag har läst den och tweekat lite men det var ett tag sedan.
https://calomel.org/freebsd_network_tuning.html

Visa signatur

Gaming: Asus P8P67, Intel i5-2500k, Asus 7970 DCII, 8gb ram, 300gb velociraptor
Server: Asus Rampage II, Intel i7-980x, 6970 ref, 30gb ram, SASUC8I + 8st 2tb diskar + 1st 128gb SSD

Permalänk
Medlem
Skrivet av kufra:

VM av nas:
Den stora fördelen med att virtualisera zfs är att jag kan flytta diskar och GuestVM mellan olika maskiner utan att något annat, nu kan man alltid exportera och importera zfs poolen men då följer inte de övriga inställningarna med (Share, rättigheter osv osv).

Back to networking
VMWare och deras vmxnet3 fixar ju 30 Gb/s mellan två ubuntu gäster i min maskin, men så fort jag går till andra system (freebsd, windows, openindiana, omnios) så presterar de inte alls lika bra, lite därför jag frågade. Även därför jag skapat denna tråden, varför går det så satans jävla fort mellan linux men inte mellan andra OS?

Är ju inte så svårt att flytta en fysisk maskin heller, eller konvertera den till virtuell, men men.

Kikat på vilken version av drivern du kör? http://blog.cyberexplorer.me/2013/03/improving-vm-to-vm-netwo...

Visa signatur

CCNP

Permalänk
Medlem
Skrivet av maniak:

Är ju inte så svårt att flytta en fysisk maskin heller, eller konvertera den till virtuell, men men.

Kikat på vilken version av drivern du kör? http://blog.cyberexplorer.me/2013/03/improving-vm-to-vm-netwo...

Jag har bara en fysisk maskin (all-in-one) så om den dör så kan jag flytta diskar och backup av freenas-vm till en ny maskin och köra vidare, eller jag kanske missuppfattar dig.

När de gäller drivrutinen till vmxnet3 så har jag kollat in den länken tidigare när jag hade openindiana men trodde bara drivrutinensmissen han pratar om gäller Solaris10 vs Solaris11 ??

Skickades från m.sweclockers.com

Visa signatur

Gaming: Asus P8P67, Intel i5-2500k, Asus 7970 DCII, 8gb ram, 300gb velociraptor
Server: Asus Rampage II, Intel i7-980x, 6970 ref, 30gb ram, SASUC8I + 8st 2tb diskar + 1st 128gb SSD

Permalänk
Medlem
Skrivet av kufra:

Jag har bara en fysisk maskin (all-in-one) så om den dör så kan jag flytta diskar och backup av freenas-vm till en ny maskin och köra vidare, eller jag kanske missuppfattar dig.

När de gäller drivrutinen till vmxnet3 så har jag kollat in den länken tidigare när jag hade openindiana men trodde bara drivrutinensmissen han pratar om gäller Solaris10 vs Solaris11 ??

Skickades från m.sweclockers.com

Vad stoppar dig från att göra samma sak med en fysisk burk? Virtualisering är ingen magi.

Openindiana är Solaris så den lär använda samma driver, kolla upp vilken du använder.

Visa signatur

CCNP

Permalänk
Medlem
Skrivet av maniak:

Openindiana är Solaris så den lär använda samma driver, kolla upp vilken du använder.

Skrivet av kufra:

Vad jag provat
Två första punkterna har jag följt denna blog.
[list="1"]

Så jag har provat båda versionerna av drivrutinerna genom att göra precis det denna killen gjort. Men gav inte den effekt jag hoppades på och senare efter detta så bytte jag till freeNAS från OpenIndiana med Napp-it. Så nu är det freeBSD och inte Solaris jag har.

Skrivet av maniak:

Vad stoppar dig från att göra samma sak med en fysisk burk?

Det som hindrar mig från att flytta min virtualiserade NAS till en annan maskin är att jag inte har en annan maskin tillgänglig och jag har inte pengar att köpa mer hårdvara.

Skrivet av maniak:

Virtualisering är ingen magi.

Hehe ja ingen magi säger du, jag säger att det är lite magi. Det finns många komplexa saker inom detta område.
Minneshantering med overcommit gör ESXi någon magi för att få maskinerna att tro att de har mer tillgängligt minne än va de egentligen har i den fysiska maskinen. Nätverkshanteringen med olika paketstorlekar och segmentering åt olika håll. Jag skrev i en tidigare post hur jag trodde att det fungerade och eftersom ingen har kommenterat på just det så hoppas jag att jag fattat det någorlunda rätt för att kunna dra slutsatser. Varför det mellan vissa maskiner skickas extremt många paket och får iväg ynka 4gbit/s men mellan två ubuntu maskiner så får man ut 30gbit/s och bara hälften antal paket. därav måste ju självklart paketen mellan ubuntu maskinerna innehålla mer data, men varför gör VMXNET3 nic:et annorlunda och går det tweeka så att man får prestandan som mellan linux maskiner.

Hoopas jag är tydlig nog, lite trött i huvudet såhär på kvällen natti swec!

Visa signatur

Gaming: Asus P8P67, Intel i5-2500k, Asus 7970 DCII, 8gb ram, 300gb velociraptor
Server: Asus Rampage II, Intel i7-980x, 6970 ref, 30gb ram, SASUC8I + 8st 2tb diskar + 1st 128gb SSD

Permalänk
Medlem
Skrivet av kufra:

Så jag har provat båda versionerna av drivrutinerna genom att göra precis det denna killen gjort. Men gav inte den effekt jag hoppades på och senare efter detta så bytte jag till freeNAS från OpenIndiana med Napp-it. Så nu är det freeBSD och inte Solaris jag har.

Det som hindrar mig från att flytta min virtualiserade NAS till en annan maskin är att jag inte har en annan maskin tillgänglig och jag har inte pengar att köpa mer hårdvara.

Hehe ja ingen magi säger du, jag säger att det är lite magi. Det finns många komplexa saker inom detta område.
Minneshantering med overcommit gör ESXi någon magi för att få maskinerna att tro att de har mer tillgängligt minne än va de egentligen har i den fysiska maskinen. Nätverkshanteringen med olika paketstorlekar och segmentering åt olika håll. Jag skrev i en tidigare post hur jag trodde att det fungerade och eftersom ingen har kommenterat på just det så hoppas jag att jag fattat det någorlunda rätt för att kunna dra slutsatser. Varför det mellan vissa maskiner skickas extremt många paket och får iväg ynka 4gbit/s men mellan två ubuntu maskiner så får man ut 30gbit/s och bara hälften antal paket. därav måste ju självklart paketen mellan ubuntu maskinerna innehålla mer data, men varför gör VMXNET3 nic:et annorlunda och går det tweeka så att man får prestandan som mellan linux maskiner.

Hoopas jag är tydlig nog, lite trött i huvudet såhär på kvällen natti swec!

Jag säger bara att det inte direkt är någon skillnad bara för du kör zfs på en vm, går lika lätt att flytta även om det är en fysisk burk.

Vlan och olika MTU är inget nytt. Att du får sämre prestanda beror på att vissa os har en sämre drivrutin och i vissa fall kan olika typer av offloading hjälpa.

Visa signatur

CCNP

Permalänk
Medlem
Skrivet av maniak:

Vlan och olika MTU är inget nytt. Att du får sämre prestanda beror på att vissa os har en sämre drivrutin och i vissa fall kan olika typer av offloading hjälpa.

Så drivrutinerna för freeBSD och windows är helt enkelt inte lika bra som de för linux?
olika MTU (aka 1500 9000) är inte hela magin, om man gör "tcpdump" av trafiken så ser man att linuxmaskiner skickar paket på ca 25 kbyte ibland även större, detta är inte vad som får plats i ett paket (inte ens med jumbo aktiverat) denna måste då om man kör det över ett fysiskt nätverk segmenteras om till mindre paket och det är detta som är TCP segment offload (om jag inte fattat fel). Men när man kör mellan två linuxmaskiner med VMXNET3 så verkar det som att de skiter i att segmentera om paketet utan det skickas mellan maskinerna i sin "fullla" storlek.

Så om någon är kunnig här får ni gärna försöka förklara hur detta fungerar, för om man förstår varför drivrutinerna/vnic segmenterar om paketen eller inte gör det och till vilken mtu och varför så är det mycket mycket lättare att förstå vad som behöver göras för att förbättra prestandan. för uppenbarligen så går det att lyckas riktigt bra mellan linux och linux.

-------------------------------------------------------------------------
Denna länken http://kb.vmware.com/selfservice/microsites/search.do?languag... kanske kan säga en del.

Genom att köra

esxcli system settings advanced list -o /Net/VmxnetLROMaxLength

och

esxcli system settings advanced list -o /Net/Vmxnet3HwLRO

så får jag ut att Large Recieve Offload är aktiverat vilket betyder att mitt fysiska NIC hjälper mina vnic att jobba? (You can enable or disable hardware LRO on the physical NIC for VMXNET2 and VMXNET3 adapters of virtual machines.)
Detta kan vara ett problem för mig då jag har en desktop NIC med PCI (inte PCI-e) anslutning i min esxi server och bandbredden på PCI är mycket låg (133 Mbyte/s).

Får även ut att max LRO är 32000 för mig vilket ju är det jag observerat när jag kör linux till linux som skickar och tar emot paket av storleken ~25k. denna siffra skall gå att öka till 65k.

Visa signatur

Gaming: Asus P8P67, Intel i5-2500k, Asus 7970 DCII, 8gb ram, 300gb velociraptor
Server: Asus Rampage II, Intel i7-980x, 6970 ref, 30gb ram, SASUC8I + 8st 2tb diskar + 1st 128gb SSD

Permalänk
Medlem

Av det jag läst så låter det som att du skulle behöva lite kaxigare hårdvara i botten.

Permalänk
Medlem
Skrivet av Danne:

Av det jag läst så låter det som att du skulle behöva lite kaxigare hårdvara i botten.

Är du säker? Om du har läst lite i tråden så ser du att den handlar mer om att förstå varför prestandan blir som den blir. Med andra ord så behöver jag först förstå hur, sen eventuellt byta hårdvaran.
Om hårdvaru nic används för trafik (offload) mellan två virtuella maskiner i samma fysiska burk så spelar de ju roll vilket nic jag har men om inte så spelar det ingen roll alls! Så förståelse först, de hjälper dessutom andra som vill lära sig om nätverk

Skickades från m.sweclockers.com

Visa signatur

Gaming: Asus P8P67, Intel i5-2500k, Asus 7970 DCII, 8gb ram, 300gb velociraptor
Server: Asus Rampage II, Intel i7-980x, 6970 ref, 30gb ram, SASUC8I + 8st 2tb diskar + 1st 128gb SSD