VMWare – Linux gäst, hur gör man för bästa prestanda?

Update 20130105

The default CFQ I/O scheduler is a poor choice for guest virtual machines (and most systems). You’ll want to modify it. I used to just recommend setting the scheduler to deadline, but there’s an easier method now for RHEL/CentOS systems…

The best way to handle that and a couple of other tunables is to download the tuned framework and apply a better profile to the system.

In your case:

yum install tuned tuned-utils

Once installed, try one of the appropriate profiles. For VM’s, I either do enterprise-storage orvirtual-guest. Test and see which works best for you. A reboot is NOT required between profile changes.

tuned-adm profile virtual-guest

The reasoning:

qfLhG

Det finns en himla massa parametrar att tänka på när man ska sätta upp en virtuell linuxserver.
De första sakerna man tänker på är, hur mycket disk, hur mycket minne, hur många processorer behövs?
Sen kommer det roliga in i det hela, hur ser den virtuella hosten/klustret ut?

Den här sammanfattningen kommer i två delar, nr ett är vad gör man på OS nivå? och nummer två, hur konfigurar man VM:en för att ha bästa möjliga förutsättningar?

Mycket kommer från http://blogs.vmware.com/guestosguide/ och lite varstans på nätet.

Del ett, Linux, framförallt inriktat på CentOS/RHEL

Installera alltid VMWare tools, alltid bättre prestanda med deras minne, nätverk och diskdrivrutiner.

http://packages.vmware.com/tools

Ändra till din version av ESX host

[vmware-tools]
name=VMware Tools for Red Hat Enterprise Linux $releasever – $basearch
baseurl=http://packages.vmware.com/tools/esx/latest/rhel6/$basearch
enabled=1
gpgcheck=1
gpgkey=http://packages.vmware.com/tools/keys/VMWARE-PACKAGING-GPG-RSA-KEY.pub

Kör

rpm – import http://packages.vmware.com/tools/keys/VMWARE-PACKAGING-GPG-RSA-KEY.pub

för att importera VMWare rpm nyckel

Med vmware tools installerat kan vmhost:en använda Page sharing, Ballooning och Swapping på ett effektivare sätt.

sysctl.conf – minneshantering

I /etc/sysctl.conf
vm.swappiness = 0
vm.overcommit_memory = 1
vm.dirty_background_ratio = 5
vm.dirty_ratio = 10
vm.dirty_expire_centisecs = 1000
dev.rtc.max-user-freq = 1024

GRUB.CONF – Kernelrader

Sen har vi hur själva kerneln anropas också, i grub.conf

noapic nolapic apci=off  elevator=noop divider=10

Man kan även lägga till ”divider=10” för att interrupt timern till 100Hz

”Here’s some feedback. Host = 2 x 2.8GHz CPU x86_64. Two VMs, one is 2 CPU x86_64, the other is 2 CPU i686. When both vm’s are idle, host CPU hovers around 50%. Using 2.6.9-55.0.9 kernel in host and guests. With the 100HZ kernels (i686 and x86_64) deployed in the guests, host cpu now hovers around 8% when vm’s are idle

elevator = noop, varför man ska ha detta i RHEL/CentOS? man kan läsa från vissa tester på nätet ”But on Centos 5 the Difference was factor 4 – 5, which I could not reproduce with other Linux-Versions. CFQ with Centos was unusable.
Jag kan bara dra samma slutsats själv, CFQ är rena döden för VM:en på just CentOS/RHEL MEN som en del skriver, det kan inte upprepas på andra distributioner. Noop elevator ger en stor prestandaökning i RHEL/CentOS.

acpi=off
”Our Linux host needs an acpi=off kernel parameter,
Our host has a hyperthreaded CPU and so with acpi=off, we suspect that we loose that performance advantage. ”

Från VMWare kan man läsa att clocksource=acpi_pm inte behövs efter version 5.3 av RHEL/CentOS

Om din klocka saktar in, lägg till  nosmp noapic nolapic optioner till din gästs kernel rad i  /boot/grub/grub.conf

I/O Prestanda

För att slippa ”onödig” I/O till disk, rekommenderas att man lägger till noatime i fstab, en rad skulle då kunna se ut såhär

/dev/VolGroup00/LogVol00 /   ext3    defaults,noatime        1 1

Har man inget krav på att kunna se när en fil senast accessades så är det en bra sak att lägga till.

Hur håller man sina VM:ar i klocksynk? rekommendationen från VMWare är att köra NTP eller något liknande tidsprotokoll. Om man använder VMWare-tools för att hålla tiden i synk kan man behöva lägga till clock=pit kernel parameter för att undvika att klockan drar sig (clock drifting).

VMWare har själva skrivit en ”best practice” för tidshållnng i gäster http://kb.vmware.com/kb/1006427 ”Timekeeping best practices for Linux”

Lämna ett svar

Din e-postadress kommer inte publiceras. Obligatoriska fält är märkta *

*

Denna webbplats använder Akismet för att minska skräppost. Lär dig hur din kommentardata bearbetas.

search previous next tag category expand menu location phone mail time cart zoom edit close