A server is a computer that is used to "serve" content to other computers. There are many types of servers, including file servers, web servers, and database servers. A server responds to the requests of a client. The client communicates with a server by using a protocol to request and receive information.
Any computer can be a server, from a personal computer to a multi-thousand dollar server. A server is primarily defined by its function and software rather than any particular hardware.
The primary components of a server are similar to the primary components of a personal computer or most other computers. However, a server is generally designed to execute a small number of tasks as efficiently as possible, whereas most non-server computers are designed to be general-purpose computers, performing a great number of diverse tasks.
Servers often try to use redundant components. In high-end servers, it is not uncommon to find redundant power-supplies or other components that are not normally redundant in personal computers or workstations.
Each server function uses hardware differently. For instance, a file server often does not need as powerful a processor as a database server.
Unlike personal computers, many servers use more than one socket. This means that servers often use multiprocessor-enabled processors like Intel Xeons and AMD Opterons. Servers can use as few as 1 and as many as 16 sockets (generally in multiples of 2). As the number of sockets increase, bandwidth becomes a crucial factor as several processors need to communicate with the RAM, the peripherals, and each other. Hypertransport is extremely useful in multi-socket configurations to deal with bandwidth problems, and is supported in PowerPC and AMD chips.
Hard drives are important in servers, because they store the content that the servers provide. In addition to storage capacity, hard drive speed and reliability play a large role in servers. Hard drive bandwidth, as measured in MB/s is a crucial benchmark, especially for web servers or database servers. Additionally, servers which require random hard drive reads/writes (as opposed to sequential reads/writes) are heavily dependent on speed as measured in RPMs.
Servers frequently make use of RAIDs (Redundant Array of Independent Disks) to achieve maximum performance or reliability.
Servers often favor higher memory bandwidth to memory latency, and as a result use technologies like quad-channel RAM (Random Access Memory) and Fully-Buffered DIMMs. (Dual Inline Memory Module) Additionally, servers using 64-bit CPUs often have large RAM capacities, up to 64 GB. Servers often use RAM to cache content they serve, since RAM has a much lower access latency than hard drives.
A server's primary role is providing content, and thus networking is essential. Most servers have two to four gigabit Ethernet ports, and the highest-end servers have one or more 10-gigabit ports. Multiple ports are used both for redundancy, and to allow the servers to link directly to each other as well as to the rest of the network.
Servers can come in all different shapes and sizes, but most servers fall into three categories.
Further sub-divided into mini, midi and full tower, the tower computer chassis is one that extends most prominently on the vertical axis. A mini tower is similar in size to the chassis of a desktop computer - an approximation of the result can be experienced by standing a desktop computer on one side. A mini tower case would typically have 1 or 2 5.25" drive bays, and the same number of 3.5" bays. It would also provide a number of expansion slot bays for the various ISA (Industry Standard Architecture), PCI (Peripheral Component Interconnect) and AGP (Accelerated Graphics Port) expansion slots that have been used during the lifetime of the personal computer. Midi and full tower chassis offered an increasing number of bays to allow for the attachment of drive and peripherals, including such items as hard disk drives, CD-ROM (Compact Disk, Read Only Media) jukeboxes and DVD (Digital Versatile Disk) writers. A cursory internet search at the beginning of 2008 shows that chassis capable of hosting, and powering, 10+ drives or devices can be purchased. This type of chassis being somewhere in the region of 0.5 meters high. The ability to provide sufficient power to all the installed devices has often been an important consideration in the purchase of this type of PC (Personal Computer) chassis; the less expensive offerings sometimes being equipped with a PSU (Power Supply Unit) incapable of driving a fully populated chassis.
A database server stores and provides access to a relational database for use by another program, which may or may not be located on the server. For instance, a database server might handle requests for information from a webserver, or might provide information to a business application. Database servers commonly use SQL-based databases such as PostgreSQL, MySQL, or Microsoft SQL Server.
A file server stores and provides access to files to other computers. This is critical in an environment when multiple people need to access a large pool of files (such as in a business). File servers use a variety of protocols, including SMB, CIFS, AFP, NFS, and others.