Trang này được dịch bằng máy. Đọc bản gốc tiếng Anh. English

Thư viện IBSurgeon

Nhanh, Mạnh Mẽ và Rẻ: máy chủ có hiệu năng đủ tốt cho cơ sở dữ liệu doanh nghiệp nhỏ với chi phí dưới 1000 USD

(c) Alexey Kovyazin, IBSurgeon, 21 September 2017 (cập nhật lần cuối - 29 September 2017)

Thật dễ dàng để có được một máy chủ mạnh mẽ nếu bạn sẵn sàng chi nhiều $$$: có những nhà cung cấp hàng đầu như Dell, HP, và nhiều công ty phần cứng ít tên tuổi hơn, họ sẽ vui lòng bán cho bạn một cỗ máy mạnh mẽ (thường là giao hàng trong 4-6 tuần).

Tuy nhiên, tiền bạc luôn là vấn đề, đặc biệt đối với các doanh nghiệp nhỏ và công ty khởi nghiệp, vì vậy có nhu cầu rất lớn về các giải pháp rẻ tiền “đủ tốt”. Bài viết này mô tả cách tiếp cận thực tế để xây dựng máy chủ cơ sở dữ liệu “đủ tốt” với hiệu suất phù hợp cho doanh nghiệp nhỏ. Nó cũng bao gồm các tính toán và liên kết đến các sản phẩm cụ thể mà chúng tôi khuyên dùng.

Công ty của chúng tôi ( IBSurgeon) cung cấp dịch vụ tư vấn và chăm sóc cơ sở dữ liệu cho các cơ sở dữ liệu Firebird, và chúng tôi thấy nhiều loại máy chủ (hay đúng hơn là các máy tính được sử dụng làm máy chủ). Khách hàng lớn sử dụng cấu hình cao cấp với SAN trên nền SSD, RAM hơn 350Gb và bộ đôi Xeon hàng đầu trên bo mạch, nhưng khách hàng doanh nghiệp nhỏ và vừa sử dụng các máy ít mạnh hơn vì họ không cần nhiều sức mạnh tính toán và họ không có nhiều tiền.

Chúng tôi đã nhận thấy rằng nhiều máy chủ thực chất là các máy trạm thông thường, và điều thú vị nhất là chúng hoạt động khá ổn định trong nhiều năm liền. Có một số thứ thực sự kỳ lạ, như Windows XP trên máy tính có 2Gb RAM (máy tính được lắp ráp từ năm 2002!), nhưng phần lớn trong số đó chỉ là các giải pháp phần cứng tự lắp ráp “đủ tốt”.

Tất nhiên, đây là vấn đề thống kê, và không ai sẽ khuyên dùng máy trạm làm máy chủ, nhưng câu hỏi đặt ra là: đâu là sự cân bằng giữa độ ổn định và chi phí? Sử dụng máy chủ tự lắp ráp giá rẻ có phải là cách tiếp cận tốt về giá trị đồng tiền không? Chúng ta có thể có được gì với 1000 USD? Những rủi ro liên quan đến phần cứng không đắt tiền là gì?

Ai có thể quan tâm đến máy chủ cơ sở dữ liệu dưới 1000 USD?

Hãy xem xét tình huống sau: một văn phòng có 20-25 nhân viên, mọi người làm việc 7x5, kích thước cơ sở dữ liệu khoảng 50Gb. Đây là tình huống điển hình cho công ty nhỏ, sử dụng một số ứng dụng ERP hoặc CRM hoặc ứng dụng cụ thể (ví dụ: hệ thống tự động hóa phòng khám nha khoa) cho các ứng dụng doanh nghiệp nhỏ dựa trên Firebird.

Hãy tưởng tượng rằng công ty không dư dả tiền bạc và họ muốn tiết kiệm càng nhiều càng tốt, mà không làm mất độ tin cậy, để đạt được hiệu suất đủ tốt. Người chịu trách nhiệm trong công ty hiểu rằng mọi phần cứng sẽ hỏng sớm hay muộn, và muốn giảm thiểu các rủi ro liên quan.

Họ cần loại máy chủ nào cho cơ sở dữ liệu Firebird với kích thước và tải như vậy? Theo Hướng dẫn phần cứng Firebird, tài nguyên quan trọng nhất cho cơ sở dữ liệu là I/O đĩa, sau đó là RAM, và cuối cùng là CPU (thú vị là khi khách hàng SMB mua máy chủ từ các nhà cung cấp lớn, họ thường chọn máy chủ có CPU mạnh và đĩa chậm, có lẽ do các tài liệu tiếp thị nhấn mạnh quá mức tầm quan trọng của CPU).

Ổ đĩa

I/O nhanh có nghĩa là chúng ta cần ổ cứng thể rắn (SSD) vì SSD là vua của đọc/ghi ngẫu nhiên. Tất nhiên, SSD không phải là phương thuốc chữa bách bệnh cho cơ sở dữ liệu, nhưng nó cung cấp hiệu suất thực sự cao, và hiện nay nó là lựa chọn đúng đắn cho cơ sở dữ liệu.

SSD có 2 loại - đĩa cấp doanh nghiệp và đĩa cấp tiêu dùng. Sự khác biệt chính giữa chúng là tài nguyên, được tính gần đúng bằng số thao tác I/O mà chúng có thể thực hiện.

Ví dụ, Samsung 850 Pro 256 Gb MZ-7KE256BW - SSD cấp tiêu dùng (dựa trên công nghệ MLC), nó có TBW (tổng số byte ghi) 150 Petabyte, và DWPD (Số lần ghi đĩa mỗi ngày) = 0.16. Hoặc, đơn giản hơn, tài nguyên có thể được giải thích là 40Gb ghi mỗi ngày trong suốt 10 năm.

Cập nhật: chúng tôi có đề xuất rằng Samsung PM863a ($181.59) hoặc SM863a ($249) đáng tin cậy hơn 850 Pro, nhưng vẫn phải chăng - về cơ bản, với thêm $60 chúng ta có thể có độ ổn định tốt hơn và một số loại bảo vệ khỏi sự tăng vọt điện.

Điều đó là nhiều hay không? Chúng tôi có một máy chủ thử nghiệm với SSD cấp tiêu dùng nơi chúng tôi chạy các bài kiểm tra tải để mô phỏng công việc cường độ cao của 100 kết nối trên cơ sở dữ liệu 60 Gb. Mỗi ngày 3 bài kiểm tra như vậy, mỗi bài 3 giờ, được khởi động - điều đó có nghĩa là các bài kiểm tra này mô phỏng ngày làm việc 9 giờ. Các bài kiểm tra đã chạy được 2 năm, và tài nguyên còn lại (theo firmware) là 54%.

Tất nhiên, ~50% tài nguyên có nghĩa là ổ đĩa nên được thay thế trong năm tới… Điều đó có tệ không? Cứ vài năm, tốc độ SSD lại tăng và giá giảm: SSD trong ví dụ có 6Gb/s và giá $137, trong 2-3 năm nữa sẽ có ổ 12G với cùng mức giá.

Giá Amazon từ USD$124

SSD cấp doanh nghiệp được xây dựng dựa trên công nghệ khác (SLC), và có thể thực hiện khoảng 30x thao tác nhiều hơn so với SSD cấp tiêu dùng cùng kích thước. Ngoài ra, chúng có giá cao hơn khoảng 3 lần so với SSD cấp tiêu dùng. Câu hỏi đặt ra là: chúng ta có thực sự cần 30x vòng I/O nhiều hơn cho máy chủ doanh nghiệp nhỏ với giá gấp 3 lần không?

Nếu chúng ta đang tìm kiếm một giải pháp nhanh và phải chăng, rất hấp dẫn khi sử dụng SSD cấp tiêu dùng rẻ tiền và thay thế chúng định kỳ (và theo dõi tài nguyên của chúng bằng firmware, tất nhiên).

Rủi ro liên quan đến SSD

Là những người hợp lý, chúng tôi hiểu rằng phần cứng cấp tiêu dùng có ít tài nguyên hơn và khả năng hỏng cao, vì vậy chúng ta cần giảm những khả năng này. Làm thế nào để giảm?

Để giảm khả năng hỏng hóc phần cứng đột ngột, cần sử dụng 2 SSD cho cơ sở dữ liệu, gộp trong RAID1. RAID1 không có nghĩa là chúng ta cần bộ điều khiển RAID riêng, sẽ đủ tốt nếu sử dụng khả năng RAID của chipset bo mạch chủ hiện đại - về cơ bản, có bộ điều khiển RAID đơn giản không có bộ nhớ đệm.

Cập nhật: vì bộ điều khiển RAID rẻ tiền trên bo mạch chủ có thể không hỗ trợ tính năng TRIM của SSD, để tránh suy giảm hiệu suất, nên thiết lập RAID phần mềm, điều phối các thao tác đồng thời ở cấp độ phần mềm.

Nếu không có bộ nhớ đệm, hiệu suất sẽ như thế nào? SSD hiện đại, như Samsung trong ví dụ, có bộ nhớ đệm tích hợp và bộ điều khiển rất thông minh - vì vậy chúng đủ nhanh mà không cần bộ điều khiển RAID chuyên dụng.

Tất nhiên, cần kiểm tra sức khỏe ổ đĩa; thông thường, firmware cung cấp ước tính đủ tốt về tuổi thọ của ổ đĩa.

Sao lưu

Tất nhiên, chúng ta cần ổ đĩa để sao lưu. Lựa chọn tốt nhất sẽ là một cặp ổ SATA mỗi ổ 2Tb - ví dụ, Seagate SkyHawk 2TB Surveillance Hard Drive, với 5900 vòng/phút.

Giá Amazon là $74,99

Chúng ta cần 2 HDD vì ổ đĩa sao lưu cũng phải được đặt trong RAID1, để bảo vệ khỏi sự hỏng hóc phần cứng đột ngột. Các ổ sao lưu này có thể khá chậm, mục đích chính của chúng là lưu trữ các bản sao lưu và cung cấp tốc độ đọc/ghi tuần tự phù hợp. Ổ 5900 vòng/phút chậm hơn ổ 7200 vòng/phút, nhưng chúng được biết đến là đáng tin cậy hơn. Dòng ổ đĩa cụ thể này (Seagate SkyHawk) được thiết kế cho ghi tuyến tính: đây là điều chúng ta cần cho sao lưu.

Rủi ro cho ổ sao lưu

Rủi ro tương tự như với SSD, và chúng ta bảo vệ khỏi nó theo cùng cách: RAID1 và giám sát. Sẽ có rất ít khả năng cả hai ổ trong RAID1 hỏng đồng thời.

Ổ hệ thống

Chúng ta có cần một ổ riêng cho hệ điều hành không? Trong cấu hình rẻ nhất - không, sẽ đủ tốt nếu giữ hệ điều hành và cơ sở dữ liệu trên cùng một ổ. Điều này sẽ làm tăng tốc độ xuống cấp của SSD một chút, nhưng không nhiều - trong kịch bản của chúng ta, nó chắc chắn sẽ trụ được 3 năm.

CPU

Đối với máy chủ cơ sở dữ liệu Firebird, tốt hơn nên chọn CPU có nhiều nhân và tần số càng thấp càng tốt. Vâng, bạn đọc đúng rồi đấy - không cần CPU tần số cao cho máy chủ cơ sở dữ liệu. Firebird (nếu được cấu hình đúng) sử dụng tất cả các nhân cho công việc bình thường, nhưng không tải chúng ở mức 100%.

Có những ngoại lệ: một số thao tác bảo trì (sao lưu và phục hồi) được hưởng lợi từ CPU tốc độ cao, và các truy vấn SQL viết kém với việc sử dụng chỉ mục sai - chúng tiêu thụ 100% nhân, nhưng đây là dấu hiệu rõ ràng rằng cần tối ưu hóa hiệu suất cơ sở dữ liệu. Nói chung, không thể bù đắp các truy vấn chậm bằng CPU cao cấp: ngay cả khi CPU nhanh gấp 3 lần, truy vấn chậm vẫn sẽ chậm.

Mặt khác, có nhiều nhân có thể bù đắp sự tồn tại của các truy vấn tiêu tốn CPU như vậy: với số lượng người dùng dưới 25 và với 8 nhân, không có nhiều khả năng tất cả các nhân sẽ đồng thời bị chiếm bởi các truy vấn chậm.

Và, vì chúng ta đang tìm kiếm giải pháp rẻ tiền, chúng ta bị giới hạn ở CPU máy tính để bàn - và, tiếc là phải nói, với chip AMD. Về cơ bản, nếu Intel có thể cung cấp bộ xử lý máy tính để bàn với 8 nhân với cùng mức giá hoặc cao hơn một chút so với AMD FX-8320E, chúng ta cũng có thể dùng Intel, nhưng tại thời điểm này tôi không thấy lựa chọn như vậy.

Chip AMD này không hiện đại và không nhanh, nhưng nó có 8 nhân, và nó rẻ, vì vậy nó là lựa chọn tối ưu cho máy chủ nhanh và rẻ của chúng ta.

Giá Amazon là USD$108

Rủi ro liên quan đến CPU máy tính để bàn

Rủi ro tiềm ẩn liên quan đến CPU là gì? Đối với chip tần số thấp (tức là không ép xung) với bộ tản nhiệt phù hợp, gần như không có rủi ro. Lần cuối bạn nghe về CPU máy tính để bàn bị hỏng là khi nào - năm 2003? Tất nhiên, CPU máy chủ nhanh hơn nhiều, nhưng chúng ta đang tìm kiếm một giải pháp đủ tốt.

Nên theo dõi tải CPU và nhiệt độ để ngăn chặn việc khởi động lại bất ngờ.

RAM

Lượng RAM cần thiết phụ thuộc vào kích thước cơ sở dữ liệu và số lượng người dùng. Trong kịch bản của chúng ta, kích thước cơ sở dữ liệu là 50Gb và chúng ta có tối đa 30 người dùng.

Kích thước tối đa mà Firebird có thể tiêu thụ là kích thước cơ sở dữ liệu (trong trường hợp này nó sẽ được lưu trữ hoàn toàn trong RAM) cộng với 200-300Mb mỗi người dùng (trong trường hợp Firebird 2.5 SuperClassic). Vì vậy, kích thước RAM tối đa lý tưởng là 64Gb, nhưng vì chúng ta muốn tiết kiệm, và vì chúng ta có SSD nhanh, chúng ta có thể sử dụng ít nhất là 16Gb.

Một số người dùng trong kịch bản này hoạt động tốt ngay cả với 8Gb, nhưng 8Gb khá chật: trong trường hợp này, không ứng dụng nào khác nên được sử dụng trên cùng máy chủ. 16Gb là mức tối ưu tối thiểu được khuyến nghị.

Giá Amazon là USD$59.99 x 2 = $120

Rủi ro liên quan đến RAM

RAM dễ bị hỏng hóc hơn CPU nhưng ít hơn ổ đĩa. RAM cấp doanh nghiệp có các cơ chế đặc biệt để giảm khả năng xảy ra lỗi, như kiểm tra chẵn lẻ. Làm thế nào chúng ta có thể ước tính và giảm rủi ro lỗi bộ nhớ?

Đầu tiên, có các phương pháp kiểm tra chip nhớ, và nếu các bài kiểm tra như vậy được vượt qua thành công, chip RAM sẽ hoạt động trong nhiều năm. Thứ hai, khi RAM hỏng, thường rất dễ nhận thấy: máy tính hoặc có màn hình xanh chết chóc hoặc kernel panic, hoặc khởi động lại thường xuyên: tất cả các triệu chứng như vậy đòi hỏi phải kiểm tra và, trong trường hợp kết quả xấu, thay thế RAM.

Bo mạch chủ

Bo mạch chủ là một phần quan trọng của bất kỳ máy tính nào. May mắn thay, bo mạch chủ hiện đại cho máy tính để bàn rất đáng tin cậy, đặc biệt là các bo mạch chủ được phát hành 4-5 năm trước - chúng có tất cả các bản cập nhật cần thiết và ổn định. Và - vâng, chúng rẻ.

Chúng ta cần một bo mạch chủ hỗ trợ RAID, có chip video tích hợp, và đủ cổng SATA. Một cái gì đó như:

ASUS M5A78L-M Plus/USB3 DDR3 HDMI DVI USB 3.0 760G MicroATX Motherboard

Giá Amazon là USD$74,99

Nó có các đánh giá rất tích cực, và dễ dàng cấu hình để có RAID1.

Vỏ máy tính để bàn

Chúng ta cần một vỏ máy tính để bàn để lắp tất cả các thành phần máy tính lại với nhau, với nguồn điện đủ mạnh. Một cái gì đó như thế này: $76,82 http://amzn.to/2ydeYs1

UPS

Một thứ không phải là một phần của máy chủ, nhưng nên được trang bị cho mọi máy tính có dữ liệu quan trọng bên trong - nguồn điện liên tục (UPS).

UPS bảo vệ máy tính khỏi mất điện và dao động điện. Theo kinh nghiệm của chúng tôi, sự tăng vọt điện hoặc mất điện bất thường của máy tính là nguồn hàng đầu gây hỏng cơ sở dữ liệu.

Một cái gì đó như CyberPower CP1200AVR, với giá $117.97, sẽ đủ tốt.

Tổng cộng

Kết quả là, chúng ta có tổng giá của tất cả các linh kiện máy tính và UPS = 855,27 USD - thậm chí còn ít hơn 1000 USD, tuy nhiên, trước khi những linh kiện này trở thành một chiếc máy tính hoạt động được, chúng cần được lắp ráp, cài đặt hệ điều hành và kiểm tra.

Mặt hàng Giá SL Tổng
SSD Samsung 850 Pro 256 Gb MZ-7KE256BW $124,24 2 248,48
Seagate SkyHawk 2TB Surveillance Hard Drive 74,99 2 149,98
CPU AMD FX-8320E $86,02 1 86,02
RAM Corsair Vengeance 8GB $61,99 2 123,98
Motherboard ASUS M5A78L-M Plus $57 1 57
Desktop Case $69,99 1 69,99
CyberPower CP1200AVR $119.82 1 119,82
Tổng 855,27

Lắp ráp máy chủ

Để lắp ráp tất cả các bộ phận này thành một máy chủ hoạt động và cài đặt hệ điều hành ở đó (chúng tôi khuyên dùng một số phiên bản Linux, như CentOS7+ hoặc Ubuntu Server 16+), tất cả các linh kiện này cần được lắp ráp/cắm đúng cách.

Điều này không khó, chỉ cần một cây tuốc nơ vít, một chút kiên nhẫn và thời gian để đọc hướng dẫn cẩn thận và xem một số video trên YouTube. 10 năm trước, hầu như mọi lập trình viên đều có thể tự lắp ráp một chiếc máy tính từ những bộ phận này, ngày nay thì khác, nhưng vẫn không khó.

Nếu bạn không muốn tự lắp ráp máy chủ thì sao?

Có một cách tắt - bạn có thể mua một chiếc máy tính có cấu hình tương tự gần như đáp ứng nhu cầu của chúng ta, và cắm thêm các linh kiện bổ sung (ví dụ: ổ đĩa) vào đó.

Tôi khuyên bạn nên xem qua chiếc máy tính này - ban đầu được thiết kế như một PC chơi game, nó có CPU 8 nhân và 16Gb RAM, và chỉ có giá 709 USD.

Bạn sẽ cần trang bị thêm cho nó (mở vỏ máy và cắm vào) một cặp ổ SSD (+$248,48), thêm một ổ sao lưu (+$74,99) và tất nhiên là UPS (+119.82). Tổng cộng sẽ là 1153 USD - cao hơn mục tiêu 1000 USD, chủ yếu là do card màn hình và vỏ máy tính để bàn đẹp. Bạn vẫn cần cấu hình RAID1 (trong BIOS) và tất nhiên, cài đặt hệ điều hành máy chủ thay vì Windows 10 Home được cài sẵn.

Cách tiếp cận này có thể được sử dụng để biến một chiếc máy tính để bàn mạnh mẽ thành máy chủ - chỉ cần thêm ổ SSD dự phòng và ổ sao lưu vào đó.

Trước đây, nhiều doanh nghiệp vừa và nhỏ và các công ty khởi nghiệp đã sử dụng những máy chủ tự lắp ráp như vậy, hiện nay có xu hướng sử dụng máy ảo dựa trên đám mây.

Máy ảo được so sánh như thế nào với máy chủ tự lắp ráp?

Tất nhiên, việc xây dựng và duy trì máy chủ riêng đòi hỏi một số kỹ năng (không cao như người ta tưởng), vì vậy nhiều công ty muốn loại bỏ tất cả các máy chủ phần cứng (và có thể sa thải cả quản trị viên hệ thống phụ trách máy chủ).

Trong bài viết tiếp theo, chúng ta sẽ xem xét VM trên đám mây như một máy chủ cơ sở dữ liệu cho doanh nghiệp vừa và nhỏ.

Thêm các bài viết về hiệu suất cơ sở dữ liệu Firebird:

  1. Hướng dẫn phần cứng Firebird
  2. Tinh chỉnh cơ sở dữ liệu Firebird 1.7Tb
  3. Dịch vụ tối ưu hóa hiệu suất Firebird
  4. 45 cách tăng tốc cơ sở dữ liệu Firebird
  5. Bộ sưu tập các tệp cấu hình Firebird được tối ưu hóa

Liên hệ với chúng tôi

Vui lòng đặt câu hỏi nếu có thắc mắc: [email protected].

Lời cảm ơn

Xin chân thành cảm ơn những người đã gửi đề xuất và cải tiến cho bài viết này:

  • Vlad Khorsun
  • Dmitri Kuzmenko
  • Pavel Zotov
  • Sergey Nikitin
  • Emil Mustea