2008-09-22 28 views
16

Chúng tôi đang làm việc trên trang web cho khách hàng (một lần) dự kiến ​​nhận được lưu lượng truy cập hợp lý vào ngày đầu tiên. Có thông cáo báo chí, mọi người đang viết blog về nó, v.v. Tôi hơi lo ngại rằng chúng ta sẽ rơi thẳng vào khuôn mặt của mình vào ngày đầu tiên. Những điều chính bạn sẽ xem xét để đảm bảo (trước mà không có dữ liệu lưu lượng truy cập thực) mà bạn có thể đứng sau một khởi động lớn.Các phương pháp hay nhất để chịu bùng nổ lưu lượng truy cập ngày khởi chạy

chi tiết: Đây là một chồng L/A/M/PHP, sử dụng một khung MVC trong nội bộ phát triển. Điều này hiện đang được đưa ra trên một máy chủ, với Apache và MySQL cả trên nó, nhưng chúng ta có thể phá vỡ nó lên nếu cần thiết. Chúng tôi đã cài đặt memcached và làm nhiều bộ nhớ đệm ở mức PHP như chúng ta có thể nghĩ đến. Một số trang có khá nhiều truy vấn và chúng tôi đang sử dụng Smarty làm công cụ tạo mẫu của chúng tôi. Hãy nhớ rằng không có thời gian để thay đổi bất kỳ khía cạnh chính nào - đây chỉ là thiết lập. Chúng ta nên theo dõi những thứ gì?

Trả lời

1

Để chuẩn bị hoặc xử lý hiệu suất tăng đột biến (hoặc cao điểm), trước tiên tôi sẽ xác định xem bạn đã sẵn sàng thông qua một số thử nghiệm hiệu suất đơn giản với một cái gì đó như jmeter.

Nó rất dễ dàng để cài đặt và bắt đầu và sẽ cung cấp cho bạn số liệu đầu cho dù bạn sẽ xử lý một tải đỉnh mong đợi.

Tuy nhiên, do hạn chế về thời gian, các bước khác của bạn để tận sẽ được chuẩn bị phiên bản tĩnh của nội dung đó sẽ thu hút được sự chú ý cao nhất (ví dụ như thông cáo báo chí, nếu ngày ra mắt của bạn). Cũng đảm bảo rằng bạn đang sử dụng tốt nhất bộ nhớ đệm phía máy khách (1 yêu cầu ít hơn cho máy chủ của bạn có thể tạo ra tất cả sự khác biệt). Các trang web đã được thiết kế cho khả năng mở rộng rất cao và hiệu quả sử dụng bộ nhớ đệm nội dung là người bạn tốt nhất của bạn trong những tình huống này.

Có một podcast tuyệt vời trên khả năng mở rộng cao trên software engineering radio on the design of the new Guardian website khi mọi thứ bình tĩnh lại.

chúc may mắn khi khởi chạy

9

Đo trước, sau đó tối ưu hóa. Bạn đã thực hiện bất kỳ loadtesting? Các nút cổ chai ở đâu?

Một khi bạn biết vướng mắc của bạn sau đó bạn có thể quyết định một cách thông minh nếu bạn cần hộp DB bổ sung hoặc hộp web, ngay bây giờ bạn muốn chỉ được đoán.

Ngoài ra, kết quả loadtesting của bạn so với lưu lượng truy cập dự kiến ​​như thế nào? Bạn có thể xử lý 2x lưu lượng dự kiến ​​không? 5x? Bạn có thể dễ dàng/nhanh như thế nào để phát hành thêm phần cứng bổ sung? Tôi chắc chắn rằng yêu cầu kinh doanh là không thất bại trong quá trình khởi động, vì vậy hãy đảm bảo rằng bạn có lô có sẵn dung lượng sẵn có, bạn luôn có thể phát hành sau khi tải đã ổn định và bạn biết những gì bạn cần.

1

tôi muốn, cá nhân, làm một vài điều

1) Đặt trong một số loại cân bằng tải/cơ sở dữ liệu hệ thống sao chép

Điều này có nghĩa rằng bạn có thể có dịch vụ lây lan của bạn trên nhiều máy chủ. Không thể có nhiều hơn một máy chủ vĩnh viễn? Sử dụng Amazon E3 - Đó là tốt cho việc đưa ra cho những thứ như thế này (công tắc trên một vài máy chủ hơn để xử lý các tải)

2) Mã trong một số "cao Load" hạn chế

Ví dụ, nếu tìm kiếm của bạn không hiệu quả - tắt nó khi tải đến một mức nhất định."Rất tiếc, chúng tôi đang bận, hãy thử lại sau để tìm kiếm"

3) Tải thử nghiệm ... Sử dụng một cái gì đó như ApacheBench để kiểm tra căng thẳng máy chủ của bạn.

4) Cá nhân, tôi nghĩ rằng việc chuyển đổi "Giữ liên kết" tắt là tốt hơn. Nó có thể làm giảm hiệu suất tổng thể, nhưng - điều đó có nghĩa là thay vì có trang web hoạt động tốt cho một vài người và những người khác có thời gian chờ, mọi người sẽ nhận được dịch vụ không nhất quán, nếu nó đạt đến cấp độ đó

Định dạng Linux một bài viết hay về "Làm thế nào để tồn tại một slashdotting" ... mà tôi đã thấy hữu ích trong quá khứ. Đó là available online as a PDF

3

Tôi ít nhất sẽ tính đến tất cả nội dung tĩnh. Thiết lập một vhost khác ở một nơi khác và tải tất cả đồ họa/css/js vào nó. Bạn có thể mua thêm một số chu kỳ giảm tải việc phục vụ loại nội dung đó. Nếu bạn thực sự quan tâm, bạn có thể đăng ký và sử dụng dịch vụ phân phối nội dung. Hiện tại có rất nhiều thứ tương tự như Akamai và khá rẻ.

Một ý tưởng khác có thể là sử dụng apache mod_proxy để giữ đầu ra trang được tạo trong một khoảng thời gian cụ thể. APC cũng có thể sử dụng được .. Bạn có thể sử dụng tính năng lưu vào bộ đệm đầu ra + thời gian sửa đổi lần cuối của dữ liệu liên quan trên trang và sử dụng phiên bản được lưu trong bộ nhớ cache của APC. Nếu trang không còn hợp lệ nữa, bạn sẽ tạo lại và lưu trữ trong APC một lần nữa.

Chúc may mắn, đó sẽ là trải nghiệm học tập!

2

Có giai đoạn beta nơi bạn cho phép trong nhiều người dùng khi bạn có thể xử lý, đo hiệu suất trang web của bạn, tìm ra lỗi trước khi bạn phát trực tiếp.

Bạn có thể kiểm soát số lượng người dùng một cách rõ ràng trong phiên bản beta riêng tư hoặc beta bán công khai theo phong cách Google, nơi mỗi người dùng có một số giới thiệu mà họ có thể cung cấp cho bạn bè của họ.

0

Xem xét sử dụng Varnish - đó là máy chủ proxy đảo ngược bộ nhớ đệm (như mực ống, nhưng nhiều mục đích khác). Tôi đã chạy một số trang web khá lớn phía sau nó, nó dường như làm việc thực sự tốt.

1

Các bước cơ bản đầu tiên để làm vững chắc trang web của bạn cho lưu lượng truy cập cao.

1) Sử dụng công cụ chi phí thấp như https://browsermob.com/ để tải thử nghiệm trang web của bạn. Ở mức tối thiểu, bạn nên xem 100 nghìn lượt khách truy cập mỗi giờ. Nếu bạn nhận được một quảng cáo tắt của trang chủ MSN, nhìn để có thể xử lý 500K đơn/giờ.

2) Di chuyển tất cả nội dung đồ họa/video tĩnh sang CDN. Edgecast và Amazon là hai lựa chọn tuyệt vời.

3) Sử dụng trình thu thập thông tin phản hồi để cấu hình máy chủ MySQL của bạn để phân tích bất kỳ truy vấn hoạt động chậm nào. Thay đổi nhỏ có thể có lợi ích rất lớn.

+1

Đo trước tiên trước khi mua không gian trên CDN đắt tiền. Bạn có thể hoặc có thể không cần nó, ngay cả khi bạn nhận được nó, bạn có thể sử dụng nó sai. Đo! –

Các vấn đề liên quan