Tôi cần loại máy chủ nào để xử lý 10 triệu yêu cầu và truy vấn myQuery mỗi ngày? [đóng cửa]


23

Tôi là người mới quản trị máy chủ và tôi đang tìm kiếm một dịch vụ lưu trữ mạnh mẽ để lưu trữ trang web mới của mình. Trang web này về cơ bản là phần cuối của một trò chơi trực tuyến trên thiết bị di động và nó sẽ:

  • xử lý tới 10 triệu yêu cầu HTTPS và các truy vấn myQuery mỗi ngày
  • lưu trữ tệp lên tới 2000 GB trên đĩa cứng
  • có thể chuyển dữ liệu 5000 GB vào và ra mỗi tháng
  • nó chạy trên PHP và myQuery
  • có 10 triệu bản ghi trong cơ sở dữ liệu myQuery, cho mỗi bản ghi có 5-10 trường, mỗi tệp khoảng 100 byte

Tôi thực sự không biết loại máy chủ nào tôi cần để xử lý các yêu cầu này, câu hỏi của tôi là:

  1. Tôi cần CPU / RAM nào cho máy chủ chuyên dụng hoặc VPS?
  2. Những công ty lưu trữ nào có thể cung cấp loại máy chủ chuyên dụng hoặc VPS này?
  3. Điện toán đám mây thì sao? Tôi đã nghiên cứu Amazon EC2 nhưng nó có vẻ phức tạp đối với tôi. Và tôi đã liên lạc với Rackspace nhưng thật lạ là họ nói Cloudsites không phù hợp với yêu cầu của tôi. Tôi tự hỏi nếu có công ty lưu trữ đám mây khác.
  4. Bất kỳ phương pháp thay thế khác?

Chúng tôi đã giải quyết vấn đề này với 2 máy chủ linux với 8 hợp đồng ram, mysql là cụm mysql và DB được lưu trữ trong bộ nhớ nhanh, cpu không bao giờ thực sự nhiều nếu bạn sử dụng một bản phân phối tốt và đĩa sẽ chỉ cần sử dụng để chụp ảnh nhanh hàng giờ cung cấp cho bạn dự phòng trong trường hợp thất bại. Ngoài ra, bạn có thể muốn cài đặt mysqltuner để bạn có thể theo dõi các chỉ mục, v.v. và sử dụng tốt nhất mọi thứ và cũng thêm nhiều chỉ mục và giữ một bản ghi trên các truy vấn chậm, vì đối với web, điều này có thể thực sự rẻ chỉ cần thêm tải bộ cân bằng ở mặt trước để phân chia lưu lượng
trừ4

Tại sao không sử dụng dịch vụ đám mây? Azure, Amazon, RackSpace, GoGrid, Heroku?
bbqchickenrobot

Câu trả lời:


33

Một máy tính để bàn giá rẻ?

Chúng ta hãy vào toán học.

  • 10 triệu yêu cầu.
  • Điều đó phá vỡ đến 416667 yêu cầu mỗi giờ.
  • Điều đó phá vỡ đến 6944 yêu cầu mỗi phút.
  • Điều đó phá vỡ đến 116 yêu cầu mỗi giây.

Nhân đôi số đó (tải tối đa) và chúng ta nói về tải một máy tính để bàn lõi tứ giá rẻ có thể xử lý NẾU các truy vấn đủ đơn giản và bạn không thực sự nói chúng phức tạp đến mức nào.

  • 5000 GB mỗi tháng là không đáng kể - nghiêm túc, áp dụng toán học tương tự.
  • Điều đó đã phá vỡ xuống còn 208GB / ngày
  • Điều đó bị phá vỡ thành 8GB / giờ
  • Điều đó bị phá vỡ đến 148MB / phút
  • Điều đó phá vỡ xuống 2,5 MB / giây, 25Mbit. Nhân đôi cho đỉnh - 50Mbit, tầm thường cho bất kỳ trung tâm lưu trữ nào. Sẽ chi phí bạn, mặc dù.

  • Lưu trữ 2000 GB trên đĩa cứng. Đó là đĩa cứng 2x2000 GB trong RAID? Trừ khi: nó dành cho cơ sở dữ liệu, có rất nhiều IO phức tạp, sau đó là bất cứ thứ gì giữa vài chục đĩa và RẤT NHIỀU đĩa 73 GB 15.000RPM trong RAID 10 (khoảng 60 đĩa) để có I / O cần thiết - điều này câu hỏi không thể trả lời được nếu không có thêm thông tin về các mẫu truy cập dữ liệu.

  • Chạy PHP và MySQL - Điện thoại di động của tôi có thể làm điều đó;) Câu hỏi đặt ra là ứng dụng này phức tạp đến mức nào. MySQL CÓ THỂ hoặc CÓ THỂ KHÔNG phải là một giải pháp chấp nhận được ở đây, BTW l. - điều đó sẽ yêu cầu thử nghiệm nhiều hơn. Có một lý do một số người vẫn sử dụng các cơ sở dữ liệu thương mại lớn hơn khác.

  • Tôi cần CPU / Ram nào cho Máy chủ chuyên dụng hoặc VPS?

Người ta sẽ nói rằng điều đó phụ thuộc vào logic (có bao nhiêu tính toán trong phần PHP, sự thông minh hay thiếu lập trình viên và rất nhiều câu hỏi khác.

Nghiêm túc mà nói, đây là một thiết lập không tầm thường. Nhận một số chuyên gia nhìn vào nó.

Về cơ bản bạn cần phải xuống và hoàn thành bài tập về nhà của bạn. Rất nhiều câu hỏi không thể trả lời được trong hình thức này. Đặc biệt là vì bạn dường như không quan tâm đến dữ liệu của mình ...

  • Sao lưu?
  • Không có kế hoạch dự phòng? Ý tôi là, các máy chủ chết - vì vậy bạn ổn với việc trang web bị ngừng hoạt động trong nhiều ngày trong khi thay thế được cấu hình?

Cảm ơn vì đã trả lời. php rất đơn giản, tôi đoán gánh nặng chính là ở myQuery, tôi đã thử nghiệm một số truy vấn myQuery trên máy tính xách tay của tôi (Core2 Duo) với WAMP trên Windows. với 10 bản ghi mllions trong myQuery, trung bình mỗi truy vấn tốn 0,1 giây. Quad Core mạnh hơn bao nhiêu khi xử lý các truy vấn myQuery?
Calvin

2
Quên lõi tứ. SUCKS máy tính xách tay của bạn trong IO - và IO là nơi cơ sở dữ liệu được giới hạn. Bạn có MỘT đĩa cứng, đó là SLOW và ROBUST (latop). Máy chủ sử dụng đĩa cứng MULTIPLE NHANH CHÓNG (nhưng không mạnh mẽ). Tôi sử dụng SQL Server lõi tứ từ MS MS và có thể xử lý hơn 500 lô mỗi giây trên các lựa chọn đơn giản (một lô là một lựa chọn) mà không cần tối đa CPU - nhưng tôi có thể nhận được rất nhiều hoạt động của đĩa trên một bộ đệm đĩa có thể nhanh hơn 30 lần so với của bạn (và điều đó vẫn chưa ấn tượng). Đĩa là giới hạn. Cộng với lập trình thích hợp.
TomTom

1
Lưu lượng ssl của bạn sẽ cần được mã hóa / giải mã, bạn có thể muốn giảm tải trên bộ cân bằng và thực hiện một proxy ngược lại cho một máy chủ http bình thường. Điều này sẽ giữ độ trễ xuống. bạn cũng có thể mã hóa phần cứng nữa ....... en.wikipedia.org/wiki/SSL_accelutions nếu ngân sách không phải lo ngại cho cơ sở dữ liệu của bạn, hãy sử dụng ramsan.com/success/ccpgames.htmlm
Unix Janitor

7

Để thêm một số kinh nghiệm của tôi có thể hữu ích:

  • Như TomTom đã đề cập, rất khó / không thể đưa ra các thông số kỹ thuật chính xác vì rất nhiều trong số đó phụ thuộc vào thiết kế và triển khai ứng dụng của bạn. Phần cứng cung cấp cho tôi hoặc người khác X yêu cầu / giây có thể không hoạt động tốt cho bạn.
  • Tôi có một máy chủ MySQL chuyên dụng cấp thấp (Intel Core2 Duo E4600 2,40 GHz, RAM 4 GB) phục vụ trung bình 100 yêu cầu / giây (gần 10 triệu / ngày) với tốc độ không tải CPU là 90%. Khác với một số điều chỉnh cơ bản đối với cấu hình, nó đang chạy tốt do bị đọc nặng (+ 95% số lần đọc) và bộ bản ghi hoạt động dễ dàng được chứa trong bộ nhớ. Xem xét kích thước của bộ hoạt động của bạn khi chọn dung lượng RAM máy chủ vì nó có thể tạo ra sự khác biệt lớn. Hãy chắc chắn rằng bạn hiểu sự khác biệt giữa kích thước cơ sở dữ liệu của bạn và kích thước bộ bản ghi hoạt động. Ví dụ: tổng cơ sở dữ liệu của tôi ~ 7GB nhưng bộ hoạt động có thể chỉ có vài 100MB.
  • Tương tự, tôi có một máy chủ Apache có thông số kỹ thuật tương tự phục vụ ~ 1 triệu yêu cầu mỗi ngày với tỷ lệ nhàn rỗi CPU trung bình ~ 95%. Các yêu cầu là sự pha trộn của các truy vấn AJAX dữ liệu bản đồ rất đơn giản và các trang MediaWiki phức tạp hơn.
  • Điểm chuẩn ứng dụng cụ thể của bạn là một khởi đầu tốt trong việc cố gắng xác định chính xác những gì bạn cần. Bạn không muốn ước tính nhưng ước tính quá mức có thể tệ như vậy do sự lãng phí tiền bạc và công sức tiềm năng.
  • Xem xét không chỉ tỷ lệ yêu cầu trung bình mà tỷ lệ cao nhất. Bạn không muốn một máy chủ chỉ có thể xử lý tỷ lệ trung bình vì tỷ lệ yêu cầu có thể thay đổi đáng kể theo ngày, tuần và tháng. Ví dụ: tôi có thể nhận được 3-4 lần lưu lượng truy cập trong giờ cao điểm vào cuối tuần như tôi làm trong những giờ tối thiểu trong tuần. Nó thay đổi bao nhiêu sẽ phụ thuộc vào ứng dụng và cơ sở người dùng của bạn.
  • Bạn có thể lưu trữ bất kỳ yêu cầu cơ sở dữ liệu / HTTP nào không? Điều này có thể làm tăng đáng kể tỷ lệ yêu cầu của bạn với phần cứng rẻ hơn / ít hơn tùy thuộc vào số lượng bạn có thể lưu trữ.
  • Hãy xem xét các lựa chọn mở rộng của bạn cho sự phát triển trong tương lai bây giờ thay vì sau này. Một lựa chọn tốt có thể là sử dụng tỷ lệ ngang cho phép bạn bắt đầu với phần cứng tối thiểu và dễ dàng phát triển khi cần.
  • Thiết kế phù hợp của lớp ứng dụng của bạn có thể có ảnh hưởng rất lớn đến hiệu suất cuối cùng của nó. Một truy vấn SQL xấu trên một bảng không có chỉ mục có thể là các lệnh có độ lớn chậm hơn so với một truy vấn được thiết kế đúng. Tương tự, các máy chủ Apache / MySQL được cấu hình kém có thể chậm hơn nhiều lần so với khi thiết lập chính xác.
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.