Magento cực kỳ chậm khi bộ nhớ cache Full Full


8

Chúng tôi đang chạy Magento 1.9.2.1 với Lesti_Fpc trên máy chủ được quản lý có kích thước phù hợp. Ban đầu, chúng tôi sử dụng bộ đệm tập tin mặc định, điều này là tốt. Nhưng sau khi danh mục phát triển (mặc dù tôi nghĩ ~ 8000 sản phẩm không quá tệ) và trình thu thập thông tin trở nên hung dữ hơn, trang web trở nên chậm chạp ngay khi bộ đệm ngày càng lớn hơn một chút. Khi bộ nhớ cache bị xóa, mọi thứ sẽ chạy lại nhanh chóng.

Chúng tôi đã cố gắng chuyển sang APC dưới dạng phụ trợ bộ đệm thông qua mục nhập sau trong tệp localDB:

<global>
    <cache>
        <backend>apc</backend>
        <prefix>MYSHOP_</prefix>
    </cache>
</global>

Nhưng điều này làm cho các vấn đề thậm chí còn tồi tệ hơn. Sau đó tôi đọc rằng Cm_Cache_Backend_File được tạo cho vấn đề này và được tích hợp thông qua:

<global>
    <cache>
        <backend>Cm_Cache_Backend_File</backend>
    </cache>
</global>

Điều này cảm thấy tốt hơn một chút, nhưng vấn đề vẫn như vậy. Để giữ cho bộ đệm nhỏ và gọn gàng, tôi cũng đã tích hợp Aoe_CacheCleaner , nhưng điều này cũng không giúp được gì. Tuy nhiên, ngay khi bộ nhớ cache bị xóa, mọi thứ sẽ chạy lại nhanh chóng.

EDIT:
Dựa trên câu trả lời của infabo, tôi cũng đã kích hoạt Cm_Cache_Backend_FileFPC với tệp app/etc/fpc.xmlvà nội dung sau:

<?xml version="1.0"?>
<config>
    <global>
        <fpc>
            <lifetime>86400</lifetime>
            <backend>Cm_Cache_Backend_File</backend>
        </fpc>
    </global>
</config>

Tôi chắc chắn điều này có ý nghĩa, nhưng nó cũng không giải quyết được vấn đề.

Tôi biết rằng giải pháp chung cho vấn đề này dường như là Redis (hoặc có thể thay thế Memcached) dưới dạng phụ trợ bộ đệm, nhưng thật không may, nó không có sẵn trên máy chủ được quản lý của chúng tôi. Chuyển sang một công ty lưu trữ khác không phải là một tùy chọn.

Bây giờ tôi đã điều tra rất nhiều, nhưng tôi không có ý tưởng nào nữa. Có lẽ ai khác có thể giúp đỡ?


URL của trang web là gì? Sẽ hữu ích để có thể xem cách các trang đang tải.
Jonathan Hussey

@JonathanHussey xin lỗi, không thể chia sẻ và như được mô tả, điều này phụ thuộc nhiều vào trạng thái bộ đệm, vì vậy dù sao nó cũng không giúp được gì ...
Simon

Chắc chắn ok, tốt mà không thể nhìn thấy vấn đề, rất khó để thậm chí suy đoán về những gì có thể sai. Có thể lập hồ sơ yêu cầu HTML ít nhất sẽ cho chúng tôi biết liệu mọi thứ có dính vào FPC hay không (tức là vẫn nhanh, hoặc chậm TTFB khi có vấn đề).
Jonathan Hussey

Vấn đề được biết đến từ năm 2011 fbrnc.net/blog/2011/05/magento-caching-iternals
Phòng thí nghiệm Fiasco

@FiascoLabs Tôi đã theo sát Fabrizio, nhưng tôi không thể thấy rằng có bất kỳ giải pháp nào (ngoài Redis). Bạn có thể?
Simon

Câu trả lời:


7

Tôi đã điều tra nhiều hơn và tôi nghĩ rằng cuối cùng tôi đã giải quyết vấn đề. Vậy bạn có thể làm gì để phân tích một vấn đề như vậy?

  1. Để có một ý tưởng hay khi bộ đệm trở nên quá lớn và nếu vấn đề thực sự là kích thước bộ đệm, hãy thêm một cronjob gọi tập lệnh sau, ví dụ: mỗi 15 phút:

    #!/bin/bash
    
    # this script is an attempt to check if the full cache is the real performance problem
    # it should be called regularly as a cronjob
    
    cache_dir="/html/shop/var/cache/"
    log_file="/html/cache_log"
    
    line=$(date)
    line="$line Size of cache directory: $(du -hs $cache_dir)"
    echo "$line" >> $log_file
    
    line=$(date)
    line="$line Total cache tags: $(find $cache_dir'cm-tags/' -type f | wc -l)"
    echo "$line" >> $log_file

    Sau đó, bạn có thể phân tích nội dung /html/cache_logđể xem kích thước bộ đệm phát triển như thế nào, khi trang của bạn trở nên quá chậm và liệu nguyên nhân gốc có thực sự là bộ đệm hay không.

  2. Phân tích các tập tin bộ nhớ cache của bạn. Do đó, khá hữu ích khi ghi tất cả các tệp bộ đệm vào tệp nhật ký, ví dụ:

    ls -R /html/shop/var/cache > /html/cachefiles

    Có một cái nhìn vào tập tin này và tên tập tin trong. Có những loại tập tin bộ nhớ cache nào? Có điều gì đáng ngờ? Trong trường hợp của tôi, có rất nhiều tệp bộ đệm chứa AMSHOPBYtrong tên tệp của chúng - một tham chiếu đến Amasty_Shopbytiện ích mở rộng Điều hướng cải tiến ( ). Nó đã tạo ra rất nhiều tập tin bộ nhớ cache. Một số trong số họ trông khá kỳ lạ với tôi. Vô hiệu hóa bộ đệm Điều hướng được cải tiến Amasty đã giải quyết vấn đề ngay lập tức. Tôi đã liên hệ với bộ phận hỗ trợ của họ với một mô tả chi tiết và sự hỗ trợ thực sự tốt. Chiến lược lưu trữ đã nhanh chóng được đại tu hoàn toàn và bây giờ tốt hơn nhiều. Họ hứa sẽ tích hợp bản vá trong phiên bản mở rộng tiếp theo, vì vậy mọi phiên bản> 2.8.3 đều ổn.

Chúc may mắn trong việc tìm ra nguyên nhân gốc rễ cho bộ nhớ cache lớn của bạn!


4

Bạn đã từng thử Cm_Cache_Backend_File dưới dạng phụ trợ trong fpc.xml chưa? Có thể cho nó một thử. Tôi cũng sẽ cho Aoe_Profiler một shot. Nếu bạn có thể sao chép "sự chậm lại" trên bản sao dàn dựng - hãy đi và ghi lại các yêu cầu chậm của bạn ở đó. Nếu không, bạn có thể thực hiện nó trong sản xuất ( tôi hoàn toàn không khuyến nghị điều đó , nhưng nếu bạn dám, bạn có thể định cấu hình trình lược tả để được bật khi tham số GET được đặt và tiếp tục)


Không, tôi chưa (chưa biết fpc.xml). Ý tưởng thú vị, sẽ cố gắng, cảm ơn!
Simon
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.