Tôi đã chơi với điều này trong một thời gian nhưng tôi không biết phải làm gì. Tôi đang sử dụng APC 3.1.3p1 trên CentOs 5 với PHP 5.2.5. APC hoạt động như cả bộ nhớ cache opcode và bộ nhớ cache của người dùng. Chủ yếu là máy chủ này chạy Drupal 6 trang web bằng cách sử dụng mô-đun CacheRouter để hỗ trợ bộ nhớ cache APC. Tôi đã chạy APC 3.0.19 trong một thời gian nhưng nó đã gây ra Apache để khóa lên thỉnh thoảng (một lỗi tài liệu trong phiên bản của APC) vì vậy đó là lý do tại sao tôi đang ở trên 3.1.3p1.Tại sao APC lại tăng "Tổng số bộ nhớ cache" cho Bộ nhớ cache của người dùng mặc dù nó có nhiều bộ nhớ khả dụng?
Tôi đã định cấu hình APC để có 512 MB bộ nhớ (mmap).
Các triệu chứng là một chút gián đoạn nhưng bắt đầu từ một bộ nhớ cache trống này thường là những gì tôi nhìn thấy:
Bộ nhớ cache dùng điền khá chậm. Mặc dù tỷ lệ chèn ban đầu là 20.000 lần/giây, bộ nhớ cache của người dùng sẽ chỉ báo cáo vài trăm, sau đó vài nghìn mục nhập và sẽ phát triển rất chậm. Tôi có thể có thể thuộc tính này để write_locking được trên nhưng chỉ muốn đề cập đến nó trong trường hợp đó là tầm quan trọng trong việc giải quyết vấn đề ở bàn tay. Sau vài giờ, nó đạt mức cân bằng khoảng 30k mục.
Phân mảnh sớm và phát triển nhanh chóng. Trong vòng 10 giờ hoặc lâu hơn tôi thường bị phân mảnh 100%.
Mức sử dụng bộ nhớ cache tổng thể (opcode + user) ổn định khoảng 240MB. Nó hầu như không bao giờ vượt lên trên mức đó. Sau một ngày hoặc lâu hơn, tôi sẽ bắt đầu nhìn thấy việc tăng số lượng bộ nhớ cache của người dùng (UCCFC).
Tại thời điểm viết bài này, UCCFC của tôi ở mức 62358 và đang phát triển mặc dù APC báo cáo 280MB miễn phí. Tôi có một user_ttl của 7200, nhưng tôi cũng đã chơi với thiết lập nó 0 hoặc các số tiền khác và nó có ít hoặc không có hiệu lực về vấn đề này.
Tôi nghi ngờ vấn đề có liên quan đến phân mảnh. Ngay bây giờ máy chủ của tôi đang báo cáo "Phân mảnh: 100.00% (280.0 MByte trong số 280.0 MByte trong 24740 đoạn)" và 280 MB chỉ xảy ra là số lượng APC không gian trống đang báo cáo; một sự trùng hợp, tôi nghĩ vậy. Thật không may, tôi đã tìm thấy ít thông tin quý giá trong tài liệu hoặc ở nơi khác để chỉ ra những gì "phân mảnh" thực sự có nghĩa là trong thế giới APC, và có vẻ như hầu như không có gì bạn có thể làm để tránh nó.
Có ai có thể làm sáng tỏ vấn đề này không?
Bạn đã thử tăng dung lượng bộ nhớ dùng chung chưa? –
Cảm ơn bạn đã phản hồi. Tôi đã chơi với các thiết lập khá một chút, mặc dù tôi chưa bao giờ thiết lập nó với hơn 512MB. Thật thú vị, khi tôi cấu hình nó với 256MB, sử dụng bộ nhớ thường nằm trong phạm vi 220MB để lại khoảng 30MB miễn phí. Nhưng tổng số bộ nhớ cache của tôi thường bắt đầu tăng nhanh hơn nhiều so với khi nó được cấu hình với 512MB mặc dù việc sử dụng bộ nhớ thô là rất giống nhau. – Aaron