Sie sind auf Seite 1von 45

Introduction Why Should You Understand Server Hardware? This is Glenn Berry from SQLskills.com.

I'm recording this course from Pluralsight and this course is about Understanding Server Hardware. This is module 1, the introduction. Why should you understand server hardware? What's the point of this course? Well, if you're the person in charge of picking out a server and specifying the component choices, it's is really important that you know what you're doing and you know a little bit about server hardware. It's really important that you make sure that your hardware can handle the kind of workload that's kind of we're seeing. There's a lot of different sorts of service out there such as web servers and application servers, database servers for example. And they all play as different demands on their hardware. You want to get the best performance scalability you can for you are given a hardware budget. You also want to make sure that you have some component redundancy to avoid single points of failure if you can. If you know what you're doing, you can save a quite a bit of money in this process, both on hardware cost and more importantly, on software license cost. Many products out there such as Microsoft SQL Server and Oracle are licensed by physical process or course. So how you specify your processors for example has a huge effect on the overall cost at your server when you include the software licensing cost. It's really important as you're going through in doing this know how old your existing hardware is, whether it's six months old or five years old for example. It could be that your existing hardware is a lot slower the new hardware is. There's been a very large advance in performance of the last several years according to Moore's law. And so, new hardware is going to be so much faster than hardware from three or four years ago. Having new hardware can just quickly alleviate a lot of performance scalability problems. Throwing the hardware at the problem is not always a bad thing. A lot of times, it's less expensive than spending months and months of development work in time trying to optimize an application. Introduction What is a server? A PC-based server uses specialized fault-tolerant hardware that's design for sustained heavy workloads. That means that it has higher quality components and often redundant components that are hot-swappable and it also usually has multiple processors and much more available RAM and much more IO capacity in a typical desktop computer. There are three main server form factors that you'll often run into. The most prevalent one is a rack mount sever. Next you'll find tower servers. They're usually more used in entry level applications. There is quite often less expensive than rack mount servers. And then you have blade servers that let's you pack more server computing capacity in less space. So, they're quite popular with IT departments. There are two main sever architectures and we're talking about CPU and memory architecture. The older one is symmetric multiprocessing or SMP. SMP is characterized by having a common shared front side bus that all the processors use to communicate with the main server memory and that cause bottlenecks especially as you increased your processor socket count in the past. So now a newer architecture is called NUMA, None-uniform memory access. And all servers that are using AMD or Intel processors from the last two

to three years were all using NUMA architecture and we'll talk more about both of these architectures later. When you're talking about a server, you know it has similar components to a desktop computer. You have a motherboard. You have one or more processors. You've got memory, internal storage. You've got cooling funs. You've got power supplies and so it's very similar to a desktop computer except these components were typically higher quality, they're going to last longer, be more reliable and again, they usually hot-swappable and quite often, you can get redundant components from any of these things. So finally, how are severs different in desktops? Once again, you know, you've got a higher quality components and they're designed to be more reliable and they're quite often hot-swappable, so you can change your components while the server is actually running. Also, since you've got more than one processor and much more memory and much more IO capacity, servers are design to handle much higher workload than you see with the desktop computer. What is a Server? So getting into more detail here, a server is going to be more durable and it has something called RAS features which sounds reliability, availability, and serviceability and that's getting into things like having redundant components that are hot-swappable without having to take sever down to change out a component. So, you have hot-swap capability and hot-add capability. So, you can actually put the memory into some servers while the server is running. You could actually also put a processor into some servers while the server is running. Although in real life, people don't typically do that very often. What's more commonly done is it something fails, you might replace it while the server is running. But it's not that often that somebody actually adds a processor without taking the server down to do it. So, servers are also designed for sustained high-volume usage. Their components are higher quality, so they're going to last longer and they're designed to handle a higher load for over a higher period of time than desktop computer. So, you've got more capable processors quite often with larger cache sizes. You've got much more memory, many more memory slots and you've got lots of internal drive bays plus you've got expansion slots so you can use external storage. So, this is one of the main differences between a desktop computer and a server. The common server types you're going to run into are things like web servers, application servers, file servers, database servers and those are just, you know, a few of the most common types of servers and each one of these has different kinds of workloads that places different sorts of stress on the different parts of the hardware. But the one common thing about all the server types is that many times, multiple applications are running on the servers and many users are communicating with that server over some sort of a network typically a TCP/IP Ethernet network. Server Form Factors Now we're going to go a little more detail about server form factors. The most common server form factor is a rack-mount server. Rack-mount servers have the standardized width and length that are designed to fit four-post racks that you find in typical data centers. Your typical chassis is 444 millimeters wide and 684 millimeters long. And so, when you-- rack-mount server sort of looks like an extra large pizza box that's rectangular in shape. There's various standard vertical heights that you'll see on rackmount servers and they're called rack units, they'll be called 1U, 2U or 4U and that just means that they're getting taller vertically. A rack unit is 1.75 inches or a little bit more than 44 millimeters tall.

Rack-mount servers will have mounting rails, so that you can slide them into the rails and pull them in and out of the rack while the server is running as long as you got your cable setup correctly with enough slot, that way, it's a lot easier to work on a server while it's still running 'cause you can do things like hotadd or hot-swap components that'd be pull it out of the rack. So, after rack-mount servers, you've got tower servers. And tower servers are very similar to a tower desktop PC that you might have and it's going to be a large vertical tower with lot more space inside for the internal components. Tower servers are typically more commonly use for entry-level servers. You can actually mount some tower servers with mounting rails and put them into a rack, but that's not very commonly done because it weighs quite a bit of vertical space. It's more common to see tower servers in closets or onto somebody's desk 'cause usually they're used by smaller organizations who don't have a regular data center with racks inside. Then you also have blade servers. And blade servers let's you have more density, more servers packed into a smaller space in a rack. And so, you'll have shared rack-mount chassis that has a lot of common components and then you actually have multiple blades inside of that rack-mount chassis. And so, you can get a lot more computing capacity and less space. So you get increased server density, but the problem is with that is that sometimes you can run in the bottlenecks due to shared chassis and it's also a single point of failure. So, if something goes wrong with that chassis, all the blades can be affected. So, they're not recommended for really mission critical workloads at least in my opinion. Typical Server Form Factors Okay, let's go on a little more detail about typical server architectures as far as processor and memory go. The first one is symmetrical multiprocessing or SMP. SMP uses a single shared system bus from memory access. So, all of the processor should share one system bus to get out to main memory. And this becomes a big problem as you add more and more processor to a server especially as you go from say four processor to eight processors or eight to sixteen processors. This is an older architecture that Intel was still using up until the Nehalem processors was introduced in 2008. So if you have an Intel Xeon that's older than in a Xeon 5500 or Xeon 7500 series, you're still using SMP architecture. A new architecture that all modern servers were using now is called NUMA or non-uniform memory access. NUMA divides your available memory into a NUMA nodes and each NUMA node is localized to one of your processors. So, each processor has really fast direct access to its local NUMA node. And then if it has access memory outside of that NUMA node, it's going to be a little bit slower to remote NUMA done. So, all Intel and AMD processors since about 2008 have NUMA support. If you have a server especially from Intel that's older than that, again you're going to have SMP instead of NUMA for you architecture. NUMA gives you much better scalability because it doesn't have that shared front-side bus that SMP had. But even with NUMA, you're not going to see completely linear scalability as you go from one processor to two processors to four processors and eight processors, it doesn't double each time what you would expect even with NUMA. But the story is quite a bit better with NUMA and it was with SMP. Major Server Components As you talk about major server components, you need to think about the motherboard first. The motherboard is really the home to all the other components in a server. Motherboards can have

processor sockets and the chipsets that go with the processor. You're also going to have memory slots and expansion slots that control how much memory will fit in the server and how many expansion cards you can also put in the sever. And finally, you've got integrated components that are integrated right on the motherboard. Examples of this are things like your video card and your going to have a number of integrated network cards or network ports right on the motherboard on all modern servers. You've also got one or more processors in the server. And when you talk about processors in the server world especially, you've got to talk about physical sockets and then physical cores within each processor and then logical cores within each processor. So, the way this work is that a socket is where you actually put an actual physical processor and then that processor might have one of more physical cores. In fact, all modern server processors have at least four physical cores and right now, you can go up to six teen physical cores in a server processor. And then if you're dealing with an Intel processor, you can divide those physical cores and of logical cores using Intel hyper-threading. And all this is really important when it comes down to software in licensing. So you need to pay attention to that as you're specifying the components for your server. Next, you have memory. And servers typically have a lot more memory than a desktop machine and they also have special fault-tolerant ECC, error-correcting code memory that allows it to deal with random errors that might be caused by solar flares or cosmic rays or slight voltage variations. So, it's much more reliable than your average desktop memory. You also have internal storage in a sever, and depending on how large that server is, whether it's a 1U sever or 2U server or 4U server for example, you're going to have a different number internal drive bays and this might be 2-12 inch drive bays or 3-1/2 inch drive bays and this is going to control how many drives you can fit in that server, so that's going to have an affect on how much storage bays you have and more importantly how much IO capacity you have that's using you internal drive bays. And finally, you've got other components that are going to be inside the typical server. So, this means things like the cooling fans, and hopefully dual power supplies and any other integrated components that are going to be inside of that server. How are Servers Different than Desktops? How are servers different than desktops? Well, first of all, we have redundant components in servers. The components such a power supplies are usually redundant and you've also got redundant embedded network interface cards. You've also got more internal drive bays that are typically in a RAID array, so you've got redundancy there. You've also got hot-swappable components in a server, things like power supplies or hot-swappable, the internal drives or hot-swappable, your fans or hot-swappable. You've also got things like memory and processors that are hot-swappable on some servers. You've also got more durable components on servers which is higher quality, more expensive components in servers. So for example, you're going to have enterprise-grade components such as Single-Level Cell solid-state drives instead of multilevel cell solid-state dives like you see on a consumer SSD. You've also got more expansion capability in a server. You've got more PCI-E expansion slots, so you can have more IO capacity and you got more memory slots. So you have more memory capacity also. And you have more internal drive bays. So, can have more drive space and more IO capacity internal to the server. Summary

To summarize this module, servers use durable, more reliable, more expensive, specialized hardware. You've got three different form factors for severs. You have rack-mount, tower, and blade form factors. You also have symmetrical multiprocessing or NUMA architectures. All modern servers are using NUMA architecture now. Servers have multiple redundant components. So, you have single motherboard. You've got one or more processors and you've got a large number of memory slots with a higher memory density than haven't desktop PC. You have internal storage for drive bays and you've got dual power supplies that are hot-swappable and then you have integrated components for things such as your video card and network interface cards that are integrated on the motherboard itself. Severs are different form desktop machines again because of this redundant components that more reliable than desktop PC components. Overall, you've got greater scalability and expansion capacity in a server than you do in a desktop PC. Course Structure Now you've seen module 1, Introduction to Server Hardware. I'll quickly go over the course structure for the rest of the modules. Module 2 is going to about hardware identification. How to identify exactly what sort of server you have and what components you have. Module 3 will be about hardware evaluation. How to run benchmarks both at the application level and the component level to see how your sever compares to other servers you might be considering purchasing. Module 4 is going to go into detail about how to select all the components for particular server. Module 5 will be talking about how to maintain your hardware overtime. And then module 6 will be talking about severs in the real world including things about how to justify the purchase of new a server. Hardware Identification Introduction Hi, this is Glenn Berry from SQLskills.com. I'm recording this course for Pluralsight. This course is about Understanding Server Hardware, and this is Module 2: Hardware Identification. In this module, we're going to be talking about how to gather information about your hardware. It's really important that you know exactly what components you have, and how they're configured and what their current status is, whether they're operating correctly or not. There's several easy to use hardware identification tools that we're showing here including msinfo32 and CPU-Z. We'll also talk about some of the server management tools that the major server vendors offer such as Dell and HP. And we'll also talk about how to understand server model numbers so you can look at a server model and understand the capabilities of the server. And we're going to do some detail about how Dell and HP actually use their server model numbers. And then, we'll get into actually how do you identify Intel and AMD processors, because that's extremely important when you're specking out a server? And then we will talk about how to understand your server's limits, both licensing limits and physical limits of how much memory and how many expansion slots that you might have at particular server. Gathering Information About Your Hardware

Gathering information about your hardware, one of the most important things you needed to do when you're looking at servers is find out exactly what brand and model of server that you actually have right now. Is it a Dell server? It is an HP server? Is it an IBM server? And what model server is it? This is extremely important information to know. It lets you determine how many processor sockets are supported. Is it one socket server, a two socket server, or a four socket server, or larger? It lets you determine a number of memory and PCI-E Expansion slots. It also lets you determine the number of internal drive bays that were supported by that model of server. How can you know the model or server? You need to find out exactly what processor is installed in that server. And you might have multiple processors in a server because that's a really important measure of your performance and scalability. There's a big difference between different processors. And this is a really important detail to know. And nonetheless, it's important for performance and scalability measurements. It's also really important for software licensing purposes. Example, you know, some software such as Oracle or SQL Server are licensed by the physical processor core. So, it makes a lot of difference whether you have say, four processor cores or 16 processor cores. That can make a huge difference in your overall cost. And then finally, you want to figure out what expansion cards if any are installed in your server. Depending on the model of your server, you might have anywhere from two or three PCI-E Expansion slots to perhaps seven or eight PCI-E Expansion slots. And there can be different types of slots, whether they're PCI-E 1.0, 2.0, or 3.0. And once you know how many slots you have available, it's important to know what's actually in there because you might have things like RAID controllers, or Host Bus Adapters, or additional Network Interface Cards beyond the ones that are embedded on the motherboard. So, this information ultimately determines how much input-output capability you have for the server. Hardware Identification Tools Hardware identification tools, I'm going to talk about some of the built-in tools that come with Windows that you can use to get some information about your hardware. And mostly, we're going to talk about our free tool that you can download to get even more information about your processors and memory. First that I'm going to talk about here is just the Windows system properties dialog. This is included with all recent versions of Windows whether it's a server version of the operating system or a client version of the operating system. And if you open up this dialog, you'll get information about your processor type and its rated base clock speed, any amount of physical RAM that's in your server. You also will find out exactly what version and in addition of Windows that you're running which is very useful to know. Next, we'll be talking about msinfo32 which is also included with all recent versions of Windows. And when you run this utility, you get information about the system manufacturer, and the model of the server, and the main BIOS version. And you also get more information about the processor model and its rated clock speed and the amount of physical RAM in the server. And you also will get some information about your expansion slots. Finally, CPU-Z is a pretty well-known tool that's been out for at least four or five years that's very popular in the hardware enthusiast community and also among server administrators. You can use this to identify exactly what processor model you have and a memory details for your server. And even more useful, that shows you the current processor clock speed and it will be changing dynamically. And so, this is good information to know when you're looking at a server. It's available from www.cpuid.com.

Demo: Windows System Properies Dialog In this demo, I want to show you how to use the Windows system properties dialog. I'm running Windows 7 Enterprise Edition on my workstation here. This will work on all recent versions of Windows. So first of all, you want to go to the Start menu, and go to Computer, and right click, and choose Properties. And this will open up the Windows system properties dialog. And in my case, it shows that I'm running Windows 7 Enterprise Edition with Service Pack 1. From a hardware perspective, it shows that I'm running an Intel Core i7 3770K processor. It's greater than 3.5 gigahertz. It also shows that I have 32 gigabytes of RAM and I'm running a 64-bit version of Windows. And then it tells me the name of my computer. So, this is all useful information to know. Demo: msinfo32 In this demo, I'm going to show you how to use msinfo32. This is a built-in utility that's in all recent versions of Windows. In order to start, you just go to the Start menu, and then type in msinfo32, and hit Enter. And this opens up the System Information dialog. If I maximize that window and move some things around here, we can see that it tells me a lot of useful information about my operating system and about my hardware. In this case, it shows me I'm running Windows 7 Enterprise Edition with Service Pack 1. It tells me the net BIOS name of my computer, and it tells me that I'm running a 64-bit version of Windows 7. It also tells me the exact model of my processor which in my case is an Intel Core i7 3770K processor that's running at 3.5 gigahertz. It has four physical cores and eight Logical Processors since I have hyper-threading. It also tells me the version and date of my main system BIOS. It tells me what Windows is installed. And then it tells me I've got 32 gigabytes of RAM and also some information about my Page File, how large it is and where it's located? One other thing you can do besides just looking at this dialog, let's go to the File menu and choose Export, and then you can export this information to a text file. So, I can just type in something like Glenn and then save in to my Desktop. And it's going to collect all these information that this utility detects and save it in the text file. This will take a few seconds depending on how much stuff is installed on your system. So, if we take a look there and just open up this text file, you can see there's a lot of information here that you can scroll down through and take a look at, at your leisure. Demo: CPU-Z In this demo I'm going to talk about the CPU-Z Processor Identification Utility. You can download this utility for free from cpuid.com. It doesn't require any installation. You just can copy the executable out of the zip file to your desktop. So once you've done that, you can double click on this and it'll take a few I guess seconds to scan your system to see what kind of processor and memory you have. So when it first opens up, you can see it's on a CPU tab. And this tells me the name of my processor including the rated clock speed down here. It also-- this tells me that I have an Ivy Bridge processor and the Maximum Thermal Design Power which is 77 Watts. It tells me that I have a Socket 1155 for this motherboard. And the manufacturing process Technology is 22 nanometers. The core voltage is jumping around right there. And then here, you can see that it shows me the exact steeping and revision of this particular processor. And then here's all the supported instructions for this processor. And down here, it tells me

what core zero of Processor one is running at the actual clock speed, and you can see it jumping around. And the multiplier will change too as it changes clock speed. And over here, it tells me how large my L1 Data cache is and my L1 instruction cache. And then, here's my Level 2 cache which is a little bit larger, and then finally, the shared Level 3 cache. And then right down here, it shows me that I have four physical cores in this single processor and then eight Threads which means I have Intel hyper-threading. If we go to the next tab, it gives me more information about the caches exactly how large they are and what type of cache they are. Then the next tab tells me the manufacturer of my main board and the Model number of my motherboard including the Chipset that it's using and then the Version and Date of the main BIOS, and what kind of PCI-E Express slot I have for the Graphics card. And the next slot shows me that I have 32 gigabytes of DDR3 Memory and Duel channel mode, and how fast it's running, and the various ratings for the memory. And the next tab, the SPD, the Serial Presence Detect tab will show me more details about each memory stick that is in each of my four slots on this particular system. So, these are eight gigabytes, six memory. Then, it tells me what graphics card that I'm running. And then the About tab tells you the version of the utility. And down here, you've got a tool that let you save a report of this to either a Text file or an HTML file. So, if I click on Save Report HTML and save it to my desktop, it saves an HTML page that I can open up in my browser and take a look at it. So then, I can scroll down through this and see a lot more detailed information about my system when I took that snapshot. So, you can see there's a lot of good information here about your system. And one of the most important things that you can use this for, as we go back to the CPU tab, you want to take a look at the actual Core Speed right now versus the rated clock speed. And depending on what processor you're running in your server, this can be running at a lower or a higher speed than the rated clock speed. And that has to do again with the model of the processor and also the Windows power plan that you're using and your BIOS settings. So, that's something I'll talk more about later. We just keep that in mind. That's one of the most important things to look at when you're running this utility. Server Management Tools Server-management tools, the hardware vendors all have their own proprietary servermanagement tools. These are combination of the built-in hardware cards and let you do certain things and then software that they offer for their particular brand of server. For example, Dell has something called the Open Server Management Administrator or OMSA. OMSA is a software program that you have to actually install on the host server. And once you do that, it has a browser interface that lets you go in and scan the server and see its current status and go in and make changes to certain parts of the server configuration. So for example with Dell OMSA, you can see what memory slots are populated, what size DIMM modules. You can also see what expansion slots are populated with what devices. And you can see details about the logical drives that are managed by your RAID controllers, and you can also go on and change those details. So, you going in and a hot spare or change the caching policy of your RAID controller. You can also see your BIOS and firmware versions and the service code for your Dell server, from Dell OMSA. And you can also monitor their current temperature of all the different components in your motherboard and see whether you have any failed components. So for example, if one of your power supplies was unplugged or it failed, they would show up in Dell OMSA. HewlettPackard has something called Integrated Lights-Out or iLO. And that is a card that lets you do things

from remote location such as reboot a server. It has a separate network connection and an IP address. So, even though the server isn't really booted on running window is you can communicate with it and do certain activities like reset the server or power up the server. ( Pause ) Understanding Dell Server Model Numbers Understanding Dell server model numbers, if you're working in a Dell shop or just dealing with Dell servers in general, it's really important you understand how to decode Dell server model numbers. When you're looking at a Dell server model number, the first character is the form-factor. That's going to be either an R for Rack-mounted, a T for a Tower server or an M for a Blade server. The second character is position in a server lineup. Higher numbers are higher end server models. A third character is a server generation. So for example, 1 is 11th generation, and 2 is 12th generation. The fourth character indicates processor vendor. A 0 is Intel, while a 5 is AMD. So for example, if you have a Dell PowerEdge R720 server, the R means it's Rack-mounted, the seven means that it's relatively high in the overall server lineup, the two means it's a 12th generation server, and the zero means it's an Intel-based server. Understanding HP Server Model Numbers Understanding HP server model numbers, if you're working in an HP shop or just dealing with HP servers, you need to understand how HP does their server model numbering. The first two characters are the form-factor and the product line. So, DL means Rack-mounted, ML means Tower, BL means Blade, and SL means Specialized. The third character is a number of sockets. So, 1 is 1 socket, 3 means 2 sockets, 5 means 4 sockets, and 9 means 8 sockets. The fourth character is a position in the family lineup. So, a higher number means a higher position or a higher end server for that particular server family. The fifth character indicates processor vendor. So a 0 is Intel, and 5 is AMD. So of example, if you have an HP DL580 G7 server, that means DL is a Rack-mounted server, the five means it's a four socket server, the eight means it's fairly high in their family lineup, and the zero means it's an Intel-based server, and then the G7 means it's a 7th generation of the DL 580. Identifying Your Processor(s) Identifying your processors, it's really important when you're looking in an existing server or when you're looking at a perspective new server to understand exactly what sort of processor you have, the exact model of the processor. So, you can use msinfo32 or the Windows system properties, or CPU-Z to identify the exact processor vendor and the exact model number. It's really important that you know this. Quite often, when I talk to people who are system administrators and I ask them what sort of processor they have, I get some vague answer, "Well, I think it's an Intel Xeon." But they don't know anything else about it. And that's a big mistake. The details really do matter when you're evaluating the processor so you can tell how old it is and how well it's going to preform compared to other processors. So when you do this in the Windows world, its kind to either be an Intel processor or an AMD processor. And once you know vendor and the model number, then you can go to the vendor's website. So for Intel, it's going to be the Intel Ark Database, and there's a URL for it. Or for AMD, they have a list of

Opteron processor numbers at that URL. Or you can use this information to find all the exact details about that particular model. Decoding Intel E3-E7 Processor Numbers Decoding Intel Xeon E3, E5, and E7 processor numbers. We were looking at an Intel processor, it's really important that you understand how their model numbering works. For example, if you have an Intel Xeon E5-2690, what is that mean? How good of a processor is that? Well, the first two characters and the model number identifies the product line. So, you're going to have an E3 which is a single-socket processor and E5 which is a dual or quad-socket processor, or an E7 which can be used in two socket, four socket, or eight or more socket processors. The third character on the model number is the "wayness". Wayness means how many CPUs can be in a node which basically means a host? And that can be either 1, 2, 4, or 8. The fourth character is a socket type. And then the fifth and sixth character are the processor SKU or Stock-Keeping Unit. Higher numbers mean a higher position in the product line. So, a 90 in this E5-2690 is very high in their product line. There's an optional seventh character which can be an L. And that means it's a low-power processor, meaning, it uses a less electrical power. You're also going to see a V2 or a V3 suffix in the future. So for example right now, you can get an Intel Xeon E3-1290V2 which is the Ivy Bridge version of the E3-1290. Intel Xeon E3-E7 Processor Number Examples Intel Xeon E3 through E7 processor number examples. Let's go through a few examples of Intel processor number so we can better understand how this system works. The first example is that Xeon E3-1290V2. That's a single-socket, 22 nanometer Ivy Bridge processor. The next example is the Xeon E52648L. That's a two-socket, E5 processor which happens to be a 32 nanometer Sandy Bridge-EP, and the L means it's a low-power version meaning, it uses less electrical power. Next example is the Xeon E54650. That means that processor can use-- be used in a four-socket server. It's a 32 nanometer Sandy Bridge-EP processor. Then you have Xeon E7-2870. That processor can be used in a two-socket server and it's a 32 nanometer Westmere-EX processor. So, it's one generation older than the Sandy Bridge line. Next, we have the Xeon E7-4830 which is a processor that's used in a four-socket server and it's also a 32 nanometer Westmere EX-processor. But notice, it is a 4830 which means that it's going to be lower in their line for the Westmere-EX. It'll have a lower clock speed and perhaps fewer cores or a smaller L3 cache. Next example is the Xeon E7-8870. And that's a processor that can be used in an eightsocket server, and it's also a 32 nanometer Westmere -EX. But notice, it's an 8870 which means it's higher in their product line than that 4830 was. Decoding Intel Legacy Processor Numbers Decoding Intel Xeon Legacy processor numbers, if you have an older Xeon processor meaning, one made before 2011, they used a different processor numbering system. So for example, you might have an Intel Xeon X5570 processor. In this case, the first character is a processor description. X means a performance, E is the mainstream line, and L is a power-optimized line which is less electrical power. The second character is the product family. You're going to have either a 3, a 5, or a 7 there. Three is for processor use in single-processor servers, 5 is for processor use in two-socket servers, and 7 is for

processor use in multi-processor server. It's usually, meaning, four or more sockets. The third character is a processor generation, a higher number with a newer generation. It also has something to do with the product family. So for example, you might have a Xeon 5400 series, a 5500 series or 5600series, each one of those getting newer. The fourth and the fifth character indicate that processor SKU or Stock-Keeping Unit. Higher numbers mean a higher position in the product line. So, a 5570 would be higher in their line than a 5550. Higher numbers usually mean higher performance. Intel Xeon Legacy Processor Number Examples Intel Xeon Legacy Processor number examples, now that we understand how the older processor numbering system works, let's go through a few examples. For example, you might have an Intel Xeon X3480. That's a one-socket performance, 45 nanometer Lynnfield processor. That's fairly high in the product line. Next, you might have Xeon E5440. That's a two-socket mainstream processor, that's a 45 nanometer Harpertown processor. Next, we have Xeon X5570. That's a two-socket performance server which is 45 nanometer in Nehalem-EP processor. Now, we have Xeon L5640. That's a two-socket, power-optimized, 32 nanometer Westmere-EP processor. Next, we have Xeon X7460. That's a foursocket performance, 45 nanometer Dunnington processor. Then, you have Xeon X7560. That's a foursocket performance, 45nanometer Nehalem-EX processor. Now for all of these processors, if you want to find out all the details about it, you need to go look it up in the Intel online Ark processor database. References for Intel Xeon Processor Information Now, we have some references for Intel Xeon Processor Information. If you want more information about how their processor numbering works or if you want more information about the Ark Database, you can go to this URL to get a good explanation of Xeon processor numbering. Then in the Intel Ark Database, Xeon E7 family, there's a link for that. The Xeon E5 family has its own link. And the Xeon E3 family has its own link. And we'll have a demo later on that shows how this Ark Database works. It's a really good resource that gives you all the glory details of all the Intel processors. Demo: Intel Ark Database In this demo, I'm going to show you how to use the Intel Ark product database. I'll start at my browser and I've got the database set as my homepage. This takes me to ark.intel.com. And we're concerned with server products here. So, we go down to where it says SERVER PRODUCTS. And then, we're some sort of interested in processors right now. We'll click on that. And this shows all the different sever processors that Intel has offered now and in the past. And we're interested in the Xeon processor E5 family. So, we click on that. This will show us all the different Xeon E5 processors. And what's nice about this is you can see some of the specs right here and the price of it. And then you can click on one of this that you might be interested in. So, let's find the E5-2690 and click on that. And this gives us even more details about that particular processor. It shows us that it's been launched in Q1 of 2012, and how many Cores it has, how many Threads it has, the basic Clock Speed, the Max Turbo Frequency, and so on. So as you scroll through this, you can get a lot of really detailed accurate information about this processor. And that's what I do rather than try to memorize the specs for each processor. You can just find it here and get the actual details. And you can go back and forth and find

different processors you might be interested. And so, here's another one, that E5-2643. And it's one that I recommend in some cases to save on licensing cost 'cause it only has four cores and then eight with hyper-threading. And it cost quite a bit less money and saves some money on software licensing cost in some cases. Decoding AMD Opteron Processor Numbers Decoding AMD Opteron Processor numbers, when you look at modern AMD Opteron processor, you need to be able to figure out what that processor number is telling you. We're talking about three different series. The first one is the 3000 series. That's for entry-level, single-socket servers. Next, we have the 4000 series. That's for mid-range, one and two-socket servers. Finally, we have the 6000 series. That's for their high-performance line that's used in two, four, and higher numbers of sockets servers. So, you're going to have AMD Opteron 3000, 4000, or 6000 as the basic model number. Then at the end of the processor number, you might have a two-character suffix. The first one is SE which means it's a performance optimized and uses more electrical power, HE means it uses less electrical power and then EE, this means the lowest amount of electrical power. So for example, you might have AMD Opteron 6284 SE, the 6000 series means that's their high performance line. And the two actually has something to do with the generation of it. And then the SE tells it's a performance optimized, high-power processor. AMD Opteron Processor Number Examples Now that we understand a little bit better how AMD Opteron processor numbering works, let's go through a few examples. First, we have an Opteron 6284 SE. So, that's their high performance line. The two tells us that it's an Interlagos processor and the 84 SKU which means it's fairly high in their line then the SE means its performance processor uses more electrical power. Next, we have an Opteron 6262 HE. And that means it's a low-power processor, it's a 32 nanometer Interlagos processor. That's what the two is telling us. And the 62 means it's relatively lower in their line than that 84 we just talked about. Next is an older Opteron 6174. And that's a 45 nanometer Magny-Cours processor. It doesn't have a suffix so it's just regular as far as power usage goes. Next is an Opteron 4256 EE. And that is in their midrange line. It's a 32 nanometer Valencia processor, and the EE means that it's lowest electrical power usage. Next, we have an Opteron 4184 and that's an older processor because of the one instead of a two in the second digit. It's a 45 nanometer Lisbon processor. Next, we have an Opteron 3260 HE. And that's a low-power, 32 nanometer Zurich processor that's used in single-socket servers. The HE is telling us that it's low-power. Understanding Your Server's License Limits Understanding your server's license limits. When you're looking at specking out a brand new server, you need to keep in mind that there's certain license limits you have to worry about. First of all, it's the Windows license limits. That's going to be tied to the version and edition of Windows that you're going to run on the server. So, that's going to affect things such as the maximum amount of RAM or physical memory that you can put in the server and have Windows recognize it. It's also going to have something to do with how many processor sockets are supported by that version and edition of Windows. And also,

it'll have something to do with the maximum number of logical processor cores that you can run with that version and edition of Windows on a server. Next, you have to worry about the application license limits. Depending on what application you're running on a server, you might have license limits there that can be tied to the version and the edition of your application. That's going to limit how much RAM you can have in some cases, how many processor sockets, and the number of processor cores that you going to have. So, you need to stay aware of these license limits as you size your hardware. You don't want to make the mistake of over sizing your hardware above the license limits for Windows or the application that you're going to run. So for example, if you know that you're going to be running Windows Server 2008 R2 Standard Edition, that has a maximum memory limit of 32 gigabytes of RAM so you wouldn't want to go out and buy a server with 128 gigabytes of RAM because Windows can only recognize 32 gigabytes of memory, and you would be wasting quite a bit of money on that extra memory. Another example is you don't want to undersize your hardware based on your license limits. So, if you've gone ahead and will be spending the extra money to have a higher edition of Windows or a particular application, you want to take advantage of that. So, an example on this case is if you're running SQL Server 2012 Enterprise Edition, it would be a mistake in most cases to only have 16 gigabytes of RAM on the server because RAM is quite inexpensive. And SQL Server in particular really likes to have more memory and only having 16 gigabytes of RAM would really throttle a performance of that serve in that case. Understanding Your Server's Physical Limits It's really important that you have a good understanding of your server's physical limits beyond the license limits we just talked about. There're physical limits on several key items you have to keep in mind. First one is how many physical processor sockets does a server have, is it 1, 2, 4, 8? That's going to have a direct effect on your ultimate performance and scalability for the entire server. It also limits how much memory can be installed on the server because all modern processors have memory controllers in the processor. So if you have a two-socket server with only one processor in it, the amount of RAM you can install is going to be half of the maximum for the server. Next, you need to keep in mind how many memory slots does the server have. Modern servers have increasing memory density over servers from a few years ago. So, you can have a lot more memory in a one or two-socket server than you could a few years ago. But that's going to limit how much memory can be installed ultimately. Next, how many PCI-E Expansion slots does a server have? Again, the number of PCI-E Expansion slots has been going up in the last few years. So, it's a lot higher than it used to be, but that's going to limit the total I/O capacity that you have available for the server. More PCI-E Expansion slots are better. They're used for Network Interface Cards, they're used for Host Bus Adapters for SANs, they're used for RAID controllers, and also for PCI-E storage devices such as fusion I/O cards. Next, how many internal drive bays does a server have? Because having more internal drive bays lets you run more of a load and have more storage space available just using the internal drive bays. Next, you can think about how much electrical power does a server require? It used to be very common a few years ago that if you filled up a 42U rack with 1U servers, all those servers should use more power than the data center could supply to 1 rack in terms electrical power and also cooling capacity. But modern servers have more energy efficient components so the power usage is going down quite rapidly on modern servers.

Summary Now, it's time to summarize what we've talked about in this module. It's extremely important that you understand how to identify hardware both when you're looking at your current hardware and when you're evaluating new hardware. It really helps you understand your current capacity, scalability and performance. Modern servers are so much better than server from three or four, five years ago. And when you're looking at existing servers, understanding exactly what you have helps you decide whether it makes any sense to upgrade any of your components such as getting more memory for an existing server, for example. Next, you want to think about and be aware of how to identify your server vendor and the exact model of your server. That's really important to help you understand how old that server is and what capabilities it has. So when you're looking at that, you need to think about how many processors do you have and what exact model of the processor is installed. You also want to know the exact amount and type of RAM that you have installed on the server. You want to know the number and type of PCI-E Expansion slots and what's installed in those slots or you have any empty slots available, for example. You also want to know the number and type of internal drive bays, you know, you might have some empty internal drive bays, you could add more drives too to have more storage bays for more storage performance. Finally, you really want to know exactly what processor vendor whether it's Intel or AMD and the exact model of the processor. It's not good enough to know that it's an Intel Xeon or an AMD Opteron. You need to know that model number. This is going to give you a lot of insight into the ultimate performance and scalability of that server compared to a brand new server, for example. And it's also very important for software licensing purposes. More and more software vendors are charging for processor licenses or processor core licenses. And knowing how old your processor is can be really good ammunition to help you justify buying a brand new server that's going to be much more performing compared to the existing server that you have right now. What is Next? So, what's going to be on the next module? Module 3 is going to cover hardware evaluation. This will include understanding your workload whether it's a web server or a file server or a database server. Next, we'll be talking about application level benchmarks and how you use them to evaluate your hardware. We'll also be talking about component benchmarks and how to use them to evaluate individual components on your server. And we will be talking about how to understand hardware tradeoffs you have to make when you have a limited budget. Hardware Evaluation Introduction This is Glen Berry with SQLskills.com. I'm recording this course for Pluralsight. This is Understanding Server Hardware: Module 3 Hardware Evaluation. Here's what we'll be talking about in this module. First, we'll be talking about how to understand your workload. Different types of servers will place different demands on a different components in your server so it's important that you know your workload type as you're picking out the components for the server. Next, we'll be talking about application benchmarks such as TPC-E and TPC-H and also SPEC Java Benchmark. And now we're getting

into component benchmarks that stress different parts of your server. And we're talking about disk benchmarks like CrystalDiskMark, HDTune Pro, ATTO and SQLIO. And we'll also be talking about processor benchmarks. Some examples are Geekbench and the SPECCPU2006 benchmark and Cinebench. Finally, we'll be talking about memory benchmarks. There's a memory component of Geekbench and there's also a SiSoft Sandra 2012. And then we'll finally, we'll be talking about understanding hardware tradeoffs. It could be that you don't an unlimited for your server and also as you're picking different components, that can sometimes affect the other components and affect the overall performance of your server. Understanding Your Workload Understanding your workload. Different types of workloads are going to place different demands on your hardware. Different components are going to be under stress depending on the workload type. The four main components we're concerned with here are the CPU, your memory, your I/O subsystem, and the network subsystem. So for CPU-intensive workloads, that's typically going to be application servers and web servers that place a lot of stress on their CPU. For memory-intensive workloads, that's usually going to be database servers and caching servers, it place a lot of stress on their memory subsystem. For I/O-intensive workloads, you're going to have database servers can be extremely I/O intense and file servers. And then for network intensive workloads, you have file servers and web servers. So as you think about this and look at this list, this will have some influence on how you decide to provision your server. So for example, if you know that you're going to have a CPU-intensive workload with an application server, you're going to pay more attention to what sort of CPU you buy. And you might buy a more expensive, more capable CPU to handle that. And that's the same work for these other types of workloads. A database server is going to be more concerned with memory and I/O in most cases. Application Benchmarks Application benchmarks. Application benchmark use real applications to measure the actual performance of a system while you're running a particular application. This measures the entire system not just individual components. Component benchmarks focus on one component and try to stress that component with the synthetic workload. So application benchmarks are more realistic for the entire system. Application benchmarks are very useful for comparing different systems. You can use it to compare an existing system to a new system and you can also use it to compare multiple candidates for a new system that you're thinking about purchasing. This can be really helpful for sizing and consolidation calculations. So for example, you might have several database servers, you were thinking about replacing and consolidating them on to a brand new server. In using application benchmarks, you might be able to figure out that this new system could possibly have five times the capacity of one of your existing systems so this give you more confidence that you'd be able to successfully consolidate this workload on a single server. TPC TPC-E OLTP Benchmark The first application benchmark we're going to talk about is the TPC, TPC-E, OLTP benchmark. TPC stands for the Transaction Processing Performance Council. In this particular benchmark is an OLTP,

Online Transaction Processing database benchmark, it was first introduced in February 2007, it simulates the OLTP workload of a brokerage firm and it uses a realistic data model and realistic data from the year 2000 census. It requires fault-tolerant storage so you can't use grade zero for your data storage and then enforces referential integrity. It has a lot less reliance on unrealistic extremely expensive storage subsystem. And this benchmark is CPU-limited if you have adequate I/O performance to drive the workload. So because of this, it's a good benchmark for comparing processor performance. It's especially relevant for OLTP workloads but it's also useful even if it's going to be a non-database workload. So far, there's only results that had been submitted for Microsoft SQL Server, none of the other database fenders have had any results submitted to this benchmark as in time of this recording. The TPC-E benchmark results website, is at this URL. TPC TPC-H Decision Support Benchmark The second application benchmark we're going to discus is the TPC, TPC-H decision support benchmark. This is a decision support database benchmark that's quite a bit different in TPC-E that we just talked about. This is a suit business-oriented, ad hoc queries. It's designed to examine large volumes of data so it's going to read a lot of data of your disk I/O subsystem. Designed to execute complex, longrunning queries so this is going to place stress on your memory. And it has separate result categories for different database sizes. So there are some of the database sizes that are used for this particular benchmark. And the scores for different database sizes should not be compared with each other. And so this is going to place quite a bit different demands on your hardware than TPC-E. TPC-E isn't really a CPU benchmark that a reward single threaded performance on your processor. This particular benchmark is going to reward very good memory performance and good I/O performance. And it's also going to reward systems that have lots of physicals course so this large queries can be run in parallel. The TPC-H benchmark results website as right at this URL and you can go there and compare different systems. And the usefulness of this benchmark and the previous benchmark is that you can look at a perspective system and compare to what you have and compare a different perspective systems, and get an idea how they will run with a sort of a workload and use that to help you figure out which sort of a system to buy and how to configure it. SPEC SPECjbb2005 Java Server Benchmark Next, we'll talk about the SPEC, SPECjbb2005 Java server benchmark. This benchmark is put up by the Standard Performance Evaluation Corporation or SPEC. And this is a Java server benchmark that's going to measure your middle-tier application server performance. The client-tier is replaced by driver threads so this is similar to load testing software that does the same kind of thing. And then the datatier is replaced by binary tree of objects so you don't have a real database that you're dealing with here. So what it's going to really do is exercise the Java Virtual machine and the compiler and place a lot of stress on your processor and memory performance. So this is a good application benchmark to measure your CPU and memory performance. And there's an information page, we can read more about this and look at results for different systems right there at that URL. And really, the point of this three application benchmarks that I've discussed is that, they place different sorts of workload stress on a server. And so, you want to find one that's close to the sort of workload that you're going to be dealing with in your

environment. Now ideally, you can actually be able to run your own application and have your developers write some sort of a load test harness to run your own application in your own environment. But not everybody has the resources to do that, so picking one of the standardized application benchmarks can be useful. Another reason why they're useful is that, they are completely standardized and you can use this to measure how well they run on different server systems that you're considering for purchase. Component Benchmarks So after talking about some of the application benchmarks, let's talk about component benchmarks. Component benchmarks focus on one or more components in the server using that synthetic workload to purposely stress that component. So you have different source of component benchmarks. Some examples are disk benchmarks that focus on I/O performance. And so with the disk benchmark, you're going to be measuring your input/output operations per second or IOPS. You're also going to be measuring your sequential throughput in either megabytes per second or hopefully gigabytes per second. So this is important, for example if you have a database server that really places lot of stress on your I/O subsystem, you'd want to run disk benchmarks on that particular system. Now the next source of component benchmarks is processor benchmarks that measures CPU performance. So those are going to focus on your floating point performance and your integer performance. And again, this would be important if you are running something like an application server or a web server that places a premium on processor performance. Next, you have memory benchmarks that measure memory performance and this is going to measure things like your read and write sequential performance on your memory and your memory stream performance. And this again, this is going to be important for database servers and caching servers and in some cases, application servers. So again, depending on what sort of workload you're dealing with, you would pick a particular sort of component benchmark that stresses a part of the system that you use the most heavily by your workload. Disk Benchmarks Next, we'll be talking about disk benchmarks. We'll be discussing four particular benchmarks in this case. First would be CrystalDiskMark and we'll talk about HD Tune Pro and we'll talk about the older Atto Disk Benchmark and finally, we'll be talking about SQLIO which despite the name has really nothing to do with SQL server. CrystalDiskMark 3.0.1c The first disk benchmark I'm going to about is CrystalDiskMark 3.0.1c which is the most current version as the time of this recording. That this particular benchmark is very easy to use and there's no complicated configuration required. You can choose the file size that you want to use for the test runs. You have several different choices here. And you can also choose the file type that's going to use for the test runs. It's going to either be random data or non-random data. And the reason why that's important is that some SSD controllers use compression to increase your performance. So if you use random data with one of those controllers, that data is not going to be very compressible and they're not going to do very well on that particular test so you need to think about whether the kind of data that your server is

going to deal with is random or not and decide which way to do it for this test. You can also choose the number of test runs anywhere between one to nine test runs that is going to go through as it runs this test. So once you start running the test, it's going to pretty quickly measure your sequential read and write performance in your random I/O read and write performance. So it's going to measure sequential reads and writes in megabytes per second. And then it's going to go through ad measure large and small random reads and writes, a different queue depth. And the reason why that is important is that servers typically have a higher queue depths than desktop systems. And that's going to be measured in megabytes per second and also input operations per second. And this utility is a free download that you can get from this URL. So after you run this, it will take probably five minutes to run. This is an example what the output looks like. So looking here, you can see that we had 474 megabytes per second for reads and 420 megabytes per second for writes. And then going down you can see four random reads and writes and then smaller random reads and writes and then 4K reads and writes at a queue depth of 32. And the bottom part of this shows where you can type in what sort of disk or disk array that you're testing. So that's what the output for this particular benchmark looks like. Demo: CrystalDiskMark 3.0.1c In this demo, I want to show how to use CrystalDiskMark. I've already downloaded the executable and started it up right here on my desktop. And I also went in ahead and typed in the information about the disk and when a test. You can use this utility to test logical disk or single disk like I have in my desktop right here. And what you can see is right here is where you choose how many test runs to do. So I'm going to just do one test runs that will run quicker for this demo. Right here is where you choose how big of a file size you use for the test. And the default is 1000 megabytes. So I'm going to go ahead and leave it on that for this test. And right here is where you would pick any of the available disks that Windows can see as a logical disk. So in my case, I just have a C drive here. It happens to be a 256 gigabyte OCZ Vertex 4 SSD that's plugged into a SATA 3 port. And when I press this button right here, the task is going to go ahead and kick off and what it has to do is write out a 1000 megabyte file and then start reading and writing from it. And it's going to run the sequential read test first. So on a few seconds, we're going to see the results pop up right here, for how long, or what kind of sequential throughput it gets. So you can see on that first test run, it came back with 457 megabytes per second which is not too bad. If you have a SATA 2 interface, you're going to be limited to about 300 megabytes per second. So we get 457 on reads and then 420 megabytes per second on write on a 1000 megabyte file. So next, it goes into the random read test of a 512 kilobyte file. So it came back there with 306 megabytes per second on the reads and then now the write test is running and that should finish up in a few seconds right here. So we got a little bit better write performance there with 392 megabytes per second on the random writes of a 512 kilobyte file. So now let's move on to the random reads of a four kilobyte file. And this is quite a bit lower. It's 31 megabytes per second, but if you hover over this, it gives you a little tool tip that tells you your IOPS. So in this case, it's 7600 IOPS for the reads and we get quite a bit better on the writes, 18437 IOPS on the writes for 4K random read and write and that's on a queue depth of one. So now what it's doing and moving on to a queue depth of thirty two for the same file size for random reads and writes. So we went ahead and finish there and it's 295 megabytes per second and then you can see the IOPS is about 7200. And then a little bit slower for the writes here. So, just in a few

seconds, you can run this with one test run and get your sequential performance and then your random performance with different file sizes and different queue depths. And you have to type in this information down here. So that's how you use this utility. One last thing I want to show you is, you can come in here, this is where you change your test data. The default is for random data. And if you want, you can change it to be all zeros or all ones. And again, the reason why that's important is that, some SSD controllers use compression when they write data out to the SSD and so that's going to affect how well those controllers will work with this test on whether you have random data or non-random data. HD Tune Pro 5.0 A second disk benchmark program we're going to look at is HD Tune Pro 5.0, this is a disk utility and a benchmark program. You can use as a measure to sequential transfer rate of a drive or an entire drive array that shows up the logical drive. You can measure the access time and the burst rate and a CPU usage during the test and you can run a read or write test again with the logical drive or an individual stand alone drive. So this makes it really useful to evaluate the performance of logical drives so you've got to read 5 array or read 10 arrays for example. This shows up as a logical driving in Windows, you can measure the performance of that using this utility. It's also useful for determining disk information about single stand alone drives so you get the exact model and health status of an individual drive. It's free for 15-day evaluation period. And after that, you need to pay 34.95 to purchase it as of the time of this recording. The HD Tune website is at this URL. And this is what the output looks like when you run this test. At the top, it shows you the model of an individual drive and then the benchmark tab shows you the read sequential performance in megabytes per second on the left hand vertical scale and then the access time in milliseconds on the right hand vertical scale. Demo: HD Tune Pro 5.0 In this demo, I'm going to show you how to use HD Tune Pro. I've all ready started the program here and it's pointing at my OCZ Vertex 4 SSD. And all you have to do to do the sequential read test is click on the Start button. And then what you'll see is, as the test runs on a conventional hard drive, it starts on the outer tracks of the drive and then it goes into the inner tracks of the drives that reads across from left to right. And so, what you'll normally see with a conventional hard drive is the performance is higher on the out tracks and then it goes downhill like this as it gets to the inner tracks. Well, you won't see that with an SSD, you cannot see fairly stable performance. And what this is showing right now is that it's reading at anywhere from 211 to 277 megabytes per second for sequential reads. And this will go ahead and continue to run across here for the next few minutes. So while that's running, we can click on somebody's other tabs and see what else it's shown in this program. On the Info tab, you can see a lot of information about the serial number, the drive and the firmware version and the capacity of the drive. And, you know, the fact that it's got SATA 3 support for example. The rotation speed is zero since it's an SSD. And you can also see how large your drive is and how much space it has in the file system that's on it. If you're going to Health tab, you can see a lot of information about how many times you've had power cycles on and off for the drive. The disk monitor shows you some other information about what's going on with the drive during normal operation. So going back to the benchmark, you can see it's about half way done. And again, with an SSD, this is going to be pretty steady across the entire span of the

drive so it's just not rotating like a conventional magnetic hard drive. And when this test was done, it's going to give us an average rate and also access time in milliseconds and then the burst rate in megabytes per second and a CPU usage during the test. Some drives in the past especially would drive up CPU usage quite a bit while they were being tested so we want this to come at a fairly low rate. And while waiting for this test to finish up, there's other test you can run if you want. You can go to the random access folder and the run a series of random I/O test using different transfer sizes and that's really useful to look at for SSDs. And there's a whole suite of extra test that you can run to. So this is a pretty comprehensive benchmark utility, and it's almost done here. So as this continues to run, you can see the performance is fairly steady with an SSD which is what we expect. And with the conventional hard drive, this should be going downhills, it went to the inner tracks of the drive. And also, what you'll notice here is that the sequential transfer rate is pretty high compared to conventional hard drive, it would probably-- conventional hard drive would be picking out and maybe 150 megabytes per second during this test. So the test is nearly done here. And one interesting thing about this particular utility is a lot of hardware review sites like they use it when they review new hard drives and new SSDs so you can compare your performance to what they're getting for other drives that you're considering purchasing. All right, so that finished and that shows again the performance for sequential reads, it was pretty steady across the entire span of the SSD. And then down here, these little yellow dots, these are access time in milliseconds. And that's one of the fortes of an SSD that their access time is extremely low and that's because there's no moving parts like there are in a conventional hard drive. So you don't have to worry about seek time. So that's one of the main advantages of SSDs. ATTO Disk Benchmark v2.48 Now, we're going to talk about another disk benchmark which is ATTO disk benchmark version 2.48. This program is a little bit older but it's still very popular with hardware enthusiast sites. It only measures sequential I/O performance. It is very quick and easy to run. You really not to do very much configuration at all. And it can measure logical disk performance, so if you have a RAID array or an individual disk, you can measure the sequential performance of that disk. It's a free download from this URL. And this is what your output looks like when you run this program. You can type in the description of the disk that you're testing and then you can choose to transfer size and the total length and a queue depth and you click on the Start button and it takes three or four minutes to run with different transfer sizes and you can see the results down there on the right for writes and reads. Demo: ATTO Disk Benchmark v2.48 In this demo, I'm going to show you how to use the ATTO disk benchmark. This benchmark, it's a stand alone executable, it doesn't require any installation. So I've gone ahead and started it up and you can see the user interface right here. Right here is where you want to type in the description of the single disk or the disk array that you're testing. Appears where you choose the logical drive which you're going to test, on my case, it's a C drive. In here you can choose the transfer size range that you want to test and this is in kilobytes so it starts at a very small size and goes all the way up to eight megabytes in this case. And then you can choose a queue depth. By default, it starts at 4. Higher queue depths are more relevant for servers, so if you wanted to, you could change this to a queue depth of 10, that's the

highest you can choose. So after you've made your selections here, you go ahead and click the Start button and then the test will start running. Started with the smallest transfer size and going up. And what you'll notice is, on the very smallest transfer sizes, at least from my SSD, you have relatively poor sequential performance 'cause that's all those test is doing, it's testing read sequential performance and write sequential performance. The writes are done first at each size and they're going to be in red and then the reads are in green. And what'll happen with this test is as the transfer size gets larger, the sequential performance will increase for both writes and reads. Now this test has been around for a number of years and it's quite popular with the hardware enthusiast websites that like a test, every new disk that comes out in every new SSD, they generally run several different benchmark test, most of which we've talked about in this module. And so, what's nice about that is you can compare the test that you have for a particular disk to other disk that are out there in the market place so you might not have access to it yet that you might be considering. And what's probably more relevant for servers is if you're testing a disk array of multiple disk, you can say a RAID 5 or a RAID 10 array, you can see your overall sequential read and write performance. And that's important especially for file servers and it's also very, very important for database servers when they're doing things like database backups and database restores and index rebuilds, you really have to pay attention to your sequential performance. And you can see with this particular 256 gigabyte OCZ Vertex SSD that's plugged into a SATA 3 port, they were getting quite good sequential performance as the test continues and the transfer sizes get larger. So this is a valuable test again, for testing only sequential performance. And it's almost done here. And what's nice about this is you can see it both in graphical form here and then here's the actual results that it's getting for each transfer sites. And one thing you'll notice is if you do test SSGs, they tend to do better at higher queue depths and that's one of the advantages they have which makes them well suited for some server usage. So we just have one more test to go and, you know, you can just see looking at the results here that we were picking over 500 megabytes per second on some of these tests which is quite good. SQLIO Disk Benchmark Next, we'll talk about the SQLIO disk benchmark. Despite the name, this benchmark has nothing to do with SQL server. It was actually a free tool that Microsoft developed and released, let you evaluate I/O performance on any disk that you want. It does not requires a SQL server and it does not use a SQL sever workload during the test. You can use it on any server running a recent version of Windows and you can use it against any logical disk that's been presented to Windows. It's command-line utility and it actually does require a little of expertise that properly configuring run. There's a lot of different command lines switches to choose from. It can also take quite a long time to run a comprehensive set of test. It does allow you to test the absolute limits of your I/Os subsystem, it measures I/Os per second and also sequential throughput in megabytes per second and then latency in milliseconds. It is a free download and you can get it from this URL. Processor Benchmarks Next, we'll talk about processor benchmarks. There's three benchmarks in particular we're discussing in this module. The first one is Geekbench 2.3.4, this is a very popular cross platform

benchmark that's extremely easy to use. The next one is the SPECCPU 2006 benchmark, that's also a popular benchmark that is somewhat expensive to buy and use yourself but luckily, there's a lot of online results that you can look at to compare a particular processors. And the finally, we'll look at the Maxon Cinebench 11.5 benchmark that actually measures video card performance and CPU performance. And you can choose just to measure the CPU performance when you run this test. The nice thing about this test is also free. Geekbench 2.3.4 Benchmark The Geekbench 2.3.4 benchmark, this is a cross-platform processor and memory benchmark. It runs on Windows, it runs on Mac OS and also runs on a Linux. It requires and allows no configuration or whatsoever and it runs in two to three minutes based on the speed of your system. It's going to measure the processor and memory performance with 39 different tests. It gives you an overall Geekbench score for the system. It also has subsection scores for each one of those 39 test. There's an online database of submitted results and that's very useful for comparing systems you don't have access to because anybody who runs this test can easily submit their results so there's a lot of results in that database. The URL for that is shown right there. Now, the 32-bit evaluation version is free. And if you want to run the 64-bit version for Windows, it cost 12.99 as of the time of this recording. The 64-bit version has higher floating point scores on some processors so you want to make sure that you compare 32-bit results, a 32-bit results and on the same way for 64-bits results. The main web page for Geekbench is shown at this URL. Now this is what results look like after you run the test. You can see that I run a 32-bit version of this test on my system and I got a score of 13645 as my overall Geekbench score. And then at the top, you can see the integer, floating point, memory and stream results. And then if you were to scroll down further, in this, you would see individual results for each one of those 39 test. Do you know the nice thing about this is it shows you some detailed system information about the system that was being tested. So that's what the Geekbench test results look like. Demo: Geekbench 2.3.4 Benchmark In this demo, I'm going to show you how to run Geekbench. What I've got going on here is I have the CPU-Z utility up as we can watch it while we're running Geekbench. And I also have Window's task manager running. And this is a user interface for Geekbench. It shows me the operating system that have and my processor. And then, if this was a real server instead of a workstation that I built from parts, it would show me in the manufacture and the model number of the server. And this shows that I've got 32 gigs of RAM. And I can choose a 32-bit benchmark or if I paid for a license like I have, I can run the 64-bit benchmark and that's all there is to it, there's no configuration that you can do. You just click on Run Benchmarks. And then what you'll notice is it goes through and starts running the test and you can see my CPU is getting quite busy. This is a quad-core processor with hyper threading so I have 8 logical processors during task manager. And you can see the clock speed on my processor is jumping up as they're running this load on this processor. That's because of Intel turbo boost. So this is going through pretty quickly 'cause it's 64-bit test that runs quicker on Ivy Bridge processors. So, in a few more seconds, this will be done and it will actually come up with the web page that shows the Geekbench score. So I'll move this out of the way and you can see that my overall score was 18844. And you can see

the processor floating point performance is quite high on this 63-bit version of the test. And if you scroll down through this results, you can see more details about your system. So it shows me all the details about the processor and the cache size and the memory size and the northbridge and the BIOS version and then it gets (inaudible) to all those 39 different tests here. So you can scroll through this and see what's happening there and you can click on the Upload button and upload that to the Geekbench browser website so that other people can see these results. And there's no information about you there, just the information about your system and the score so that more people that do this, the more valuable this tool is. SPEC CPU2006 Processor Benchmark Now, we'll talk about the SPEC CPU 2006 processor benchmark. This benchmark has been released by the Standard Performance Evaluation Corporation or SPEC. And it's a standardized processor and memory benchmarks so it's similar to Geekbench. It's designed to stress your CPU and memory subsystem and it provides a comparative measure of compute-intensive performance. It's going to be measuring integer and floating point performance, very similar to Geekbench. This is a little different from Geekbench though because you can't just run this program or buy it and run it, you actually have to buy the source code for 800 dollars from SPEC, that's going to be C++ source code that you have to compile and run yourself. So it's most often used by hardware vendors such as Dell and HP for example. Dell go through and run test on different model servers with different processors in them and then publish the results. It's very useful for comparing different processors so you're trying to decide whether to buy this processor or another one from a different vendor or, you know, a higher end processor versus the lower end processor in the same line so this can help you decide whether it's worth it to spend more money on a higher end processor. Now the main information page for SPEC CPU 2006 is at this URL. And what's the most useful part of this though if you don't want to spend the 800 dollars to buy the source code is that, there's an online database where you can look through submitted results, and the URL for that is right there. Maxon Cinebench 11.5 Now, we'll talk about the last CPU benchmark for this module, this is the Maxon Cinebench 11.5 benchmark. This is a cross-platform test suite that's based on some actual software called Cinema 4D. It's an actual application workload rather than just a synthetic benchmark so they advertise it as being more realistic. It's designed to evaluate your processor and graphics card performance. So it can be useful if you're dealing with engineering workstations or graphics rendering servers. And it's also a benchmark that's used by a lot of different hardware review site so you can compare your results to what they have on their site for hardware that you don't have access to personally. And if you want to, you can choose only to run the CPU portion of the test rather than, than the CPU and the graphics part of the test. Because most servers, unless they're graphics rendering servers, are not going to have a very powerful graphics card. So their graphic score is not going to be very good when you run this test. Now, the main information page for Cinebench is at this URL. And this is a free download at that URL. So here's what the results look like after you run the test. And there's no configuration acquired for this test, you just click on the Run button for OpenGL for the graphics portion and you click on the Run

button for this CPU portion. And what's kind of interesting about this is it shows you some information about your system on the left including the graphics card. And then down at the bottom, it compares your performance to some other common processors that have run this test. Demo: Maxon Cinebench 11.5 Benchmark In this demo, I'm going to show you how to run Cinebench. I've already got the program running here and you can see that it has some details about my system. And then right here, there are two Run buttons. First of all, we'll run the CPU test, this only measures your CPU performance. So you click on the Run button and it starts rendering a graphic scene here on the screen. And how fast this is going to run depends on how fast your processors is. And this will go ahead and continue to render squares a going around and around until it finishes the test, and then when it's done, it's going to give us a score somewhere in this range. So this is only measuring your processor performance. And this will be done in probably about another 30 seconds or so, maybe less. And you can see from my system that I've got an Intel core I73770K processor that's a quad-core with hyper threading so it has 8 threads and that's a speed that it's rated at and it's running 64-bit version of Cinebench here. Some of my score came in at 8.95 and that compares pretty favorably to some of these other systems that have 8 cores and 16 threads since this is a brand new Ivy Bridge processor. And you can hover over this and get more details about the score. Next, we'll run the OpenGL test and this is going to be more relevant for gaming systems and engineering workstations that do a lot of graphics work and also for graphics rendering severs that might have a very powerful video card that they use to render graphics. So what this does is actually runs a rendered car chase scene of a red car running away from a police car and this is measuring graphics car performance and frames per second. And there is some relationship to CPU performance here. These are primarily stressing your graphics card so this might not be relevant for most servers such as a database server or a web server. Any ways, this is almost done here and you can choose not to run this, you just run the CPU test if you have a normal non-graphics type server. So this came in at about 70 fames per second which is not super high performance. I have sort of a midrange graphics card in my workstation. Memory Benchmarks Now we'll talk about a couple of memory benchmarks. The first one is Geekbench 2.3.4, there's processor benchmarks part of that and there's a memory benchmark part of that overall test. So we'll talk more in detail about the memory benchmark portion of it. Then you also have SiSoft Sandra 2012 which we'll be talking about a little bit. Geekbench Memory Benchmarks Now we'll talk about the Geekbench memory benchmarks. This is a subset of the overall Geekbench test. There's 13 different memory and stream-related test in this benchmark. They're going to measure read and write memory performance and also they'll be stream tests that measuring memory bandwidth. This is very useful for evaluating your memory performance. It can be used to evaluate your performance after a configuration change. So for example, maybe you go into your BIOS and change one of the memory-related settings. After you do that, you can use Geekbench to see whether that

improved your performance or not. You can also do something like, if you add more memory or different types of memory to your server, run a Geekbench before and after and see whether that had a positive or a negative effect on your memory performance. Another thing we keep in mind is when you're adding memory to a server, it makes a lot of difference in some cases what slot you put the memory in, and what's going to happen in the performance as far as speed and bandwidth. So this test is very good for validating whether or not that was a good thing or a bad thing for your particular server. So if you want to know more details about how to interpret Geekbench scores, you can go to this URL. And the last part of that is an R a 0 an X and a capital O. And then if you want descriptions of each individual Geekbench test and what's its doing and what it's testing, this URL will explain that. So here's what the memory scores look like for Geekbench. The top portion shows the memory scores and there's several different test there and in the bottom portion as your stream performance which is measuring memory bandwidth in gigabytes per second. SiSoft Sandra 2012 Next, we'll talk about SiSoft Sandra 2012. This is a comprehensive suite of benchmarks and utilities that measure as far more than just memory performance. It has many different benchmark test for all of your different server components. And part of this is your memory bandwidth and latency test. One useful thing about this benchmark is a lot of hardware review test sites use it so you can compare your results to other systems that you don't have access to. Now unfortunately, this is not a free program. And the most useful version if you're going to be doing serious testing of lots of different server hardware is the Test Support version cause it works on the Windows domain and it's licensed per user not per machine so you can buy one license for yourself and then use it on as many machines as you want to. And it costs 299 dollars and 99 cents as the time of this recording. Now the main site for SiSoft Sandra is at this URL. Understanding Hardware Tradeoffs Understanding hardware tradeoffs. You may have a limited hardware budget. And if that's the case, how do you allocate your hardware budget to get the best performance? You've got four main categorizing opponents that we're concerned with. First are your processors. Next is your memory. Then you have your I/O subsystem and then you have any money you want to spend on redundant components. So depending on the kind of workload you have and the current bottlenecks on your old server, this will help you decide how to allocate that money. Even with an unlimited hardware budget, there are still going to be some tradeoffs. So for example, larger servers in terms of socket counts are usually not faster servers, this is particularly true with Intel processors. Higher socket counts usually means that you have slower processors installed in each socket of the server. And if you have more memory installed, that usually means your memory bandwidth is also reduced somewhat. Larger servers have more absolute load capacity so they have more total processor cores and may also have more total memory capacity. And finally, they have more PCI-E expansion slots so you have more ultimate I/O capacity. Summary

Now it's time to summarize this module. It's extremely important that you understand how to evaluate server hardware. It's going to help you understand your current capacity and scalability and also your performance. It'll also help you evaluate whether or not component upgrades makes a sense and whether it's time to buy a new server or not. Rather than guessing when you do this, you should be running application benchmarks and looking at application benchmarks that are available online. An application benchmark is an actual application test than test the entire server with a certain sort of workload. You also have component benchmarks. They're going to focusing on one particular set of components such as a processor or I/O or memory. And as you're doing this, you need to understand some of the tradeoffs should we face with. You'll have budget based tradeoffs that might constrain your available choices. And you're also going to have other tradeoffs depending on what component choices you make. So for example, if you add more memory, the memory might have less bandwidth and have a slower speed. Or if you decide to only have one processor and a two socket server, that's going to have an effect on your maximum memory and also your maximum I/O capacity. So these are things you need to think about as you're going through and evaluating hardware. What is Next? So what's in the next module? Module 4 cover hardware selection. We'll be talking about how to choose server vendor and then how to choose a server form factor, and how to choose a processor vendor. Then we'll get into how to choose a server model, and then how to pick a particular processor for that server model. And we'll talk about how to figure out how much RAM you should put in your server and we'll talk about choosing between the different available storage types. And we'll get into understanding different RAID levels and how to calculate your RAID storage overhead. And we'll discus how to choose your components for redundancy and then how to minimize your hardware and licensing costs. Hardware Selection Introduction Hi, this is Glenn Berry from SQLskills,com. I'm recording this course for Pluralsight. It's about Understanding Server Hardware. This is Module4: Hardware Selection. So what we're going to talk about in this module? Well, first, we'll talk about choosing the server vendor. We'll talk about how to choose between the major first tier server vendors then we'll get into how to choose a server form factor whether it's going to be a rack-mount server, a tower server, or a blade server. Then we'll talk about how to choose a processor vendor whether it's going to be AMD or Intel. Then we'll going to do how to choose a particular server model from a preferred server vendor that has to do with the motherboard and the processors, the available memory and available storage. And we'll talk about how to determine the amount of RAM put it in your new server. And then we'll get into talking about how to choose a storage type for this server, whether it's going to be internal drives or PCI-E storage cards, or directattached storage, or maybe a SAN. And we'll also get into RAID levels and understanding the difference between them and RAID storage overhead. And finally, we'll talk about how to choose components for redundancy because you want avoid single points of failure were possible.

Choosing a Server Vendor Choosing a Server Vendor. There are several "top-tier" server vendors to choose from. This includes Dell, Fujitsu, HP, IBM, NEC, and Unisys. It's likely at your organization already has a preferred server vendor that they normally work with. So that means you're likely to be a Dell shop or an IBM shop for example. If that's the case, you can usually get anywhere from a 15 to 25 percent discount from your preferred vendor. And it's also going to be easier to maintain the servers from that particular vendor. It's also going to be pretty difficult to talk your organization to buying a server from another vendor besides their normal preferred server vendor. Despite that, different vendors have different strengths and weaknesses. Some vendors such as Dell for example are typically less expensive than the other ones. And then some vendors such as IBM for example sometimes have proprietary technology that builds on the references design they might get from AMD or Intel for a motherboard for example. And sometimes that technology can be valuable but it's typically more expensive. So what I recommend that you do is try to stay current about what the different vendors offer for the kinds of servers that you normally buy. Because a competitor might have something that's very interesting or actually compelling in a new model that would make it worth your while to fight to try to buy that particular model of server that has that feature. And even if you're not planning on doing that, you can still get competitive bids from other vendors when you're going to buy several servers and you'll often get much better pricing that way by paying the vendors against each other. Choosing a Server Form Factor Choosing the Server Form Factor. There are three main choices for Server Form Factors. These include rack-mounted servers, tower servers, or blade servers. Rack-mounted servers are the most common form factor 'cause most data centers have standardized racks that rack-mounted servers go in to. So, your choice maybe determined by your existing infrastructure. If your data center or server room uses racks, you're likely to use rack-mounted servers or perhaps blade servers that fit in standard racks. Tower servers are typically a little bit less expensive than rack-mounted servers. And they're seen as entry level servers, you know, they don't have the racks and they have more space inside so they're a little bit easier to work on but, you know, they can't have the same density as a rack-mounted server or blade server. A lot of times, tower servers are under somebody's desk or in a closet that's serving as a make shift server room in a smaller organization. Blade servers are very popular with IT departments because they give you a lot higher server density in the same space compared to tower servers or even rack-mounted servers. A blade server is going to have a shared common infrastructure in the blade chassis. And that blade chassis is actually a single point of failure and also can be a bottleneck in come cases. But for non-mission critical applications especially IT departments really do with like blade servers 'cause they can fit more computing capacity and less rack space compared to rack-mounted servers. Common Server Form Factors Now, we'll get a little bit more detail about common Server Form Factors. First, you have rack mount servers, which is the most common. These are in standardized width and length design to fit for post racks. You can also put them in two post telecom racks but four post racks are more common. A

typical chassis is 444 millimeters wide and 684 millimeters long. There are various standard vertical heights for rack mount servers and these are refereed as rack units. So you'll have 1U, 2U, or 4U as a most common vertical size for the number of rack units that a server takes up. And again, this is describing how tall the server is and how many rack units it will take up in a standard rack. All rackmount servers have some sort of mounting rails so that you can pull him in and out of the rack while the cables are still plugged in and while the server is still running to do certain kinds of maintenance. And then some kinds of maintenance, you have to power down the server to do but they're still in the rack and everything still plugged in. Next, we have tower servers. Tower servers are going to be in a vertical tower very similar to tower that you might have for a desktop machine. And this tower is going to have a lot of space inside for the internal components. Some tower service can be fitted with rails so they can be mounted to sideways in a standard rack but that's not done that often because it's quite a waste to vertical space. And again, tower servers are commonly used for entry level servers where cost is your primary consideration and you don't have a rack infrastructure to worry about. So a lot of times, you might see tower servers sitting on the shelves and racks or just shelves in a server room or closet somewhere. Finally, we have blade servers. And the idea with the blade server is you got have multiple blades that are actually individual servers that are mounted in a shared, rack-mount chassis that can sometimes hold anywhere from 12 to 14 blades in a single chassis. So this gives you a lot more server density, you can put a lot more computing capacity in a smaller space but again, that shared chassis which has things like your network connections and sometimes your I/O connections and your power can be a bottleneck in a single point of failure. So, for example, I would want to use a blade server from mission critical database server, it would be much better use for say, a web farm of web servers or application servers in my opinion. Choosing a Processor Vendor Next, you have to choose a processor vendor. For mainstream Windows-based servers, your choice is restricted to either Intel or AMD. And the reason why you have to do this now is that your processor vendor choice determines the available server model choices from that vendor. If you decide to pick in an Intel server or an AMD server, only certain model servers from the rack-mount line, or the tower line, or the blade line are going to support that processor. Processor vendor choice can have a major effect on several factors for your server furnishes a performances' scalability of the server. Next is the hardware cost and the electrical power usage of the server which can be a major factor over time. And then finally, the software licensing costs are affected by your processor vendor choice. Different vendors have different numbers of cores and that's very important in for certain software applications, you actually have to count the number of cores for licensing purposes. Now, Intel processors have certain advantages that you should take into count. First, it's typically has better single-threaded performance than AMD processors do. They also usually have lower power usage than AMD processors do. On the AMD side, they have some advantages. They often have a higher physical core counts than Intel processors do, and they also have a lower processor hardware cost. So if cost is your primary consideration and AMD processor will be less expensive than in Intel processor. Choosing a Server Model

Next, we actually get to choosing a server model. Again, you have to choose your processor vendor before you can choose a server model because that's going to restrict your available choice of server models. Your processor socket count choice must be made next. So, this is going to also restrict your available choice of server models. Do you want a one-socket server, a two-socket server, a four-socket server, or do you need something larger that's going to restrict your available choices for server models. One thing to keep in mind is you're making this choice is that bigger servers and by bigger, I mean servers with more sockets are not faster than smaller servers. Higher socket count servers will have slower Intel processors than lower socket count servers do. And, even if that's not the case, even if you decided to choose an AMD processor, there are scaling losses as you go from two-sockets to foursockets aside from four-sockets to eight-sockets. An eight-socket server is not going to be twice as fast or have twice the capacity as a four-socket server with the exact the same processor, even with NUMA, you don't get linear scaling. The next thing you need to think about here when you're choosing a server model is what are your total memory in I/O performance requirements? Higher socket count servers will have more memory slots but two-socket servers have up to 24 memory slots now, so you can get a lot of memory in a two-socket server. Higher socket count servers will have more PCI-E expansion slots but again two-socket servers will have anywhere from a six to eight PCI-E expansion slots which is a lot more than they had a few years ago. Finally, you've got to decide, what vertical form factor do you want? Do you want a 1U server, a 2U server, a 4U server or something even larger? And by larger, I mean taller 'cause that's going to affect how much room you have for internal components. Taller servers are going to have more room for internal drive bays and sometimes they have more room for PCI-E expansion slots and of course they take more room up in your rack. So it's sort of trade off there, you got to think about this before you choose your particular server model. Choosing a Processor Model Next, you have to choose a processor model for the server model that you've selected previously. First thing you need to think about when you do this is what type of workload will you have on the server? Is it going to be a CPU intensive workload? Is it going to be a single-threaded workload or a multi-threaded workload? And as you're thinking about that, you either consider the number of cores in the processor, the clock speed and then the cache sizes. You also need to think about the architecture of the processor and with generation of processor it is when you're making this choice. Next thing you need think about, what kind of licensing model does your application have? It could be that it's based on the socket count of the server, or it could be based on the physical core count. And so, that's going to really have an affect on your overall software licensing cost. Core-based licensing which is becoming more and more common and this is usually based on the number of physical cores in a processor can be very expensive when you have high core counts. So for example, if you have a 16 core AMD processor and you're paying for core-based licensing, that can be very expensive. Next, you need to consider, what kind of a hardware budget do you have for the server? Again, high core count, high clock speed processors are pretty expensive. And if you decide to get the absolute top of the line processors and you have a fixed amount of money to spend on a server, that might force you make compromises on other parts of the server such as the amount of memory, or the I/O capacity that you put in that server. Sometimes, though over-provisioning your processor can save your money overall. And by over-

provisioning, even if you think you don't have a particular CPU intensive workload, you still get one of the top of the line processors because you know that you can do things without processor that might save you money on I/O capacity for example. And by things, I mean, things such as compression which is very popular with a lot of different software applications. Now, as you're making this processor model choice, you want to choice very carefully because it's very unlikely you're ever going to upgrade the processors in an existing server because if you do that, the server vendors are going to charge a very expensive prices for that processor upgrade kit. They're going to charge you above the retail price. And usually, it doesn't make economic sense to upgrade the processors in an existing server. Usually it's less expensive to actually buy a brand new server instead of upgrading your existing processors. So, choose carefully 'cause you're going to be stuck with that processor probably for the life of the server. Determining the Amount of RAM The next step is to determine the amount of RAM or memory to put in the server. There are several different limits you have to consider when you make this decision. First, you have the physical limits of the server. That's going to be determined by the server model and the processor memory controller and also by the number of the memory slots in the server. Next, you need to consider the license limits of the operating system version and edition that you're going to install. So for example, Windows Server 2008 are two standard edition has a license limit of 32 gigabytes of RAM which is relatively low for modern servers. The next thing to consider is the license limits of the application version and edition you're going to install. So an example of that might be SQL Server 2012 Standard Edition and that has a limit of 64 gigabytes for RAM. And again, that's a license limit. As you're thinking about this, keep in mind that physical RAM is extremely affordable. Right now, in late 2012, the price range for DDR3 errorcorrecting code RAM is anywhere from 10 to 15 dollars per gigabyte. And that's been following over time for quite sometime. RAM is much faster and much less expensive than I/O capacity. So, I typically-like to have lots of RAM and servers. Now populating all of your memory slots in a server can sometimes reduce the memory bandwidth and memory speed. And this is going to depend on the processor and memory controller. So you need to look at the documentation for your server and decide to how you want to handle that. But quite often, even slower memory, that's running at a reduced bandwidth is still going to be much, much faster than I/O capacity. Next, when you're making this decision, you want to try to favor larger capacity DIMMs. And so right now, again, in late 2012, 8 gigabyte and 16 gigabyte DIMMs are good choices. They have a lot of capacity and they're quite inexpensive. If you jump up to a 32 gigabyte DIMM right now, it's much, much more expensive and it really doesn't make economic sense in most cases. Now, having some empty memory slots lets you easily add more RAM later without having to take out existing memory. You know, pretty much in the IT department I've ever walked into has a drawer somewhere full of smaller capacity memory that they've taken out of servers over the years, and this really just end up being expensive paper weights. So you want to try to avoid that and get the larger capacity DIMMs and have some empty slots, you can fill up if you need to later. Choosing the Storage Type All right, the next step is choosing the storage type for your new server. This is going to depend on a server usage in a workload type, your performance requirements, and your available budget. And also,

it's going to depend on your existing infrastructure, your employee skillset, and politics to be quite honest. You know, a lot of shops might have a bias towards the direct-attached storage or towards Storage Area Networks or SANs. And that's going to be really affect what you end up using for your storage for a new server that you decide to buy. So you may take that into consideration. There are really four main storage types we're going to talk about here. The first one is internal drives, that are inside of the server itself and I have been talking about internal drive bays and servers and so that's where this internal drives fit. And this can be traditional magnetic drives, they're typically going to be 10,000 RPM OR 15,000 RPM SAS drives or they can be solid state drives. Solid state drives are coming down in cost and they're becoming more popular for server usage. The next type is PCI-E storage cards such as fusion I/O card is probably the most famous example of that. These are quite expensive but they give very good performance and they are becoming more common for server usage. The next type is Direct-Attached Storage or DAS. And this can be again traditional magnetic drives or SSDs or some combination of both of those types of drives. And then finally, you have Storage Area Networks or SANs. And this can be filled with traditional magnetic drives or SSDs or combination of the two. You can have hybrid storage in a SAN. So, all three of these storage types, internal drives, Direct-Attached Storage and SANs can use hybrid storage or sometimes, it's called tiered-storage, and that's a mixture of magnetic storage and SSD storage. And hybrid or tiered-storage sometimes especially in SANs has some intelligence behind it so that the data that used the most often or that the data that has the highest performance requirements will be automatically moved to the SSD storage. Hybrid storage or tieredstorage is a good compromise between the available space you have and the available performance you're going to get out of it, and a cost. Now, the storage details that you choose make a huge difference for I/O performance. And by details, I mean things like choosing 10K drives versus 15K drives, and whether or not you're using 3 gigabit per second, SAS or 6 gigabit per second SAS. These details actually have a huge effect on performance. Another thing to think about is the bandwidth of your RAID controller, your HBA or your iSCSI NIC that has a very large effect on your potential performance for I/O. Internal Drives Now I'm going to some more detail about internal drives. Internal drives can be adequate for some workload types. Good examples of that would be a web server, or an application serve, or caching server. Those sorts of servers typically don't have a lot of I/O workload or requirements so they can get by on a small number of internal drives. In some cases, only a single drive but usually it's more common to have two drives at least that are in a RAID 1 configuration. Another example you might be able to get away with internal drives only is a light-duty database server that doesn't have a lot of workload or a lot of I/O workload. Another example is that some newer server models have a very high number of internal drive bays. For example, Dell has a model that has 26 internal drive bays, so that gives you a lot of spindles and that opens up the possibilities for running in workload on your internal drives only. One thing that has an effect on this is the server vertical size. So, a one new server is not going to have a lot of room for internal drive bays where a 2U or 4U server will have a lot more room and you might have a lot more internal drive bays in that sort of a server. Next, you need to think about, are you going to use 2 and a half inch drives or 3 and a half inch drives? And you've got to make this choice when you pick the server model because quite often, server models come in 2 and a half inch drive chassis or 3 and a half

inch drive chassis. And that obviously has an affect on the drive density. So, a one new server might have anywhere from 8 to 10, two and a half inch drive bays. And if you decided to go with three and a half inch drive bays, it might be roughly half that number. A 2U server might have anywhere from 16 to 26-2 and a half inch drive bays. And, a 4U server is going to have probably about the same amount in most cases because usually about a time we go to a 4Userver, that's-- in most case, it's going to be a four-socket or above server. And usually those sorts of servers are going to have the kind of workload, that's really not going work very well with just internal drives only so they're going to be using something like directed-attached storage or a SAN, so they don't have higher and higher numbers of internal drive bays like you might expect. Now, regardless of what you do here, you want to use a hardware RAID controller with a dedicated cache memory for your internal drives. That's going to give you better performance in software RAID and it's also going to let you take advantage of that cache memory to further improve the performance. And when you used internal drives, you want to prefer 15K drives over 10K drives. They give you better sequential performance and higher IOPS. So, you want to use those even though they cost more unless it's an application that just really doesn't have a lot of I/O requirements. Now, more drives are better than fewer drives for performance. And what I mean by that is let's say that you'd need one terabyte of drive space. Well, you could just have two or three quite large drives and have a terabyte of space but you would be better off from performance point of view if you had a higher number of smaller drives to get that same amount of space because you'll have more sequential throughput and more random I/O performance by having a higher number of drives. You also should consider SSDs where that's appropriate where you had some hardware budget and if you need really much better especially random I/O performance and you're going to get from conventional magnetic drives. PCI-E Storage Cards Next, we'll talk about PCI-E storage cards. These are flash-based storage that's mounted on a PCI-E expansion card that fits in one of your PCI-E expansion slots in your server. It uses a very high bandwidth PCI-E slot instead of a SAS port or SATA port. Right now, SAS and SATA ports are restricted to 6 gigabits per second of bandwidth. And that's really not a lot of bandwidth compared to what you can get out of a PCI-E expansion slot. Now the type and speed of the PCI-E expansion slot can be a limiting factor from your overall bandwidth. And what I mean by that is if you have an older server with the PCI-E 1.0 slot, that could be a bottleneck for some of the higher end PCI-E expansion cards that we're talking about here for storage. Now these storage cards can deliver extremely high I/O performance especially for random I/O but they also can give you very high sequential performance that give you again high sequential throughput and extremely high random I/O performance. Now the capital cost of these cards is anywhere from a high to extremely high. The cost range right now in late 2012 is anywhere from 2,000 dollars for a card all the way to 150,000 dollars for one storage card. Now these storage cards use less electrical power than multiple conventional hard drives and that's one of their selling points. You can take one of these higher end storage cards and potentially replace dozens or even hundreds of conventional hard drives that use a lot more electricity. So that's going to save on your operating and maintenance costs. Now, right now the leading vendors for these types of cards are Fusion-io, OCZ and Intel, but there's other vendors on the horizon and this is a growing market over time.

Direct-Attached Storage (DAS) Now we'll talk about Direct-Attached Storage or DAS. This refers to an external storage enclosure with multiple drives. It's usually going to be somewhere between 8 and 24 drives in a single storage enclosure. These drives can be magnetic hard drives or SSDs or some combination of both types. You're going to have a direct cable connection between a hardware RAID controller, that's one on your PCI expansion slots that goes to the storage enclosure. You can also daisy-chain additional storage enclosures to each other and finally that one of those enclosures is connected to the server. Daisychaining is not a best practice for performance or redundancy but if you really need lots and lots of space for direct-attached storage and you've used up all your PCI expansion slots for RAID controllers, that's really your only alternate to get more storage space. Now direct-attached storage is very easy to configure and manage. It doesn't require any special training or expertise. You don't have to be a SAN administrator or go to some vendor training and learn how to use direct-attached storage. You can get very good sequential read and write performance with direct-attached storage especially if you've got multiple dedicated RAID controllers for each enclosure. Now, ultimately this can be limited by your PCI-E slot bandwidths. And so, it's going to make a difference what model server you have and how old it is for how much PCI-E slot bandwidth you're going to have available on a server. Now, direct-attached storage will have much lower initial capital cost in most SANs. And also your incremental cost to add more capacity is lower because a typical SAN enclosure full of drives is going to be somewhere between 10 to 15,000 dollars to add more incremental capacity and usually with no SANs, if you exhaust the amount of space in drive bays in your SAN, it's going to cost a lot more than that to add more incremental capacity. Now SANs are less flexible and they have less features than a SAN. So you're not going to get things like thin provisioning or SAN snapshots or SAN replication. You just don't get that with direct-attached storage. So that's one of the tradeoffs you make with this storage type. Storage Area Network The next storage choice is a storage area network or SAN. This is going to be an external storage enclosure with multiple components. You're going to have a large number of drives that can usually be expanded maybe by adding another enclosure. You're going to have multiple storage processors with a large dedicated cache and a dedicated operating system for the SAN. You also going to have a storage area network that can have switches and other components, so it's a fairly complicated piece of machinery here. SANs are very flexible and very feature-rich. They give you things like thin-provisioning. They give you SAN snapshots. And they also give you SAN to SAN replication. Snd it's pretty easy to change the RAID level on a SAN and move data from one part of the SAN to another. Of course, it takes a trained SAN administrator to do some of these things so that's something you can keep in mind if you're going to be using a SAN. Usually, you have a much higher initial capital cost than you have with direct-attached storage. Typically, an entry level SAN might be anywhere from 50,000 to 100,000 dollars or just quite a bit more than a few storage and closures with direct-attached storage. And again, you're going to have to have some training and expertise to set up and manage your SAN correctly. Now there are two main types of SANs. The first one is a fiber-channel SAN that uses a host-bus adapter that fits on a PCI-E expansion slot and uses a very thin fiber-channel cables that go out to your SAN network and into the SAN itself. The next type is an iSCSI SAN that uses dedicated Ethernet cards that also usually fit

in a PCI-E expansion slot and uses either gigabit or 10 gigabit or 40 gigabit Ethernet for your SAN traffic. Now SANs are usually optimized for IOs per seconds. So, they give you very good random I/O performance. But your sequential throughput can be limited by your interface and the complete path between your host server and the SAN itself. So for example, a 1 gigabit per second iSCSI SAN is limited to about 100 MB per second of sequential throughput which is really very low. And then a 4 gigabit per second fiber-channel HBA is going to be limited to about 400 MB per second which is also quite low. So you need to think about this and look at the kind of workload that you're going to have before you decide whether you want to use a SAN or not because again, quite often, they have relatively poor sequential throughput compared to some of these other storage types. RAID Basics RAID Basics. RAID stands for redundant array of inexpensive disks. This is a standardized method for managing multiple drives with a RAID controller. This gives you redundancy in higher performance that you can get with a single drive. It allows you to have higher capacity logical drives and is possible with one drive. Hardware RAID controllers are what you want to use for servers and are used to manage multiple drives in a RAID array. A server RAID controller can have dedicated cache memory, usually with a battery backing behind it. The cache in a RAID controller can be used for reads or writes or combined for both. There are several RAID levels that are commonly used for servers. First one is RAID 1. Next, we have RAID 5. Then you have RAID 50. And then finally, you have RAID 10. RAID 1 RAID 1. RAID 1 is called mirroring. It requires two physical drives and your data is copied to both drives. So because of this, it requires a 50 percent storage space overhead. So you have 2-- 300 gigabyte drives in a RAID 1 configuration. You only have 300 gigabytes of space after the RAID 1 has been applied. This drive array can survive the loss of either one of the drives. If one of the drives fails, you're going to have to replace the failed drive and then the RAID controller is going to automatically rebuild the mirror. And you need to do this as soon as possible because if you lose the other drive, obviously you're going to lose your data. Now there's no performance impact after you lose one drive in a RAID 1 array. It's very common to install the operating system in a server on a RAID 1 volume. So that means you have two drives that are managed by your RAID controller and they're in a RAID 1 array. That way if you lose one of the drives, the server won't go down. So again, this is usually done with two internal drives in a server and it allows the server to operate normally after losing either one of those two drives. So it's sort of a standard thing that you do with most servers. RAID 5 The next common RAID level is RAID 5. RAID 5 is called striping with parity. RAID 5 requires at least three physical drives and your data is striped between all of your available drives. After the data is written to the drives, your RAID controller calculates parity information and then that's also striped between all of the drives. This causes a write performance penalty for RAID 5. Having this in place allows the RAID to survive the loss of any one drive in the array. If you lose a drive in the array, your performance can be severely affected because the RAID controller has to read the parity information

from the other drives to reconstruct the missing data from the drive that failed. That failed drive has to be replaced as soon as possible because if you lose another drive in that RAID 5 array, all of the data is lost. RAID 5 requires one over the number of drives as storage overhead for that parity information. So if you have a 4-drive array, you're going to lose one fourth of your space for parity information. RAID 5 is very popular with IT departments. It's quite economical because of the low storage overhead and the risk of failure actually goes up as you add drives to the array. So if you have three drives in array versus, say, eight drives in array, the risk that any one of those drives in the array is going to fail is the same but by having more drives makes the overall risk of failure go up. So it's riskier to have more drives in a RAID 5 array. RAID 50 The next common RAID level is RAID 50. RAID 50 is called striping across multiple RAID 5 data sets. This requires at least six physical drives. You had to have o have a minimum of two, three-drive RAID 5 arrays to build a RAID 50 array. This requires one over the number of drives in each RAID 5 array for your storage overhead. RAID 50 arrays can survive the loss of one drive in each RAID 5 array. This gives you better performance than RAID 5 after the loss of any one drive. And it can be a good compromise between RAID 5 and RAID 10. RAID 50 is less expensive than RAID 10 and it's more expensive than RAID 5 but it provides better redundancy than RAID 5 does. And not all RAID controllers support RAID 50. But if your RAID controller does support it, you might want to consider it instead of RAID 5. RAID 10 Next we have RAID 10. RAID 10 is called a striped set of mirrors. Your data is mirrored and then striped across multiple drives. With this set up, it's possible to survive the loss of more than one drive. RAID 10 requires a minimum of four physical drives. And then number has to be an even number when you're using RAID 10. RAID 10 does not have a write performance penalty like RAID 5 does or RAID 50 does. So it's very well-suited to write intensive workloads. RAID 10 does require a 50 percent storage space overhead, so it's a lot more expensive than RAID 5. Sometimes RAID 10 is called rich man's RAID. RAID 10 is very popular with database administrators because it provides better write performance and better redundancy than RAID 5. On the other hand, RAID 10 is less popular with IT departments and SAN administrators because, again, it's more expensive than RAID 5 or RAID 50. But if you have a very write intensive workload, you should be looking to use RAID 10 if you can. Choosing Components for Redundancy Choosing components for redundancy. Depending on the intended server usage, you might want to invest on some redundant components to make that server more reliable. Database server should have redundant components. On the other hand, web servers or application servers may not need redundant components. It could be that low hardware cost per server is the over-riding goal and so in some cases if you have a web farm of multiple web servers or application servers, your organization might choose not to spend the extra money on each one of those servers to make each individual server more redundant because you have redundant servers behind a load balancer in that web farm. Typically though, on a mission critical server, you want to eliminate all the single points of failure that you can. So you're going

to be looking at things like dual power supplies that are plugged into separate electrical circuits. You're going to look at multiple network ports that are plugged in to separate network switches. And those network switches should have dual power supplies in different circuits. Most new servers, you know, have two or four embedded Gigabit Ethernet network ports. So it's not that hard to have multiple network ports in a server. You also want to have RAID protection for your logical drives. RAID 10 is going to give you more redundancy than RAID 5 but it's going to cost more money and you'll have less storage space so it depends on your workload whether you want to go to RAID 10 or seek with something like RAID 5 for your RAID protection. Finally, you want to make sure that you've got hot-swappable components were possible. And these are things like your hard drives, your internal drives, you might have hot-swappable fans, you'll going to have hot-swappable power supplies. And on some higher end servers, you even have a hot-swappable memory and hot-swappable processors. Although that's a less common thing that you're going to have to worry about and that's only available on higher end servers and higher end editions of Windows that will support that. Summary Now it's time for the summary of this module. We've covered a lot of ground this module talking about how to pick different components for your server. There are lot of choices you have to make. First of all, you got to pick the server vendor then you have to choose the server form-factor whether it's a rack-mount server, or a tower server, or a blade server. After that, you've got to choose the processor vendor whether it's Intel or AMD. After that, you've got to choose one of the available server models from that vendor that uses that brand of processor whether it's Intel or AMD. After that, you have to choose the exact processor model for that particular model server that you want to use. Then you've got to decide how much RAM to put in the server. Next, you got to decide what type of storage that server is going to use whether it's internal drives or PCI-E storage cards or direct-attached storage or storage area network. Servers have multiple redundant components. You have a motherboard and you've got processors and memory. And then you have internal storage such as PCI-E storage cards or internal drives and your power supply is going to be redundant. And then you've got a number of integrated components on the server that may or may not be redundant. So examples of this are things like fans. What is Next? So what's in the next module? Module 5 is going to cover hardware maintenance. We'll be talking about the importance of hardware maintenance. We'll talk about how do you what has to be maintained on a server from a hardware perspective and an operating system perspective. We'll also talk about how do you discover when updates are needed and how do you decide when to actually apply these updates. We'll consider how you go about planning and testing your hardware updates and how you use rolling maintenance techniques to minimize your down time and minimize the risk from these updates. Hardware Maintenance Introduction

This Glenn Berry with SQLskills.com. I'm recording this course for Pluralsight. It's Understanding Server Hardware, Module 5: Hardware Maintenance. This module is going to be talking about the importance of hardware maintenance. System vendors frequently release firmware updates that you need to be concern with. Knowing what has to be maintained is also very important. You have your Main BIOS, your NIC firmware, your RAID controller firmware among other things. You also need to know when are hardware-related update actually needed. Do you need to apply them when they're released? Or do you need to wait when you actually have issues? Also, I'll be talking about planning and testing for hardware updates. And the ideas that in an ideal situation you would have identical hardware to do your testing on and if not, how to do it in a maintenance window. We'll be talking about when operating system updates are needed. These are released on Microsoft Patch Tuesday every month. We'll get into planning and testing operating system updates. And the idea that in a perfect situation you would have regression testing on test servers and how to plan a maintenance window. And finally, I'll be talking about how to use rolling maintenance techniques. And this will let you minimize your (inaudible) and reduce the risk when you apply these sorts of updates on your servers. The Importance of Hardware Maintenance The Importance of Hardware Maintenance. The hardware system vendors such as Dell and HP have frequent main system BIOS updates that they release. Important fixes and enhancements are included in these updates. And staying current can help you avoid problems in the future. On top of that, if you ever actually have to make a hardware support call to your system vendor, they're going to run a utility that collects information about your hardware and driver versions, and they're going to want you to be on a current version of its main system BIOS. So I think it's a good idea to try to stay current if you can. You also would get frequent firmware updates from the hardware system vendors for the components that are in your server. And this is going to vary based on what's in your server. But typically, you might have RAID controllers, Host Bus Adaptors, Network Interface Cards, and other things that have any sort of firmware that actually has to be updated. And again, important fixes and enhancements are included in these updates. They don't go to the trouble to release these updates unless something important actually needs to be fixed. And staying current will help you avoid problems in the future. And again, if you ever have to call them for a support call, they're going to be checking on the versions of your firmware to see if you're up to date or not. The hardware vendors also have frequent driver updates for all the components in a server. Updated drivers will often correct problem that you have run into or may run into in the future. So I think it's a good idea to try to stay current with your drivers also. Knowing What Has to be Maintained Knowing What Has to be Maintained. This is going to depend on the make and model of your server first of all. It's also going to depend on what components are actually installed in the server. So for example, you might have or you will have a main system BIOS in any server and then if you have a RAID controller, you're going to have the firmware for that. And this could be your embedded RAID controller for your internal drives or it could be the great controller that you have for a direct detach storage array, so you have PCI-E card that has its own firmware. You're also likely to have embedded server management firmware that needs to be updated. And then you're going to have a Network Interface

Card firmware that could be for you embedded NICs on the motherboard or for PCI-E expansion card NIC. If you're using a SAN and you're using a Host Bus Adaptor, the firmware for that is going to have to be updated and maintained. And finally, if you're using something like a Fusion-io card, it has firmware that needs to be updated and maintained. Discovering When Hardware-Related Updates are Needed So when are hardware-related updates needed? This is going to depend on the importance of the update. Typically, you see some vendors will give some sort of rating to the update. It might be a critical or urgent update or a recommended update for example. It also depends on what issues are actually fixed with the update. You need to ask yourself, have you experienced any of these issues that are supposed to be corrected in the update? Does it seem likely that you will ever experience them in the future? And how far out of date is your firmware or drivers? If you're several versions behind the current version, that's probably more incentive to apply a new update when it comes out. This decision also depends on your SLAs for your system uptime. It's going to depend on whether or not you have any high-availability solution in place or whether you actually just have a standalone server. If you have a high-availability solution or if you have your servers in a server farm, this might let you install firmware and driver updates with virtually no downtime or at least less downtime than if you had standalone server. If you do have a standalone server, you need to think about how long this actually take to reboot that server versus how much downtime is allowed according to your SLA. So for example, if you're tying to have five 9s availability, that only gives you a little bit over five minutes per year of downtime. And typically, a server might take anywhere from five to ten minutes to reboot so a single reboot would absolutely go through your available downtime for the year if you have standalone server. Planning and Testing Hardware Updates Planning and Testing Hardware Updates. Ideally, you're going to have an identical test server, the exact same model server to install all firmware and driver updates before you actually have to do it in production. If that's not possible, one other alternative to reduce your risk somewhat is to use part of your high-availability solution for testing and production. So for example, if you have a fail of a cluster, you can install updates on one node of a cluster. And if there's any issue, you still have the other nodes of the cluster that you can work on while you're resolving that issue. Another example would be installing on one server in a server farm that's behind the load balancer. So for example you might have 10 web servers in a server farm and you install these updates on one of those servers. And if there's an issue with any those updates you still have still the other nine servers available. In my experience, firmware and driver updates don't cause problems that often but there's always a risk that they will. And in reality, many organizations do not have any kind of a good test environment especially a test environment with identical hardware to what they have in production. This is a dangerous situation, for many reasons. Firmware updates are normally very reliable, but there's always some risk of any update to a server. And so if you don't have a good test environment and you don't have identical hardware one thing you can do to reduce your risk is to try a schedule maintenance window on a Friday night. That way if there's any kind of issue you have all weekend to recover from the problem. It might not be a very

pleasant weekend for you but you do have some time before Monday comes around to get the problem resolved with the hardware vendor. Discovering When Operating System Updates are Needed When our Operating System Updates Needed? Microsoft releases important updates on Patch Tuesday every month. This is the second Tuesday of the month and this is going on been going on since October of 2003. They release security updates and other important updates on Patch Tuesday. The normal way that you get these updates is Windows Update, but this is for the operating system only. There's a super set of Windows Update called Microsoft Update that patches other applications such as Microsoft Office, the .NET framework and SQL Server. For production servers you don't want to have the automatic installation option enable. Instead, you want to change that update setting to only download updates or only notify you that a new updates are available. Now, it's very important that you test your Windows Updates before you apply them to a production server. You're going to want to install them during a scheduled maintenance window as opposed to having them happen automatically at 3 a.m. on Wednesday on the Patch Tuesday week. You want to install them when you are ready to do it during a scheduled maintenance window. It's also a best practice to use Windows Server Update Services server to actually download these updates and then distribute that ones that you want to distribute to your other servers. This is going to allow to you manage which updates are distributed to your other servers. And it's going to let you limit your bandwidth usage for updates. So instead of having every single server download all the updates, you have one server to download them and then the rest of your servers get them from that Windows Server Update Services box. This is will save you a lot on internet bandwidth. And again, that you can control what updates are being pushed out to your other servers. Planning and Testing Operating System Updates Planning and Testing Operating System Updates. Ideally, you have a robust test environment for your operating system updates so that means you have some real hardware with the same version of the operating system and it is set up as closely as possible to your production system. You also have an automated regression test suite. That's going to let you run a lot of automated test very quickly and find out whether or not anything in your application is broken by an operating system update. This would give you a higher degree of confidence that the operating systems update had not cause any problem for your applications or the servers themselves. Now in reality, most or many organizations have a limited test environment. They might have virtual machines instead of physical machines, and they might may multiple server rolls consolidated onto a single server because they don't have the budget or the full test environment available. They might have limited testing resources. So instead of a full automated regression test suite, they might be limited to doing what's called smoke-testing and some limited functional testing after they apply an update. So that's going to mean there'll be more risk of breaking an application with an operating system update. It's also common for some organization to wait awhile before installing an operating system update. So these updates will come out on Patch Tuesday and they might wait a week or two before they actually start applying these updates to their production servers. This allows other organizations to encounter problems first and they'll read about it on the internet for example. But it also gives a false sense of confidence to your organization because

waiting for other people to run into problems instead of doing your own testing really is not a good solution. It also increases the chance that you have unpatched servers that are vulnerable to day zero attached, for example, there's been many, many examples over the past 10 years of servers that were compromise because of things that have been patched in previous updates they hadn't bother to apply. So you know where to find yourself in that situation. You need to really put some effort into having the best in test environment possible so you can actually test these updates and stay up to date with them instead of being months and months out of date with all of your Windows Operating System Updates. Using Rolling Maintenance Techniques Using Rolling Maintenance Techniques. If you want to use rolling maintenance to reduce your downtime, you can have to have either an HA solution of some sort or server farm to make this happen. This can be very effective for reducing your downtime. And it's also a good method for reducing your risk when you apply any sort of a hardware or software update to your servers. Now, the server farm technique goes like this. All you really have to do is remove one server from the farm so you might have again 10 web servers in a server farm behind a load balancer. So what you do is you remove one server from that farm and then you install the hardware and software updates that you're going to do on the rest of your severs on that one server first. And then you test that patch server and make sure that everything is working correctly, and when you're satisfied that that's the case, you add it back to the farm and then you go to the next server and the farm and repeat the process. So that way, if something goes wrong in the first server, all the other servers are untouched and they still work. Now, the high availability technique goes like this. You patch one node in a cluster if you're using failover clustering or if you're using something like database mirroring, you could just patch one of the sides of the mirror in that HA solution. Then you failover the node or the portion of the HA solution that you didn't patch and you repeat that technique. And you continue doing this until everything is patched. And using these techniques will dramatically reduce your downtime for scheduled maintenance. So for example if you got a standalone server and you had to apply a BIOS update, that's going to require a reboot of the server. And again, that could take anywhere from 5 to 10 to 15 minutes for a single reboot of a standalone server whereas if you had a server on a server farm, you can pull it out of the farm and do whatever you have to do and have a reboot and it won't matter, they won't be any effect of production while that's happening to that one server. So that's how you reduce your downtime by using rolling maintenance techniques. Summary So what have we covered in this module? Servers have many components that must be maintained. This includes firmware and driver updates for all of the components in your sever, so this can include things like your main system BIOS, your embedded server management, RAID controllers if you have them, Network Interface Cards, and any other components that have firmware or drivers in your server. The operating system also must be maintained. This includes Service Packs for the operating system and monthly operating system updates from Windows Update. Failing to maintain your servers increases your risks of problems. You're much more likely to have problems with poorly-maintained servers. You might have vendor support issues with poorly-maintained severs. So for example if you call your

hardware vendor because you have some sort of a hardware problem, they're going to run a utility that's going to look at all your driver and firmware versions. And if any of those are out of date, they're going to want you to get up to date before they started helping you really. There is also a risk whenever you make a change to a server. So you need to consider what the update fixes and whether or not you really want to apply it or not right now. Proper planning and testing can reduce your risk whenever you apply updates. You can use rolling maintenance techniques to reduce your downtime and also reduce your risk from updates. Regular server maintenance can force you to exercise your HA solution which is also a good thing for your overall server environment. What is Next? So what is on the next module? Module 6 will cover servers in the real world. We begin into how to justify the purchase of a new server. Also, it talked about knowing what hardware tradeoffs to make when you have a limited hardware budget. We'll be discussing how to choose hardware to minimize your software licensing cost. And we'll briefly talk about server consolidation and hardware virtualization. Servers in the Real World Introduction This is Glenn Berry from SQLskills.com. I'm recording this course for Pluralsight. This is Understanding Server Hardware, Module 6 Servers in the Real World. So what we're going to be talking about in this module, the first topic will be how to justify the purchase of a new server. So I'll give you some successful tactics and negotiation strategy you can use when you're trying to get a new server. Next we'll talk about how to know what hardware tradeoffs to make when you have a limited hardware budget, show you how to maximize your hardware budget for the available dollars you have to spend. Next we'll talk about how to choose your hardware to minimize your software licensing cost. This is very important with socket base or core based licensing that's becoming more popular now. Next we'll talk about server consolidation where you can consolidate multiple existing servers onto a fewer number of new servers. Finally we discuss hardware virtualization. This is where you can run multiple server virtual machines on a virtualization host and also save money and save operating cost in some cases. How to Justify the Purchase of a New Server How to justify the purchase of a new server? As you're doing this, you need to make concerted effort to make the technical and business case for a new server. So the first step in this is to gather some performance metrics on your existing server that you're trying to replace. You want to try to figure out what are the biggest performance and scalability bottlenecks that's server seeing with its current workload? You also want to determine what is the impact to the business of this old server? If you have an old server that's causing problems for your end users or your customers, you want to try to measure what that impact is. It could be lost productivity for internal customers, it could be customer complaints from internal customers or external customers whatever it is, you want to try to measure that. And you also want to reach out to the business that's using that server and get them involved in this process, if

they're complaining about how slow a server is when you're trying to make the case to replace it, get them involved. It also maybe more difficult to maintain an old server that's out of warranty, it maybe more difficult to get parts, it may take longer to get parts. And it just maybe failing more often 'cause it's old. Tied into that, you want to find out how old are your existing servers, are they 6 months old? Are they 5 years old? So you need to know the model numbers for example, you want to find out are they out of warranty from the hardware vendor, most hardware vendors have a 3 year warranty on servers which can be extended but extending warranties is usually very expensive, and it really is not a good idea and they do that on purpose. They want you to buy a new server after 3 years. You also want to determine, is the operating system our of mainstream support form Microsoft? Because if that's the case you're not going to see anymore service packs and you're not going to see any other updates except for critical security fixes and that's another argument you can use that it's time to upgrade a server 'cause you're going to put a newer operating system on that new server that you buy. You also want to go out and do some research on any relevant application or component benchmark scores that you can find. So you want to run this on your existing server and then look on websites or run them on new servers if you have access to a new server and use those to compare their performance. You again want to compare the existing server performance to the proposed new server performance. In this way you can figure out how much improvement is actually possible with this new server and as you're dealing with this, you can also figure out where there might be any opportunities for server consolidation. So let's say you've got 4 or 5 older servers that are perhaps underutilized or they're just on really old hardware on an out of support operating system. It could be that you could combine the workloads from several older servers onto one newer server and actually get better performance and scalability and then just a general negotiating tactic that I try to do when I'm trying to get a new server is that I don't negotiate with myself. So what you should do is do your research, get your numbers and then ask for what you really need. Don't cut back on certain components just because you think perhaps there's a budget problem. You should go ahead and ask what you actually need. In that way, if you need to, you can negotiate down but if you start off lower than what you really need, you're probably going to get negotiated down anyways and come out worst for the experience. Knowing What Hardware Tradeoffs to Make Knowing what hardware tradeoffs make. It could be that despite your best negotiating efforts, you don't have an unlimited hardware budget. So you've got a certain amount of money to spend for all of your server components and you've got to decide how to allocate that money for those components. So, how you go about doing that depends on your workload. And that's going to depend on where your biggest bottlenecks are. So for example, you might be processor-bound or you might be IO bound and that's going to help you determine how to allocate your available money across the different components. Now if you're not quite sure of where that might be, a common best practice is to favor your processors when you first buy this server, and that's because it's usually not very economical to upgrade the processors later. The server vendors are more than happy to sell you processor upgrade kits. But they're quite expensive and usually ends up being less expensive to buy a whole new server, rather than to upgrade the processors in an existing server. So that means that you're likely to be stuck with your original processor for the life of the server so you want to get the ones that you really need for

your workload rather than thinking you're going to be able to upgrade them later. Next is memory, it's usually pretty easy to get more memory in a server after you buy assuming you haven't filled up completely the capacity right off the bat. Memory is inexpensive and the prices have been falling over time. So it's a lot easier to get approval later to buy more memory if you really need it. So if you've been able to build a case that 6 months after you buy a server, you really do need more memory. It's pretty easy to get the approval to do that. Now memory can be a good substitute for IO capacity to a certain extent especially for reads. So if you have a lot of memory in your server, you might be able to spend less money on your IO subsystem in certain cases. Having empty processor slots is going to affect your total memory capacity. So for example, if you've got a two-socket server, it only has one processor in it, your total memory capacity is going to be cut in half. So make sure to keep that in mind if you're tempted to not have all the processors populated in a server. Choosing Hardware to Minimize License Costs Choosing hardware to minimize your license cost. It's becoming much more common to tie software licensing to your hardware capabilities. So for example, it could be based on your processor socket counts in your server. Or it could be based on your processor physical core counts in your server. So you need to be aware of this when you select your hardware and you actually pick the processor you're going to use in your server. Buying a 16-core AMD processor could be very expensive, if your software licensing is based on physical core counts, 'cause you have to buy 16 licenses for each one of those AMD processors that you have in your server. And it could be that buying a lower core count Intel Processor that has better single-threaded performance would give you better performance and save you a lot of money on your software license cost. Now, when you're selecting an Intel Processor, you have to pay attention to the little details about the processor. And a good example is shown here. Intel has what they call frequency optimized models that have lower core counts and higher base clock speeds. So here's an example we, have an Intel Xeon E5-2643 processor and this has four physical cores and it has a 3.3 gigahertz based clock speed. Now you also have an Intel Xeon E5-2690 processor this has eight physical cores but it only has a 2.9 gigahertz base clock speed. So if you were going to have some sort of software that was based on physical core counts, you could possibly choose that four count or four core processor and get better performance and give up a little bit of overall capacity and scalability which you would save a lot of money in fact 50 percent on your software license, if you went that root so you seem to be aware that you have alternatives here and you're balancing the software license cost versus the processor that you pick. And depending on the software you're buying, this license cost for the software can be much more money than the server cost. So you really need to pay attention to this. Server Consolidation Sever consolidation, server consolidation is a good method to reduce server sprawl. You can take workloads from multiple older servers and combine then onto one new server. Quite often you'll find lots of old servers that are severely underutilized. And they're running on old out of warranty hardware and so taking those workloads and moving them into one new server can save you a lot of money in several different ways. First, you can reduce your software licensing cost. You only need one operating system license on a consolidated server. You might save some money on application licensing cost. So if

you had several old database servers each running a copy of SQL Sever for example and you consolidate them on to one new server you wouldn't have to have all those software licenses for SQL server. You can also reduce the overall required hardware maintenance. Instead of maintaining 5 severs you maintain 1 server, so you only have one serve that you have to maintain with the firmware and driver updates and operating system updates. Of course the downside to that is if this one server fails, more applications would be affected. Now, having one server instead of multiple servers is also going to reduce the overall required operating system maintenance so things like service packs and windows updates each month, were only going to be applied to one server instead of multiple old servers. You can also reduce your operating cost if you have fewer numbers of servers. You're going to have less electrical power usage especially since newer servers tend to use less power than older servers. You're going to require less cooling capacity in the data center and you're going to take up less server rack space and use up less network ports in your data center. So there's lot of different ways you can save money with server consolidation. Hardware Virtualization Hardware virtualization, hardware virtualization is coming much more popular nowadays especially with IT departments. This gives you another method to reduce your server sprawl. It's very popular now to do physical to virtual migrations P to V migrations, this is where you take an old server that might be running an old operating system and actually migrated to a virtual machine without having to do a reinstallation and rebuild to that server. That's a good way to eliminate old out of warranty hardware running old legacy applications without having to do all that work of reinstalling and reconfiguring the application. It also turns out that hypervisors have a lot less overhead than they used to the past, so the performance head of using virtualization is typically very low now. The latest Intel and AMD processors have much better hardware virtualization support built into the processor. And that needs to be enabled in the bios before you get the benefit of that. And it's very important that your virtualization host has enough resources to run the workload. So you need to have enough CPU, enough memory and enough IO capacity. Virtualization doesn't change the laws of physics, you still have to have enough resources to run your workload. And another thing to keep in mind, is that all these virtual machines that you're running, were going to have to have their own software licenses for the operating system and for the applications and they also all have to be patched in terms of widows updates and application updates. So keep that in mind when you're starting to think about virtualization. It reduces the amount of work that's required but you still have to do some of the normal work you should do on a regular physical server. Resources So here are some more resources to find more about the server hardware. First I've got two blogs, my personal blog is at this URL then my SQLskills blog is at that URL. Next we have AnandTech which is a very good hardware review site that's been around for quite a few years now. It's a dot URL and AnandTech has a particular focus on IT-related hardware, server hardware in particular. Next, we have Tom's Hardware and they have a lot of information about server hardware also and they're at this URL. Next we have StorageReview which tends to focus on storage devices as the name would attest. And

they're at that URL. And then finally, CPU world has a lot of news and information about new and upcoming processors. So they're available at that URL. Summary So what have we covered in this final module of the course? We talked about how to make the business case for new hardware. It's very important that you gather metrics and benchmarks as you're doing this. I've found that executives are usually impressed by good research and strong evidence. You also need to know how to get the best performance for the least cost. You need to know what components to spend your money on so you get the best performance for your workload. You also need to be aware of software licensing cost as you choose your hardware. Bigger servers in terms of higher socket counts are usually slower that smaller servers. You should be looking for opportunities for server consolidation because that's a good way to reduce your maintenance and operating cost. You also should look out for virtualization opportunities because that's another way to reduce your maintenance and operating cost. It also lets you provision new virtual machines very quickly which is one reason why IT Departments really like virtualization.

Das könnte Ihnen auch gefallen