x64 Servers: Do you want 64 or 32 bit apps with that server?



Similar documents
Performance Optimization Guide

Virtualization for Cloud Computing

CPS221 Lecture: Operating System Structure; Virtual Machines

An examination of the dual-core capability of the new HP xw4300 Workstation

Full and Para Virtualization

VMware Server 2.0 Essentials. Virtualization Deployment and Management

Microsoft Office SharePoint Server 2007 Performance on VMware vsphere 4.1

MED 0115 Optimizing Citrix Presentation Server with VMware ESX Server

Enabling Technologies for Distributed Computing

Recommended hardware system configurations for ANSYS users

Muse Server Sizing. 18 June Document Version Muse

Technology Update White Paper. High Speed RAID 6. Powered by Custom ASIC Parity Chips

Sage 100 Premium ERP Version 2015 Supported Platform Matrix Created as of April 6, 2015

System Requirements Table of contents

Autodesk Revit 2016 Product Line System Requirements and Recommendations

Revit products will use multiple cores for many tasks, using up to 16 cores for nearphotorealistic

361 Computer Architecture Lecture 14: Cache Memory

Sage 100 Premium Version 2016 Supported Platform Matrix Created as of November 25, 2015

Choosing a Computer for Running SLX, P3D, and P5

How do Users and Processes interact with the Operating System? Services for Processes. OS Structure with Services. Services for the OS Itself

Oracle9i Release 2 Database Architecture on Windows. An Oracle Technical White Paper April 2003

farmerswife Contents Hourline Display Lists 1.1 Server Application 1.2 Client Application farmerswife.com

OPERATING SYSTEM - MEMORY MANAGEMENT

Configuring a U170 Shared Computing Environment

Generations of the computer. processors.

Amazon EC2 XenApp Scalability Analysis

Load Testing and Monitoring Web Applications in a Windows Environment

FileMaker. Running FileMaker Pro 10 on Citrix Presentation Server

Enabling Technologies for Distributed and Cloud Computing

VMware and CPU Virtualization Technology. Jack Lo Sr. Director, R&D

Servervirualisierung mit Citrix XenServer

What you should know about: Windows 7. What s changed? Why does it matter to me? Do I have to upgrade? Tim Wakeling

Improving Scalability for Citrix Presentation Server

Grant Management. System Requirements

Evaluation Report: Accelerating SQL Server Database Performance with the Lenovo Storage S3200 SAN Array

IOS110. Virtualization 5/27/2014 1

The Bus (PCI and PCI-Express)

Windows XP Professional x64 Edition for HP Workstations - FAQ

Virtuoso and Database Scalability

Operating Systems: Basic Concepts and History

Lecture 2 Cloud Computing & Virtualization. Cloud Application Development (SE808, School of Software, Sun Yat-Sen University) Yabo (Arber) Xu

Sage Grant Management System Requirements

Operating System Components

Mark Bennett. Search and the Virtual Machine

Parallels Virtuozzo Containers

Get an Easy Performance Boost Even with Unthreaded Apps. with Intel Parallel Studio XE for Windows*

The Software Developers Guide to. Making Your Program Work With. Microsoft App-V. Tim Mangan. TMurgent Technologies, LLP

Microsoft Exchange Solutions on VMware

Computer Information & Recommendations

About Parallels Desktop 7 for Mac

Sizing guide for SAP and VMware ESX Server running on HP ProLiant x86-64 platforms

Aqua Accelerated Protocol (AAP) For Mac User Manual

Configuring Memory on the HP Business Desktop dx5150

32-bit and 64-bit BarTender. How to Select the Right Version for Your Needs WHITE PAPER

Memory Sizing for Server Virtualization. White Paper Intel Information Technology Computer Manufacturing Server Virtualization

Chapter 3: Operating-System Structures. System Components Operating System Services System Calls System Programs System Structure Virtual Machines

ACANO SOLUTION VIRTUALIZED DEPLOYMENTS. White Paper. Simon Evans, Acano Chief Scientist

DDR3 memory technology

Practical Performance Understanding the Performance of Your Application

System Requirements. SAS Regular Price Optimization 4.2. Server Tier. SAS Regular Price Optimization Long Jobs Server

StACC: St Andrews Cloud Computing Co laboratory. A Performance Comparison of Clouds. Amazon EC2 and Ubuntu Enterprise Cloud

CHAPTER 2: HARDWARE BASICS: INSIDE THE BOX

Enterprise Performance Tuning: Best Practices with SQL Server 2008 Analysis Services. By Ajay Goyal Consultant Scalability Experts, Inc.

Introduction to Virtual Machines

About Parallels Desktop 10 for Mac

Abila Grant Management. System Requirements

64-Bit versus 32-Bit CPUs in Scientific Computing

Real-time processing the basis for PC Control

Hardware and Software Requirements. Release 7.5.x PowerSchool Student Information System

Comparing the Network Performance of Windows File Sharing Environments

EMC Business Continuity for Microsoft SQL Server Enabled by SQL DB Mirroring Celerra Unified Storage Platforms Using iscsi

FileMaker Pro 11. Running FileMaker Pro 11 on Citrix XenApp

Copyright by Parallels Holdings, Ltd. All rights reserved.

DB2 Connect for NT and the Microsoft Windows NT Load Balancing Service

Performance Characteristics of VMFS and RDM VMware ESX Server 3.0.1

Understanding the Benefits of IBM SPSS Statistics Server

History of Windows. INLS 576 Spring 2009 Tuesday, 1/13/2009

Hardware Guide. Hardware Guide for Dynamics NAV. Microsoft Dynamics NAV 5.0. White Paper. Version 1 (October 25, 2007)

HP ProLiant DL585 G5 earns #1 virtualization performance record on VMmark Benchmark

Terminal Server Software and Hardware Requirements. Terminal Server. Software and Hardware Requirements. Datacolor Match Pigment Datacolor Tools

White Paper. Recording Server Virtualization

This Unit: Putting It All Together. CIS 501 Computer Architecture. Sources. What is Computer Architecture?

SNOW LICENSE MANAGER (7.X)... 3

Gladstone Health & Leisure Technical Services

Multi-core Programming System Overview

Windows Vista / Windows 7 Installation Guide

Molecular Devices High Content Data Management Solution Database Schema

Fall Lecture 1. Operating Systems: Configuration & Use CIS345. Introduction to Operating Systems. Mostafa Z. Ali. mzali@just.edu.

Cloud Server. Parallels. An Introduction to Operating System Virtualization and Parallels Cloud Server. White Paper.

Allscripts Professional EHR

9/26/2011. What is Virtualization? What are the different types of virtualization.

Citrix EdgeSight for Load Testing Installation Guide. Citrix EdgeSight for Load Testing 3.5

ICONICS Choosing the Correct Edition of MS SQL Server

Microsoft Windows Apple Mac OS X

APNT#1209 Using GP-Pro EX in Windows 7 XP Mode. Introduction. Prerequisites. Licensing and availability of XP Mode

Contents. 2. cttctx Performance Test Utility Server Side Plug-In Index All Rights Reserved.

Transcription:

TMurgent Technologies x64 Servers: Do you want 64 or 32 bit apps with that server? White Paper by Tim Mangan TMurgent Technologies February, 2006

Introduction New servers based on what is generally called the x64 architecture CPUs from AMD and Intel are now available on the market. These new processors allow for a 64-bit operating system to run both 64 and 32-bit applications side by side without modification. This advance is of great interest to the Terminal Server and Citrix communities due to the unique scalability limitations of the 32-bit Terminal Server, which is limited to 4GB of usable RAM and suffers from a shortage of Page Table Entries (an internal housekeeping function of the Microsoft OS) 1. With the necessary software finally coming together, it will soon become viable to run x64 based Terminal Servers. In addition to scalability due to x64, enterprises may see form factor (dual core) and price incentives to buy x64 on new servers in the near future. This short paper addresses the question of which applications need be, or should be, 64-bit executables when run on an x64 based server. The conclusions of this paper should be considered an opinion at this point in time (early 2006). Additional developments may yet affect the conclusions, however well researched they are. These conclusions are based upon the experience of porting and testing dozens of programs involving over 250,000 lines of code. The Hardware Intel (and HP) developed the Itanium 64-bit processor which was first released in 2001 2. Use of Itanium has been limited because in that chip architecture, both the operating system and applications must be 64-bit. Because there is a limited, although important, need for applications to be 64-bit the ISV community did not port many applications to Itanium. While software based emulation of 32bit applications is theoretically possible (much as 16bit applications are emulated on 32bit processors by Microsoft s ntvdm ) performance concerns prevented that from happening. The Itanium based servers have thus held a small niche market handling a few very large applications. The x64 hardware has been available for some time now. With x64, most 32-bit applications may run unmodified with emulation provided by the hardware. 1 See Terminal Services Scaling and Performance on x64-based Versions of Windows Server 2003 http://www.microsoft.com/downloads/details.aspx?familyid=9b1a8518-d693-4bbb-9af8- B91BBC0D2D55&displaylang=en 2 See Itanium, A Cautionary Tale http://news.zdnet.com/2100-9584_22-5984747.html?tag=st.num X64: Should apps be 64? 2 Copyright TMurgent Technologies

The distinction between hardware and software emulation is very important from a performance point of view. Software emulation requires multiple hardware instructions to execute for each emulated instruction. With x64 hardware emulation, this emulation is performed on a one-to-one basis the 32-bit instructions are executed directly by the CPU. This means that 32-bit applications run in an x64 system will run with relatively the same performance as if they were run on an identical x86 processor. The hardware industry is also shifting to multi-core technology in new server designs. This is due to a combination of footprint, heat, and scalability. To keeps their costs down, if the software market for x64 based machines exists, they may well place pressure on system builders to push x64. It would not be surprising to find it harder and harder to purchase an x86 server in the future. The Software The adoption of the x64 hardware platform will have an minor impact on most of the ISV 3 community. They can (generally) support the x64 platform without a costly port or maintain two versions; existing executables will mostly run. However there is some software that must be ported to a full 64-bit. The first software that must be 64-bit is the Operating System. Microsoft was slow in releasing the x64 Operating Systems, which was in Beta for over a year but was finally released in 2005. The Windows Server 2003 release for x64 parallels that of the 32-bit version, and it appears that future OS releases from Microsoft will be released in parallel also. We have been running this OS with Terminal Services enabled in our lab at TMurgent since release and can report no problems in stability 4. I should point out that in the releases of Microsoft s x64 OS, all components, except those to support 32-bit applications, are 64-bit. This includes the free applications included in the OS such as mspaint. This should not necessarily be interpreted as an indication that all applications should be ported. One suspects that Microsoft wanted to make a point that all applications could be ported and someone internally made an edict that they would be. Second, any software that runs inside the OS kernel must also be 64-bit 5. This means all kernel mode drivers. Until recently, this has been holding back the x64 market. Hardware vendors are now mostly ready with their drivers. Any good 3 ISV: Independent Software Vendors. This is a generic industry term for vendors that make application software. 4 It has only been rebooted twice in 6 months, once when the lab was moved, once for a security update. 5 Note this quote: Microsoft has announced that the next major release of Microsoft Exchange Server, code-named "E12," will ship for production deployments as a 64-bit-only application see http://www.microsoft.com/presspass/features/2005/apr05/04-11itanium.mspx X64: Should apps be 64? 3 Copyright TMurgent Technologies

system builder can ensure that you are buying components for which there are available drivers, but some care is still cautioned. Most important are external components that connect up and need drivers. Printer drivers are obvious, but also consider items like security keys. Citrix is of course a key component in this market. In late 2005 Citrix made the 64-bit version of Presentation Server available. As the Presentation Server includes quite a number of drivers and services, a 64-bit version of many of the components of Presentation Server 4 was needed in order to run on the x64 hardware. Many other third party vendors in this market either have, or will soon have, versions of their product that either are 32-bit products tested on the x64 OS or a 64-bit version. But what about the run-of-the-mill software applications that office workers depend upon? The vast majority of these applications will work unchanged, but some of these vendors will product 64-bit versions. The Question So Hardware, OS, and Citrix are ready for x64. Let s say that you are ready too. Let s also say that a vendor of a software package you need has both a 32-bit and 64-bit version available and either will run in x64. Finally, add in that there is no added functionality in the 64-bit version of this application. Which one do you want on your x64 server, 32 or 64 bit applications? Some additional information is necessary to answer this question. If we look at something like mspaint (Microsoft Paint) in the operating system, functionally we can quickly determine that there is no effective functional difference between the 32 and 64 bit versions. Nobody in their right mind is going to paint a picture using that tool which requires a larger address space. You can copy the 32-bit version of mspaint.exe to an x64 server and it runs just fine also. The size of the x64 executable is larger than the x86 (32-bit) version 6. If you run the two side by side on an x64 server you will see that the memory footprint is also larger. While the OS is no longer constrained to 4GB or ram 7, with 100 users on a server you might have 1000 processes if each process consumes a few extra MB of memory it starts adding up real fast. Someone still has to pay for all that ram! 6 File size 557kb versus 336kb, a 66% increase. 7 Theoretical limit for x64 systems is about 20 Exabytes (actual is lower). An Exabyte equals one billion Gigabytes. X64: Should apps be 64? 4 Copyright TMurgent Technologies

In our lab we took several software programs and ported them to x64 to look at examples of increased memory usage where we could be sure we were looking at apples versus apples. To build x64 applications, we first needed to port them from Visual Studio 2003 to the new Visual Studio 2005. The 2005 version was needed so that we could produce both 32 and 64 bit versions using the same Microsoft library APIs. Applications build with Visual Studio 2005 may be slightly larger than with 2003 individually. This is because Microsoft has re-written the run-time libraries. These new libraries will help applications avoid stability and security threatening buffer overruns, and are well worth the porting effort, even ignoring 64 bit. I have seen that the new run-time also appears to share better, so that even though an individual application may be slightly larger, concurrent application memory use may actually be lower in some cases. So what is actually bigger in the software when built for 64 bits? In the 16 to 32 bit port we had both the memory size increase and the basic way we count things, the integer, double in size. In 32 to 64 bit porting, we don t change the basic integer size. If 32-bits was enough for a counter before, it probably still is big enough now 8. Pointers (and things that act like pointers, such as handles and sizeof variables) double in size 9. Thus one should expect an identically built piece of software to use more memory on an x64 server when built as a 64-bit exe than when built as a 32-bit exe, but not to double in size. I ran a small test program that shows the following difference in memory size and handle use: Example Exe Size Working Set Page Handles VS2003 built 32-bit 264KB 3660KB 1244KB 27 VS2005 built 32-bit 320KB 3612KB 1228KB 27 VS2005 built 64-bit 478KB 4976KB 2628KB 20 These numbers were all taken from running the software on the same x64 server. Different software would have different results, but a 30 to 70% increase in memory between the identically built 32-bit and 64-bit program should be expected. If you receive no benefit from the 64-bit rebuild, and you have to provide that extra memory, you might prefer to run the 32-bit version. There are additional advantages to running the 64-bit version to be considered. The first is shown in the final column of the previous table. Notice how the 8 We already have 64-bit integers available in 32-bit processors, if needed. 9 Time also doubles in size. However, this change is related to the new 2005 runtime and not 32/64 bits. It will keep us from having another Y2K in around 30 years. X64: Should apps be 64? 5 Copyright TMurgent Technologies

number of handles used by the software reduced in the 64-bit build? The table shows that this is not related to the new run-time libraries. The extra 7 handles appear to be related to how the WOW does its work. Ultimately 32-bit code does have to interface with a 64-bit OS and those extra handles are a part of the small penalty that must be paid. Not that I have ever heard of a system running out of handles, but clearly there must be some performance overhead here. The second advantage to a 64-bit build is that the compiler may make use of additional registers that become available. This makes the processing more efficient, as the processor does not need to spend cycles (and memory bus bandwidth) moving data in and out of registers. This probably more than offsets the fact that some of that data (pointers and handles and the like) are now bigger to move, on applications that make complex, lengthy, calculations 10. How much memory can you save by using 32-bit apps on the x64 server? Try this experiment. Check the memory (page file) usage of one of your 32-bit terminal servers before any users log on. This is the Base OS (and Citrix, if installed) usage. Now check the usage after everyone is logged in. Again, you want to look at the total memory being used, not just RAM. Subtract the Base OS from this to get the difference. Now take 50% of that difference (an estimate of how much more memory those applications would use if rebuilt as 64 bit). Cost out how much money it takes to add that amount of memory to each of your servers. Ignore the 50% due to the base OS because you will have to pay for that anyway. The Answer There is no one answer to the question posed at the beginning of the last section, but a general statement can be made 11. For most run-of-the-mill office applications, to achieve the best performance at the least cost on a terminal server, you should try to stay with 32-bit applications. There are exceptions to that statement. Exceptions include situations where there is additional functionality which only becomes available in the 64-bit version of the application. It also includes applications that consume vast amounts of CPU performing complex calculations. It may also include cases where the 32-bit software just won t work, although in my experience more things are broken in rebuilding to 64-bit. 10 Computing a large factorial number may be lengthy and consume a lot of CPU, but it would not gain much advantage with additional registers. Weather forecasting, on the other hand, would. 11 This White Paper is free; remember that you get what you pay for. X64: Should apps be 64? 6 Copyright TMurgent Technologies

Other Thoughts One outstanding question is whether software vendors will give us a choice in this. Some may produce an installer that detects the OS and installs the 64-bit version automatically. This is not desirable, and ISVs would do better to offer a choice in the installer. The community will need to be vocal with these vendors to make them understand that you want that choice. Note: Various terms and company names have been used in this white paper which are trademarks of those companies, including Microsoft, IBM, AMD, Intel, Hewlett-Packard, and Citrix. X64: Should apps be 64? 7 Copyright TMurgent Technologies