Setting aside the issue of renting or purchasing servers for hosting, in this article we discuss a problem that both renting and hosting must face, which is choosing the hardware configuration of the server. Because God will not give you a server to meet all your needs and solve all your problems. Especially in such a rapidly changing era, when you are still hesitating about the latest and most powerful CPUs, Intel and AMD are already plotting the next time to rob your wallet. In fact, they have already designed the CPU evolution path for the next 10 years, laying out one pit after another for you to jump in, just like a conspiracy. That's right, all of this is a conspiracy!
What applications are running on the server?
How many users need to be supported for access?
How much space is needed to store data?
How important is my business?
What application is running on the server? This is the first issue to consider, where you need to determine the performance, capacity, and reliability requirements of the server based on its application type, that is, its purpose. We will discuss the common infrastructure of front-end servers, application servers, and data servers:
1.1 Web Front end: Under normal circumstances, we believe that most web front-end servers (Front end) do not have high server requirements, such as static web servers, dynamic web servers, image servers, etc., because in the existing technical framework, we have many solutions to solve the performance expansion and reliability issues of front-end servers, such as LVS, Nginx reverse proxy, hardware load balancing (F5, A10, Radware), etc. Even in many applications with low traffic (hundreds of users online at the same time), 51IDC's classic Core servers can meet the demand.
1.2 Application Server: Due to the responsibility of computing and functional implementation, we need to choose a sufficiently fast server for Web based application servers. In addition, application servers may require a large amount of memory, especially Ruby, Python, and Java servers based on Windows infrastructure. This type of server requires at least a single channel to strong configuration. For reliability issues, if there is only one application server in your architecture, it must be reliable enough, and RAID is definitely an option that cannot be ignored. But if there are two or more application servers and a load balancing mechanism is designed with redundancy, then we don't have to arm each server to the end.
1.3 Special Applications: In addition to serving as an application server in web architecture, if your server is used for processing streaming video encoding, server virtualization, media servers (Asterisk, etc.), or running as a game server (logic, maps, chat), it also has high CPU and memory requirements. Therefore, we should at least consider a server with a single path to a strong one. Among them, server virtualization has very high requirements for storage reliability, because there are more than ten eggs in a basket, and the basket must be reliable enough.
1.4 Public Services: We refer to servers such as mail servers, file servers, DNS servers, and domain control servers. Usually, we deploy two DNS servers as backups for each other, and the domain control master server also has a backup server (dedicated or non dedicated), so there is no need to be strict about reliability. As for email servers, they need to have sufficient hardware reliability and capacity, mainly to be responsible for email data, because many users do not have the habit of saving and archiving email data. When they reinstall the system, they will always rely on re downloading the data on the server. As for performance issues, we believe that it is necessary to evaluate the number of users before making a decision.
1.5 Database: The application we discussed last is also the most demanding and important server. Whether you are using MySQL, SQLServer, or Oracle, we generally believe that it requires a fast enough CPU, large enough memory, and stable and reliable hardware. Single channel Xeon CPU/4GB memory/Raid1 is definitely an entry-level configuration. We need to discuss business requirements before making a decision on accurate configuration.
How many users do the two servers need to support for access? The server is definitely designed to provide some kind of service, and the users who use these services are also factors we must consider. There are several specific issues that you need to evaluate:
How many registered users are there? How many users would normally access online simultaneously? What is the highest peak value of simultaneous online access per day?
These issues have a crucial impact on our decision on what CPU to use and how much memory to use. 51IDC suggests that your technical personnel and business departments sit together to discuss these issues, and even need to convert these numbers into more specific technical numbers according to specific technical models and algorithms, such as how many concurrent connections (many times, the number of users and connections are not the same concept). At the same time, you also need to make as accurate predictions and plans as possible for future user growth, as your server needs to support an increasing number of users.
How much space is needed to store data? We need to calculate this problem from two perspectives. One perspective is the categories of data, including the space occupied by the operating system itself, the space required for installing applications, the data generated by applications, databases, log files, email data, etc. If it is a Web 2.0 website, you also need to calculate the storage space for each user; Another perspective is to consider from a timeline, as these data are growing every day. You need to make an accurate calculation of the data growth for the next year (we recommend 2-3 years), which may still require your software developers and business personnel to provide sufficient information together. Finally, you still need to multiply the calculated numerical results by a factor of about 1.5 to facilitate various data backup and file transfer operations during maintenance.
How important is my business? You need to follow some requirements based on your own business field. Here are a few simple examples to help you understand the requirements of these servers for reliability, data integrity, and other aspects:
4.1 If your server is used to run a WordPress blog, share your views with friends. So I believe that a Core server with 1GB of memory and a 160GB hard drive is enough. Even if there is a hardware failure on the server that prevents access for several hours or even a day or two, life will continue as usual and the sky will not collapse.
4.2 If your server is used as a testing platform, it will not have extremely high reliability requirements like in a production environment. All you need may be to do routine data backups. After the server crashes, someone can solve the problem today
4.3 If you are an e-commerce company and your server is running an e-commerce website platform, then you must pay attention to the server as much as you pay attention to your girlfriend. When hardware failure leads to downtime, you need to be mentally prepared for the following alarming consequences: complaint phone calls being knocked out, a large number of customers losing, customers demanding refunds, marketing expenses being wasted, employees having nothing to do, company operations being paralyzed, data loss (this is the most painful and disastrous result, we have experienced too many such cases, it can even lead to the demise of a company)
Here, we only need to briefly discuss your business's requirements for server hardware reliability. In other words, if you feel that your business cannot afford the risk of downtime or data loss caused by hard disk damage, then you must choose a suitable RAID card. The same principle applies to redundant power supply issues. (To comprehensively solve this problem, it is not only necessary to consider the hardware of a single server, but also to analyze it in conjunction with the planning, design, and operation management of the system architecture. We will write a separate article to discuss this part.)
Reprinting: http://blog.51cto.com/sopace/1422520
After completing the above questions, we can now decide on these specific options:
What CPU to choose?
Recall what applications are running on the server above? The answers to the two questions' How many users do we need to support access? 'will help us choose the appropriate CPU. Undoubtedly, the higher the CPU's clock speed, the higher its performance; Two CPUs are more enjoyable than one CPU, and the Xeon is definitely more powerful than the Core. But what kind of CPU do we need to choose? We provide you with some common advice here:
If your business is just starting out and your budget is not very sufficient, it is recommended that you choose a classic Core server, after all, 51IDC's E5300 server is the cheapest and only costs 450 yuan per month. Moreover, in the future, you can upgrade to higher configuration servers at any time according to the development of your business.
If you need to run multiple application services simultaneously on a server, such as Net+Exchange+SQLServer, So a single channel Xeon (such as X3330) or the new generation Core I3/I7 (dual core quad threading) would be the best choice. Although technically not a good idea, it can at least help you save a significant amount of costs.
If your server is running SQL Server, MySQL, or Oracle, and currently has hundreds of users online and will continue to grow in the future, then you should at least choose to install an E5504 (or higher frequency) Xeon server. When the load increases after six months, you can choose to add a CPU.
If you need a game server, we recommend choosing a single or dual channel Xeon server.
It should be noted that using dual CPUs requires support from the application. If the application itself does not optimize the code for dual CPUs, it will not bring significant performance improvements and will result in significant investment waste.
How much memory is needed?
Similarly, what applications does the server run? The answers to the two questions' How many users do we need to support access? 'will also help us choose the appropriate memory capacity. Compared to CPU, we believe that memory (RAM) is the most critical factor affecting performance. Because in a considerable number of running servers, we have found that CPU utilization is generally between 10% and 30%, or even lower. But we have found that there are many cases of slow server operation due to insufficient memory capacity. If the server cannot allocate enough memory to the application, the application needs to exchange read and write data through a slow hard disk interface, which will result in an unacceptable slow website. The size of memory mainly depends on the number of users on the server, and is also related to the minimum memory requirements and memory management mechanisms of the application software. Therefore, it is best for your programmer or software developer to provide you with the best memory configuration recommendations. We also provide some memory configuration suggestions for common application environments below:
Whether it is IIS on Windows or Apache on Linux, web front-end servers generally do not require particularly high memory configurations, especially in cluster architectures where 1GB-2GB is sufficient. We only consider using 4GB or higher memory when there are thousands of concurrent users and running dynamic scripts.
For running Tomcat, Resin, WebLogic, Websphere, or For application servers like Net, 2GB of memory should be the baseline configuration. More accurate numbers need to be determined based on the number of users and technical architecture.
The memory of a database server is determined by the number of database instances, table size, indexes, and number of users. It is generally recommended to configure more than 4GB of memory, and we have even used 24GB to 48GB of memory in many customer cases.
Email servers such as Imail, Notes, and Exchange do not have high memory requirements, with 1GB-2GB being sufficient.
For a file server, 1GB of memory may be sufficient.
There are also some special servers that we need to configure with the highest possible memory capacity, including Squid, Varnish cache servers, and Memcached servers.
In fact, the above numbers are already generous enough. Due to the continuous evolution of memory technology and decreasing prices, we are able to discuss almost luxuriously the once unimaginable memory capacities of 4G, 8GB, and 16GB. As early as the year 2000, most of the servers I faced had 256MB and 512MB of memory, with 1GB being considered high-end, and at that time, they also needed to meet the access needs of a large number of users. So, in addition to spending money to purchase memory to satisfy the greed of applications, system optimization and memory management are still issues that we need to pay attention to.
What kind of hard disk storage system is needed?
The selection and configuration of a hard disk storage system is the most complex part of the entire server system. We need to consider the number, capacity, interface type, speed, cache size of the hard disks, as well as whether Raid cards are needed, the Raid card model, and Raid level. Even in some high reliability and high-performance application environments, we still need to consider what kind of external storage system (SAN, NAS, or DAS) to use. The following chart can help us smoothly determine the relevant issues of the hard disk system.
Network card issue
If your infrastructure is a multi server environment and there is a large amount of data exchange between servers, we recommend that you configure two or more network cards for each server, one for providing external services and the other for internal data exchange. If you have particularly high security requirements, we can even install a separate network card for system management and daily maintenance.
As for the speed issue of the network card port, it mainly depends on your evaluation of bandwidth traffic. In most cases, a 100Mbps network card is sufficient for providing external services, while it is recommended to use a Gigabit network card for internal data exchange. But on the other hand, besides classic Core servers, it's difficult to find server motherboards with 100Mbps interfaces now.
Contact us at+86 13049611141 for a perfect IT server solution