2009-06-11 40 views
5

Trong sử dụng hiện tại của memcached, chúng tôi đang chạy vào các vấn đề trong một máy chủ khối lượng cao vì rất nhiều thời gian được sử dụng thiết lập và xé xuống kết nối đến máy chủ memcache của chúng tôi. Việc sử dụng các kết nối liên tục để trợ giúp memcached có làm giảm bớt vấn đề này không?Kết nối liên tục để ghi nhớ trong PHP

Ngoài ra, cách ưa thích để kết nối và sử dụng kết nối memcahced liên tục là gì? Tôi đã nghĩ đến việc thiết lập một "pool_size" biến sau đó ngẫu nhiên chọn từ 1-$POOL_SIZE và sử dụng kết nối

$mem = new Memcached(rand(1, $pool_size)); 

Hoặc là tôi đang tìm kiếm tại địa điểm sai hoặc không có nhiều thông tin về vấn đề này ra khỏi đó.

+2

Có thực sự cần thiết để chọn một kết nối ngẫu nhiên không? Nó sẽ không tốt hơn chỉ để chọn cái đầu tiên có sẵn? –

+0

Tôi không hiểu 'cái nào có sẵn đầu tiên' có nghĩa là gì. Làm thế nào mà sẽ làm việc? @jW. Bạn đã bao giờ con số này ra? – ficuscr

Trả lời

1

Trình khách php không xử lý các kết nối liên tục. bạn cần sử dụng ý tưởng tổng hợp của bạn hoặc sử dụng ứng dụng khách memcached của bên thứ ba cho php hỗ trợ các kết nối liên tục.

như thế này:

http://github.com/andreiz/php-memcached/tree/master

+5

Có vẻ như ứng dụng khách memcache pecl tiêu chuẩn đã hỗ trợ các kết nối liên tục trong một thời gian dài: http://www.php.net/manual/en/memcache.pconnect.php –

+1

@Frank, Có sự khác biệt giữa memcache và memcacheD (nhấn mạnh trên D) –

+4

Trong memcached bạn cần phải xác định một id liên tục http://www.php.net/manual/en/memcached.construct.php – srcspider

1

Tôi đã đọc rằng tính năng kết nối liên tục bị phá vỡ trong phần mở rộng PHP "memcached".

Đầu tiên: kết nối "liên tục" không bị hủy. (Đây là ok.)

Thứ hai: khi bạn cố gắng sử dụng lại nó, nó tạo ra một cái mới! (Đây là điều xấu!)

Kết quả: rò rỉ bộ nhớ, ngày càng tiêu tốn tất cả RAM có sẵn.

Kiểm tra ở đây: http://brian.moonspot.net/php-memcached-issues

Như tôi đã nói, tôi chưa có kinh nghiệm này bản thân mình - Tôi chỉ cần đọc thông tin này trong bài viết liên kết.

3

Cả pecl/memcache và pecl/memcached hỗ trợ các kết nối liên tục cho mỗi quá trình. Tuy nhiên, lỗi này tồn tại trong pecl/memcached tại thời điểm này.

+1

Điều này tôi nghĩ ... https://bugs.php.net/ bug.php? id = 59191 ... vẫn mở 6 năm sau? Tôi rất bối rối bởi các kết nối liên tục. – ficuscr

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