2008-08-26 17 views
56

Tôi đang cố gắng cải thiện hiệu suất dưới tải cao và muốn triển khai bộ nhớ đệm mã hóa. Tôi nên sử dụng điều nào sau đây?Tôi nên sử dụng cacbit opcode PHP nào để cải thiện hiệu suất?

Tôi cũng mở cửa cho bất kỳ lựa chọn thay thế khác đã trượt dưới radar của tôi.

Hiện đang chạy trên một cổ phiếu Debian Etch với Apache 2 và PHP 5.2

[Cập nhật 1]

liên kết cài đặt HowtoForge thêm

[Cập nhật 2]

Dựa trên các câu trả lời và phản hồi được đưa ra, tôi đã thử nghiệm tất cả 3 việc triển khai bằng cách sử dụng kế hoạch thử nghiệm Apache JMeter sau đây trên đơn đăng ký của tôi:

  • Đăng nhập
  • Tiếp cận Home Page

Với 50 kết nối đồng thời, kết quả như sau:

Không Opcode Caching
No Opcode Caching

APC
APC

eAccelerator
eAccelerator

XCache
XCache

Biểu đồ hiệu suất (nhỏ hơn là tốt hơn)
Performance Graph

Từ kết quả trên, eAccelerator nhỉnh hơn một chút về hiệu năng so với APC và XCache. Tuy nhiên, những gì quan trọng nhất từ ​​các dữ liệu trên là bất kỳ loại bộ nhớ đệm opcode cho một tăng rất lớn trong hiệu suất.

Tôi đã quyết định sử dụng APC do 2 nguyên nhân sau:

  • trọn gói có sẵn trong kho Debian chính thức
  • control panel Nhiều chức năng

Để tóm tắt kinh nghiệm của tôi:

Dễ cài đặt: APC> eAccelerator> XCache
Hiệu suất: eAccelerator> APC, XCache
Bảng điều khiển: APC> XCache> eAccelerator

+0

Tại sao điều này đóng? – Pacerier

+0

APC có một số vấn đề như Connection Reset! – Abadis

+0

@Pacerier Định nghĩa về * chủ đề * đã thay đổi trong những năm qua, vì vậy điều này "trở thành" ngoài chủ đề. – James

Trả lời

16

Tôi nghĩ câu trả lời có thể phụ thuộc vào loại ứng dụng web bạn đang chạy. Tôi đã tự mình đưa ra quyết định này hai năm trước và không thể quyết định giữa Zend Optimizer và eAccelerator. Để quyết định, tôi đã sử dụng ab (băng ghế dự bị apache) để kiểm tra máy chủ và thử nghiệm ba kết hợp (zend, eaccelerator, cả hai đang chạy) và chứng minh rằng eAccelerator tự nó mang lại hiệu suất cao nhất.

Nếu bạn có thời gian xa xỉ, tôi khuyên bạn nên tự mình làm các xét nghiệm tương tự và đưa ra quyết định dựa trên kết quả của bạn.

+0

Tại sao HipHop không được đề cập? – Pacerier

+1

Bởi vì HipHop không phải là một bộ nhớ cache opcode cũng không tồn tại khi câu hỏi này được hỏi. – BlaM

3

Tôi đã thành công tốt với eAccelerator (cải thiện tốc độ không tải trọng đáng chú ý) nhưng XCache cũng có vẻ khá hứa hẹn. Tuy nhiên, bạn có thể muốn chạy một số thử nghiệm với từng ứng dụng, ứng dụng của bạn có thể mở rộng khác nhau trên từng ứng dụng.

1

Tôi đã sử dụng XCache trong hơn một năm nay mà không có vấn đề gì cả.

Tôi đã cố gắng chuyển sang eAccelerator nhưng đã kết thúc với một loạt các lỗi phân đoạn (ít lỗi hơn). Lợi ích chính của eAccelerator là nó không chỉ là một bộ nhớ đệm opcode, nó còn là một trình tối ưu hóa.

Bạn nên kiểm tra đầy đủ ứng dụng của mình với từng ứng dụng để đảm bảo không có bất kỳ sự cố nào và sau đó tôi sử dụng apachebench để kiểm tra dưới tải.

5

Tôi đã chạy nhiều benchmarks with eAcclerator, APC, XCache, và Zend Optimizer (mặc dù Zend là một trình tối ưu hóa, không phải bộ nhớ cache).

Benchmark Results http://blogs.interdose.com/dominik/wp-content/uploads/2008/04/opcode_wordpress.png

Kết quả: eAccelerator là nhanh nhất (trong tất cả các bài kiểm tra), tiếp theo là XCache và APC. (Một trong sơ đồ là số giây để gọi một trang chủ WordPress 10.000 lần).

Trình tối ưu hóa Zend làm mọi thứ chậm hơn (!).

1

Các tiện ích bổ sung này trước đây đã giới thiệu rất nhiều lỗi lạ để theo dõi. Các lỗi này có thể gây ra hành vi không nhất quán mà không thể chẩn đoán dễ dàng vì nó phụ thuộc vào trạng thái của bộ nhớ cache.

Vì vậy, tôi muốn nói:

  1. Không sử dụng bất kỳ ở trên. Thay vào đó, hãy mua thêm tin, đó là cách tăng hiệu suất đáng tin cậy hơn (tức là không có lỗi). HOẶC
  2. Đi với bất kỳ điều nào ở trên là mạnh mẽ nhất, đã thử nghiệm quần khỏi ứng dụng của bạn.

Nhưng tôi muốn nói:

  1. Hãy chắc chắn rằng nó thực sự mã PHP phân tích cú pháp đó gây ra vấn đề hiệu suất của bạn bằng cách profiling ứng dụng của bạn. Tôi nghĩ rằng nó rất có khả năng nó không phải là - trong trường hợp bạn muốn lãng phí thời gian của bạn (thực sự, sử dụng thời gian của bạn tiêu cực hiệu quả) bằng cách cài đặt bất kỳ của họ.
+0

Chúng tôi có thể sử dụng một số người trong số họ để lưu trữ dữ liệu. Ví dụ APC có khả năng lưu trữ cả dữ liệu và mã hóa. nhưng tôi thực sự đồng ý với câu cuối cùng của bạn: "Hãy chắc chắn rằng đó là phân tích cú pháp mã PHP thực sự gây ra sự cố hiệu suất của bạn" – Abadis

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