Re: VMWare ESX and FBSD 7.2 AMD64 guest

2009-07-24 Thread John Nielsen
On Thursday 23 July 2009 19:44:15 Steve Bertrand wrote:
 This message has a foot that has nearly touched down over the OT
 borderline.

 We received an HP Proliant DL360G5 collocation box yesterday that has
 two processors, and 8GB of memory.

 All the client wants to use this box for is a single instance of Windows
 web hosting. Knowing the sites the client wants to aggregate into IIS, I
 know that the box is far over-rated.

 Making a long story short, they have agreed to allow us to put their
 Windows server inside of a virtual-ized container, so we can use the
 unused horsepower for other vm's (test servers etc).

 My problem is performance. I'm only willing to make this box virtual if
 I can keep the abstraction performance loss to 25% (my ultimate goal
 would be 15%).

 The following is what I have, followed by my benchmark findings:

 # 7.2-RELEASE AMD64

 FreeBSD 7.2-RELEASE #0: Fri May  1 07:18:07 UTC 2009
 r...@driscoll.cse.buffalo.edu:/usr/obj/usr/src/sys/GENERIC

 Timecounter i8254 frequency 1193182 Hz quality 0
 CPU: Intel(R) Xeon(R) CPU5150  @ 2.66GHz (2666.78-MHz
 K8-class CPU)
   Origin = GenuineIntel  Id = 0x6f6  Stepping = 6

 usable memory = 8575160320 (8177 MB)
 avail memory  = 8273620992 (7890 MB)

 FreeBSD/SMP: Multiprocessor System Detected: 4 CPUs
  cpu0 (BSP): APIC ID:  0
  cpu1 (AP): APIC ID:  1
  cpu2 (AP): APIC ID:  6
  cpu3 (AP): APIC ID:  7:

Did you give the VM 4 virtual processors as well? How much RAM did it have? 
What type of storage does the server have? Did the VM just get a .vmdk on 
VMFS? What version of ESX?

 Benchmarks:

 # time make -j4 buildworld (under vmware)

 5503.038u 3049.500s 1:15:46.25 188.1%   5877+1961k 3298+586716io 2407pf+0w

 # time make -j4 buildworld (native)

 4777.568u 992.422s 33:02.12 291.1%6533+2099k 25722+586485io 3487pf+0w

Note that the user time is within your 15% margin (if you round to the 
nearest percent). The system time is what's running away. My guess is that 
that is largely due to disk I/O and virtualization of same. What you can do 
to address this depends on what hardware you have. Giving the VM a raw 
slice/LUN/disk instead of a .vmdk file may improve matters somewhat. If you 
do use a disk file be sure that it lives on a stripe (or whatever unit is 
relevant) boundary of the underlying storage. Ways to do that (if any) depend 
on the storage. Improving the RAID performance, etc. of the storage will 
improve your benchmark overall, and may or may not narrow the divide.

The (virtual) storage driver (mpt IIRC) might have some parameters you could 
tweak, but I don't know about that off the top of my head.

 ...both builds were from the exact same sources, and both runs were
 running with the exact same environment. I was extremely careful to
 ensure that the environments were exactly the same.

 I'd appreciate any feedback on tweaks that I can make (either to VMWare,
 or FreeBSD itself) to make the virtualized environment much more efficient.

See above about storage. Similar questions come up periodically; searching the 
archives if you haven't already may prove fruitful. You may want to try 
running with different kernel HZ settings for instance.

I would also try to isolate the performance of different components and 
evaluate their importance for your actual intended load. CPU and RAM probably 
perform like you expect out of the box. Disk and network I/O won't be as 
close to native speed, but the difference and the impact are variable 
depending on your hardware and load.

A lightly-loaded Windows server is the poster child of virtualization 
candidates. If your decision is to dedicate the box to Winders or to 
virtualize and use the excess capacity for something else I would say it's a 
no-brainer if the cost of ESX isn't a factor (or if ESXi gives you similar 
performance). If that's already a given and your decision is between running 
a specific FreeBSD instance on the ESX host or on its own hardware then 
you're wise to spec out the performance differences.

HTH,

JN
___
freebsd-questions@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-questions
To unsubscribe, send any mail to freebsd-questions-unsubscr...@freebsd.org


Re: VMWare ESX and FBSD 7.2 AMD64 guest

2009-07-24 Thread Steve Bertrand
John Nielsen wrote:
 On Thursday 23 July 2009 19:44:15 Steve Bertrand wrote:

 My problem is performance. I'm only willing to make this box virtual if
 I can keep the abstraction performance loss to 25% (my ultimate goal
 would be 15%).

 usable memory = 8575160320 (8177 MB)
 avail memory  = 8273620992 (7890 MB)

 FreeBSD/SMP: Multiprocessor System Detected: 4 CPUs
  cpu0 (BSP): APIC ID:  0
  cpu1 (AP): APIC ID:  1
  cpu2 (AP): APIC ID:  6
  cpu3 (AP): APIC ID:  7:
 
 Did you give the VM 4 virtual processors as well? How much RAM did it have? 
 What type of storage does the server have? Did the VM just get a .vmdk on 
 VMFS? What version of ESX?

I gave it all four procs to use, and all available memory. See below
about storage system.

 The system time is what's running away. My guess is that 
 that is largely due to disk I/O and virtualization of same. What you can do 
 to address this depends on what hardware you have. Giving the VM a raw 
 slice/LUN/disk instead of a .vmdk file may improve matters somewhat. If you 
 do use a disk file be sure that it lives on a stripe (or whatever unit is 
 relevant) boundary of the underlying storage. Ways to do that (if any) depend 
 on the storage. Improving the RAID performance, etc. of the storage will 
 improve your benchmark overall, and may or may not narrow the divide.

The storage system is the following, with 512MB cache. I'm trying to
figure out if the cache has a battery backup installed, as I've read
that disk performance could be affected without it.

kernel: ciss0: HP Smart Array P400i

With six Fujitsu MHW2120BS 120GB 5.4k SATA laptop drives.

After performing multiple in-OS and outside-of-OS benchmark tests, the
maximum read speed I can achieve is ~7MBps. Before I reconfigured the
machine from the default RAID6 to RAID1+0, I was capped at ~5.

This is certainly a huge bottleneck. I'm not impressed in any way with
that type of performance, when a lesser system that I have running FBSD
7.2 and ZFS can achieve ~160MBps. I know the drives are only 5.4k, but
~7MB just isn't right.

I'm off to see what we can do about that.

Thanks John,

Steve


smime.p7s
Description: S/MIME Cryptographic Signature


RE: VMWare ESX and FBSD 7.2 AMD64 guest

2009-07-24 Thread Dean Weimer

 This message has a foot that has nearly touched down over the OT
 borderline.
 
 We received an HP Proliant DL360G5 collocation box yesterday that has
 two processors, and 8GB of memory.
 
 All the client wants to use this box for is a single instance of
 Windows
 web hosting. Knowing the sites the client wants to aggregate into IIS,
 I
 know that the box is far over-rated.
 
 Making a long story short, they have agreed to allow us to put their
 Windows server inside of a virtual-ized container, so we can use the
 unused horsepower for other vm's (test servers etc).
 
 My problem is performance. I'm only willing to make this box virtual if
 I can keep the abstraction performance loss to 25% (my ultimate goal
 would be 15%).
 
 The following is what I have, followed by my benchmark findings:
 
 # 7.2-RELEASE AMD64
 
 FreeBSD 7.2-RELEASE #0: Fri May  1 07:18:07 UTC 2009
 r...@driscoll.cse.buffalo.edu:/usr/obj/usr/src/sys/GENERIC
 
 Timecounter i8254 frequency 1193182 Hz quality 0
 CPU: Intel(R) Xeon(R) CPU5150  @ 2.66GHz (2666.78-MHz
 K8-class CPU)
   Origin = GenuineIntel  Id = 0x6f6  Stepping = 6
 
 usable memory = 8575160320 (8177 MB)
 avail memory  = 8273620992 (7890 MB)
 
 FreeBSD/SMP: Multiprocessor System Detected: 4 CPUs
  cpu0 (BSP): APIC ID:  0
  cpu1 (AP): APIC ID:  1
  cpu2 (AP): APIC ID:  6
  cpu3 (AP): APIC ID:  7:
 
 Benchmarks:
 
 # time make -j4 buildworld (under vmware)
 
 5503.038u 3049.500s 1:15:46.25 188.1%   5877+1961k 3298+586716io
 2407pf+0w
 
 # time make -j4 buildworld (native)
 
 4777.568u 992.422s 33:02.12 291.1%6533+2099k 25722+586485io 3487pf+0w
 
 ...both builds were from the exact same sources, and both runs were
 running with the exact same environment. I was extremely careful to
 ensure that the environments were exactly the same.
 
 I'd appreciate any feedback on tweaks that I can make (either to
 VMWare,
 or FreeBSD itself) to make the virtualized environment much more
 efficient.
 
 Off-list is fine.
 
 Cheers,
 
 Steve

I haven't actually done any benchmarks to compare the performance, but I have 
been running production FreeBSD servers on VMware for a couple of years.  I 
currently have two 6.2 systems running CUPS, one on VMware Server, and the 
other on ESX 3.5.  I also have a 7.0 system and two 7.1 systems running Squid 
on ESX 3.5 as well.  The thing that I noticed as the biggest bottle neck for 
any guest within VMware is the Disk I/O (with the exception of video which 
isn't an issue for a server).  Compiling software does take longer, because of 
this, however if you tune your disks properly the performance under real 
application load doesn't seem to be an issue.  Using soft updates on the file 
system seems to help out a lot, but be aware of the consequences.
That being said, on the Systems I have running squid we average 9G of traffic a 
day on the busiest system with about 11% cache hit rate, These proxies sit 
close to idle after hours.  Looking at the information from systat -vmstat, the 
system is almost idle during the day under the full load as well, you just 
can't touch FreeBSD with only 2 DSL lines for web traffic.  Its faster than the 
old native system was, however there is an iSCSI SAN behind the ESX server for 
disk access, and we went from a Dell PowerEdge 850 to a Dell PowerEdge 2950.  
It does share that server with around 15 or more other servers (Mostly windows, 
some Linux) depending on the current load.  Which brings us to another point, 
It seems to do just fine when VMware VMotion moves it between servers.
Not sure if this information helps you out any, but my recommendation would be 
that if your application will be very disk intensive, avoid the Virtual 
machine.  In my case with the Squid, gaining the redundancy of the VMware 
coupled with VMotion was worth the potential hit in performance.  As we are 
soon implementing a second data center across town that will house additional 
VMware servers and thanks to a 10G fiber ring, will allow us to migrate servers 
while running between datacenters.  Also keep in mind that as of vSphere 4 (We 
will be upgrading to this once the new data center is complete, just waiting on 
the shipment of the racks at this point), VMware does officially support 
FreeBSD 7.1, so you might want to go with that instead of 7.2, as there may be 
a performance issue with 7.2, but it's also just as likely that it was a timing 
issue on releases that 7.1 is supported and 7.2 isn't.  As of ESXi 4.0 
(released 5-21-2009), I believe it has the same code base as vSphere 4, so the 
same guests should be supported.

Thanks,
 Dean Weimer
 Network Administrator
 Orscheln Management Co
___
freebsd-questions@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-questions
To unsubscribe, send any mail to freebsd-questions-unsubscr...@freebsd.org


Re: VMWare ESX and FBSD 7.2 AMD64 guest

2009-07-24 Thread Steve Polyack

John Nielsen wrote:

On Thursday 23 July 2009 19:44:15 Steve Bertrand wrote:
  

I'd appreciate any feedback on tweaks that I can make (either to VMWare,
or FreeBSD itself) to make the virtualized environment much more efficient.



See above about storage. Similar questions come up periodically; searching the 
archives if you haven't already may prove fruitful. You may want to try 
running with different kernel HZ settings for instance.
  


You should certainly try setting both kern.hz and vfs.read_max in the 
FreeBSD VM.  I would recommend:


In loader.conf:
kern.hz=100

In /etc/sysctl.conf:
vfs.read_max=32

You may also try increasing vfs.hirunningspace.  I've had good results 
with setting it to 32MB on write-intensive systems.  Tuning vfs.read_max 
can give some boosts to physical-hardware FreeBSD systems as well.


-Steve Polyack

___
freebsd-questions@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-questions
To unsubscribe, send any mail to freebsd-questions-unsubscr...@freebsd.org


Re: VMWare ESX and FBSD 7.2 AMD64 guest

2009-07-24 Thread Richard Mahlerwein
 From: John Nielsen li...@jnielsen.net
 Subject: Re: VMWare ESX and FBSD 7.2 AMD64 guest
 To: freebsd-questions@freebsd.org
 Cc: Steve Bertrand st...@ibctech.ca
 Date: Friday, July 24, 2009, 10:22 AM
 On Thursday 23 July 2009 19:44:15
 Steve Bertrand wrote:
  This message has a foot that has nearly touched down
 over the OT
  borderline.
 
  We received an HP Proliant DL360G5 collocation box
 yesterday that has
  two processors, and 8GB of memory.
 
  All the client wants to use this box for is a single
 instance of Windows
  web hosting. Knowing the sites the client wants to
 aggregate into IIS, I
  know that the box is far over-rated.
 
  Making a long story short, they have agreed to allow
 us to put their
  Windows server inside of a virtual-ized container, so
 we can use the
  unused horsepower for other vm's (test servers etc).
 
  My problem is performance. I'm only willing to make
 this box virtual if
  I can keep the abstraction performance loss to 25%
 (my ultimate goal
  would be 15%).
 
  The following is what I have, followed by my benchmark
 findings:
 
  # 7.2-RELEASE AMD64
 
  FreeBSD 7.2-RELEASE #0: Fri May  1 07:18:07 UTC
 2009
      r...@driscoll.cse.buffalo.edu:/usr/obj/usr/src/sys/GENERIC
 
  Timecounter i8254 frequency 1193182 Hz quality 0
  CPU: Intel(R) Xeon(R) CPU       
     5150  @ 2.66GHz (2666.78-MHz
  K8-class CPU)
    Origin = GenuineIntel  Id =
 0x6f6  Stepping = 6
 
  usable memory = 8575160320 (8177 MB)
  avail memory  = 8273620992 (7890 MB)
 
  FreeBSD/SMP: Multiprocessor System Detected: 4 CPUs
   cpu0 (BSP): APIC ID:  0
   cpu1 (AP): APIC ID:  1
   cpu2 (AP): APIC ID:  6
   cpu3 (AP): APIC ID:  7:
 
 Did you give the VM 4 virtual processors as well? How much
 RAM did it have? 
 What type of storage does the server have? Did the VM just
 get a .vmdk on 
 VMFS? What version of ESX?
 
  Benchmarks:
 
  # time make -j4 buildworld (under vmware)
 
  5503.038u 3049.500s 1:15:46.25
 188.1%   5877+1961k 3298+586716io 2407pf+0w
 
  # time make -j4 buildworld (native)
 
  4777.568u 992.422s 33:02.12 291.1%   
 6533+2099k 25722+586485io 3487pf+0w
 
 Note that the user time is within your 15% margin (if you
 round to the 
 nearest percent). The system time is what's running away.
 My guess is that 
 that is largely due to disk I/O and virtualization of same.
 What you can do 
 to address this depends on what hardware you have. Giving
 the VM a raw 
 slice/LUN/disk instead of a .vmdk file may improve matters
 somewhat. If you 
 do use a disk file be sure that it lives on a stripe (or
 whatever unit is 
 relevant) boundary of the underlying storage. Ways to do
 that (if any) depend 
 on the storage. Improving the RAID performance, etc. of the
 storage will 
 improve your benchmark overall, and may or may not narrow
 the divide.
 
 The (virtual) storage driver (mpt IIRC) might have some
 parameters you could 
 tweak, but I don't know about that off the top of my head.
 
  ...both builds were from the exact same sources, and
 both runs were
  running with the exact same environment. I was
 extremely careful to
  ensure that the environments were exactly the same.
 
  I'd appreciate any feedback on tweaks that I can make
 (either to VMWare,
  or FreeBSD itself) to make the virtualized environment
 much more efficient.
 
 See above about storage. Similar questions come up
 periodically; searching the 
 archives if you haven't already may prove fruitful. You may
 want to try 
 running with different kernel HZ settings for instance.
 
 I would also try to isolate the performance of different
 components and 
 evaluate their importance for your actual intended load.
 CPU and RAM probably 
 perform like you expect out of the box. Disk and network
 I/O won't be as 
 close to native speed, but the difference and the impact
 are variable 
 depending on your hardware and load.
 
 A lightly-loaded Windows server is the poster child of
 virtualization 
 candidates. If your decision is to dedicate the box to
 Winders or to 
 virtualize and use the excess capacity for something else I
 would say it's a 
 no-brainer if the cost of ESX isn't a factor (or if ESXi
 gives you similar 
 performance). If that's already a given and your decision
 is between running 
 a specific FreeBSD instance on the ESX host or on its own
 hardware then 
 you're wise to spec out the performance differences.
 
 HTH,
 
 JN

If I recall correctly from ESX (well, VI) training*, there may be a minor 
scheduling issue affecting things here.  If you set up the VM with 4 
processors, ESX schedules time on the CPU only when there's 4 things to execute 
(well, there's another time period it also uses, so even a single thread will 
get run eventually, but anyway...).  The physical instance will run one thread 
immediately even if there's nothing else waiting, whereas the VM will NOT 
execute a single thread necessarily immediately.  I would retry using perhaps 
-j8 or even -j12 to make sure the 4 CPUs see plenty of work to do

Re: VMWare ESX and FBSD 7.2 AMD64 guest

2009-07-24 Thread Steve Bertrand
Richard Mahlerwein wrote:

 If I recall correctly from ESX (well, VI) training*, there may be a minor 
 scheduling issue affecting things here.  If you set up the VM with 4 
 processors, ESX schedules time on the CPU only when there's 4 things to 
 execute (well, there's another time period it also uses, so even a single 
 thread will get run eventually, but anyway...).  The physical instance will 
 run one thread immediately even if there's nothing else waiting, whereas the 
 VM will NOT execute a single thread necessarily immediately.  I would retry 
 using perhaps -j8 or even -j12 to make sure the 4 CPUs see plenty of work to 
 do and see if the numbers don't slide closer to one another.  
 
 For what it's worth, if there were a raw LUN available and made available to 
 the VM, the disk performance of that LUN should very nearly match native 
 performance, because it IS native performance.  VMWare (if I understood right 
 in the first place and remember correctly as well, I supposed I should * this 
 as well. :) ) doesn't add anything to slow that down.  Plugging in a USB 
 drive to the Host and making it available to the guest would also be at 
 native USB/drive speeds, assuming you can do that (I've never tried to use 
 USB drives on our blade center!).

I've isolated the problem to the SATA RAID system (or subsystem).

Booting from CD/USB key and running a wide array of bench tests, I can
not read from the RAID setup faster than 10MBps.

Regardless of anything else, this is my priority.

RAID 0 is the only config where I can read faster than ~7MBps. The board
does not have any standard IDE interfaces, and I don't have any PCIe-IDE
cards that aren't in use, so I can't really bypass the HP RAID card.

I will however slap a 200GB USB drive against the box, and see if I can
get faster performance from USB than I can the native SATA setup.

FWIW, I do have the battery backed cache installed...

Steve


smime.p7s
Description: S/MIME Cryptographic Signature


RE: VMWare ESX and FBSD 7.2 AMD64 guest

2009-07-24 Thread Richard Mahlerwein
 From: Dean Weimer dwei...@orscheln.com
 Subject: RE: VMWare ESX and FBSD 7.2 AMD64 guest
 To: freebsd-questions@freebsd.org
 Cc: st...@ibctech.ca
 Date: Friday, July 24, 2009, 10:49 AM

[snip]

 servers while running between datacenters.  Also keep
 in mind that as of vSphere 4 (We will be upgrading to this
 once the new data center is complete, just waiting on the
 shipment of the racks at this point), VMware does officially
 support FreeBSD 7.1, so you might want to go with that
 instead of 7.2, as there may be a performance issue with

Awesome news!  That's teach me to keep shuttling the nearly-spam I get from 
VMware into the trash can right away.  I'd love to hear about your experience 
with the upgrade and how things go later.  We're looking to do something very 
similar sometime in the next 6 to 9 months.



___
freebsd-questions@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-questions
To unsubscribe, send any mail to freebsd-questions-unsubscr...@freebsd.org


VMWare ESX and FBSD 7.2 AMD64 guest

2009-07-23 Thread Steve Bertrand
This message has a foot that has nearly touched down over the OT borderline.

We received an HP Proliant DL360G5 collocation box yesterday that has
two processors, and 8GB of memory.

All the client wants to use this box for is a single instance of Windows
web hosting. Knowing the sites the client wants to aggregate into IIS, I
know that the box is far over-rated.

Making a long story short, they have agreed to allow us to put their
Windows server inside of a virtual-ized container, so we can use the
unused horsepower for other vm's (test servers etc).

My problem is performance. I'm only willing to make this box virtual if
I can keep the abstraction performance loss to 25% (my ultimate goal
would be 15%).

The following is what I have, followed by my benchmark findings:

# 7.2-RELEASE AMD64

FreeBSD 7.2-RELEASE #0: Fri May  1 07:18:07 UTC 2009
r...@driscoll.cse.buffalo.edu:/usr/obj/usr/src/sys/GENERIC

Timecounter i8254 frequency 1193182 Hz quality 0
CPU: Intel(R) Xeon(R) CPU5150  @ 2.66GHz (2666.78-MHz
K8-class CPU)
  Origin = GenuineIntel  Id = 0x6f6  Stepping = 6

usable memory = 8575160320 (8177 MB)
avail memory  = 8273620992 (7890 MB)

FreeBSD/SMP: Multiprocessor System Detected: 4 CPUs
 cpu0 (BSP): APIC ID:  0
 cpu1 (AP): APIC ID:  1
 cpu2 (AP): APIC ID:  6
 cpu3 (AP): APIC ID:  7:

Benchmarks:

# time make -j4 buildworld (under vmware)

5503.038u 3049.500s 1:15:46.25 188.1%   5877+1961k 3298+586716io 2407pf+0w

# time make -j4 buildworld (native)

4777.568u 992.422s 33:02.12 291.1%  6533+2099k 25722+586485io 3487pf+0w

...both builds were from the exact same sources, and both runs were
running with the exact same environment. I was extremely careful to
ensure that the environments were exactly the same.

I'd appreciate any feedback on tweaks that I can make (either to VMWare,
or FreeBSD itself) to make the virtualized environment much more efficient.

Off-list is fine.

Cheers,

Steve




smime.p7s
Description: S/MIME Cryptographic Signature