2009-06-27 8 views

Trả lời

15

Theo APC: Runtime Configuration, "Trong trường hợp bộ nhớ cache hết bộ nhớ, bộ nhớ cache sẽ bị xóa hoàn toàn nếu ttl bằng 0. Nếu không, nếu ttl lớn hơn 0, APC sẽ cố gắng xóa hết hạn mục."

Vì vậy, nếu có TTL khác không, nó sẽ xóa các mục nhập có thời gian sống đã trôi qua. ;) Nếu không, nó sẽ xóa toàn bộ bộ nhớ cache.

Tôi nhận thấy điều này không thực sự giải quyết những gì xảy ra nếu bộ nhớ cache hết bộ nhớ và bạn có TTL quá cao.

5

Từ kinh nghiệm (chúng tôi chạy nó trong sản xuất), nếu bạn không đặt TTL hoặc TTL là rất rất cao và không có gì là hết hạn, toàn bộ bộ nhớ cache được flushed (như trong sản phẩm nào). Bạn thực sự muốn thử và tránh điều này vì nó sẽ làm tăng tải trên yêu cầu tiếp theo mà PHP phải xử lý, vì mỗi tệp cần APC sẽ cần biên dịch và lưu trữ nó trong bộ nhớ (quá trình chậm hơn một chút so với hoàn toàn không có bộ nhớ cache). Ngoài ra nếu bạn đang nhận được rất nhiều lưu lượng truy cập và bộ nhớ cache trống, bạn sẽ trải nghiệm cache slam (xem google cho sự tà ác này)

Như một lưu ý, xem bản trình bày cũ này cho một hướng dẫn khá thô sơ với APC và mọi thứ để xem ra cho http://www.slideshare.net/oscon2007/os-gopal Những điều có thể đã lỗi thời trong đó nhưng lý thuyết vẫn đúng.

+0

Liên kết không còn hoạt động nữa: ( – chiborg

+1

Đã cập nhật liên kết để nó trỏ phiên bản đang hoạt động của cùng một trang trình bày –

+0

Slam bộ nhớ cache sẽ không còn là vấn đề nữa kể từ khi APC giới thiệu write_lock. Http: //www.php. net/manual/en/apc.configuration.php # ini.apc.write-lock – marcovtwout