2010-08-25 32 views
17

đây là một liên kết đến cách APC của tôi đang chạy: [removed]Optimize APC Caching

Như bạn thấy, nó đầy lên khá nhanh chóng và Cache của tôi Đếm Full đi hơn 1000 đôi khi

sử dụng trang web của tôi Wordpress.

Tôi nhận thấy rằng mỗi khi tôi tạo bài đăng mới hoặc chỉnh sửa bài đăng, 2 điều sẽ xảy ra.

1) APC Memory "SỬ DỤNG" resets 2) Tôi nhận được rất nhiều toàn bộ mảnh vỡ

Tôi đã thử đưa ra bộ nhớ hơn để APC (512 mb) nhưng sau đó nó bị treo đôi khi, có vẻ như 384 là tốt nhất . Tôi cũng có một công việc Cron khởi động lại apache, xóa tất cả APC của các mảnh vỡ và sử dụng bộ nhớ, cứ 4 giờ một lần. Một lần nữa, apache của tôi bị treo nếu APC đang chạy trong một thời gian dài, tôi nghĩ rằng do sự tích tụ mảnh vỡ.

Tôi có nên sử dụng apc.Filters và lọc ra một số nội dung không được lưu trong bộ nhớ cache không?

Tôi thực sự mới bắt đầu ở loại công cụ này, vì vậy nếu ai đó có thể giải thích với hướng dẫn đầy đủ, Cảm ơn bạn rất nhiều !!!

Trả lời

10

APT ttl sẽ chăm sóc phân mảnh. Tôi thường đặt nó ở 7200. Tôi đang chạy nó trên một VPS nhỏ với WordPress và các thiết lập của tôi là:

apc.enabled=1 
apc.shm_segments=3 
apc.shm_size=32 
apc.ttl=7200 
apc.user_ttl=7200 
apc.num_files_hint=2048 
apc.mmap_file_mask=/tmp/apc.XXXXXX 
apc.enable_cli=1 
apc.max_file_size=10M 

Bạn cũng sẽ nhận được lợi ích rất nhiều từ nó bằng cách sử dụng WordPress được xây dựng trong bộ nhớ cache đối tượng và Mark Jaquith viết một thực sự tốt drop in plugin mà cũng nên giúp đỡ với một số vấn đề phân mảnh của bạn khi lưu hoặc chỉnh sửa một bài đăng.

1

Bạn thực sự nên đặt apc.stat = 0 trên máy chủ sản xuất của mình và nó sẽ ngăn APC thực sự truy cập IO để kiểm tra xem tệp có bị thay đổi hay không.

Kiểm tra tài liệu đầu tiên: http://php.net/manual/en/apc.configuration.php

41

tôi làm việc như một hệ thống Linux quản lý, máy chủ wordpress chạy 5 WordPress khác nhau cài đặt. Nếu bạn đang chạy chỉ một, tôi sẽ bình luận các cấu hình để xem xét.

phiên bản APC/PHP, 3.1.9/5.3.7

Đây là apc.conf hoàn chỉnh của tôi,

apc.enabled=1 
apc.shm_segments=1 

; I would try 32M per WP install, go from there 
apc.shm_size=128M 

; Relative to approx cached PHP files, 
apc.num_files_hint=512 

; Relative to approx WP size W/ APC Object Cache Backend, 
apc.user_entries_hint=4096 

apc.ttl=7200 
apc.use_request_time=1 
apc.user_ttl=7200 
apc.gc_ttl=3600 
apc.cache_by_default=1 
apc.filters 
apc.mmap_file_mask=/tmp/apc.XXXXXX 
apc.file_update_protection=2 
apc.enable_cli=0 
apc.max_file_size=2M 

;This should be used when you are finished with PHP file changes. 
;As you must clear the APC cache to recompile already cached files. 
;If you are still developing, set this to 1. 
apc.stat=0 

apc.stat_ctime=0 
apc.canonicalize=1 
apc.write_lock=1 
apc.report_autofilter=0 
apc.rfc1867=0 
apc.rfc1867_prefix =upload_ 
apc.rfc1867_name=APC_UPLOAD_PROGRESS 
apc.rfc1867_freq=0 
apc.rfc1867_ttl=3600 

;This MUST be 0, WP can have errors otherwise! 
apc.include_once_override=0 

apc.lazy_classes=0 
apc.lazy_functions=0 
apc.coredump_unmap=0 
apc.file_md5=0 
apc.preload_path 

@Chris_O, cấu hình của bạn không phải là tối ưu trong một vài các khía cạnh.

1. apc.shm_segments = 3

Nếu bạn chạy một Linux Distro hiện đại, SHM của bạn nên được đủ sufficiantly lớn. Nếu tìm kiếm quá nhỏ như thế nào để đặt các mục nhập sysctl.conf, Bạn có thể kiểm tra như thế này.

#Check Max Segment size 
cat /proc/sys/kernel/shmmax 

Ngoại lệ khi chạy trên BSD nhất định hoặc Unix khác hoặc máy chủ được quản lý bạn không kiểm soát. Có những nhược điểm khi không có phân đoạn liền kề, hãy đọc chi tiết về APC để biết thông tin đó.

2. apc.enable_cli = 1

xấu xấu xấu, này là dành cho chỉ debug! Mỗi khi bạn chạy php-cli, nó sẽ xóa bộ nhớ cache APC.

3. apc.max_file_size = 10M

không cần thiết và vô lý! Nếu bạn có một tệp lớn, nó sẽ ăn 1/3 trong số đó là 32 triệu SHM nhỏ. Mặc dù bạn chỉ định 3, chúng không chỉ hoạt động như một phân đoạn lớn trong ba phần. Bất kể WP thậm chí không có các tệp PHP đơn nào thậm chí gần với kích thước đó.

'hy vọng tôi đã giúp mọi người với apc.conf của họ.

+1

có, bạn đã giúp! – markus

+1

@TechZilla, tôi đang sử dụng khung công tác Yii và nó sử dụng tải chậm của các lớp rất nhiều, vì vậy tôi có nên bật apc.lazy_classes và apc.lazy_functions, nó có thể ảnh hưởng đến bất kỳ thứ gì khác không? –

+2

@Uday Sawant: Tải trọng lười biếng cho APC khác với tải chậm trong khung công tác Yii. Yii được viết đặc biệt theo cách 'lười biếng', trong khi với APC, nó nói về việc tải 'lười biếng' nói chung. Đặc biệt với Yii, tôi vẫn sẽ giữ những sự giảm tốc đó là '0'. Tải xuống thủ công 'lười' có thể hoạt động tốt nhất mà không có sự can thiệp từ bên ngoài. Tôi cũng muốn đề cập đến những giảm tốc APC vẫn còn khá mới, và cần nhiều kiểm tra/số liệu thống kê/trưởng thành hơn trước khi tôi cân nhắc việc đặt '1'. – TechZilla