Hiệu suất trang web, bộ đệm không hoạt động đúng


8

nhập mô tả hình ảnh ở đây

Tôi đang sử dụng Module ghi nhật ký hiệu suất . Trên ảnh chụp màn hình, một điều kỳ lạ tôi nhận thấy là Chèn Cache_bootstrap trên mỗi trang. Khi bạn đi đến bất kỳ trang nào (cả chủ đề quản trị viên và chủ đề giao diện) Chèn bộ đệm và sau đó xóa bộ nhớ cache đang chạy. Điều đó có nghĩa là bộ đệm được đặt và hủy trong mỗi trang và thực tế không có bộ đệm nào xảy ra. Làm thế nào tôi có thể xây dựng thêm nó? Để chẩn đoán vấn đề đó bởi vì hiện tại tôi đang làm việc về hiệu suất của trang web.

nhập mô tả hình ảnh ở đây

Tôi cũng đang sử dụng New Relic để kiểm tra hiệu suất. Nó cũng cho thấy tải cơ sở dữ liệu cao.

và thông tin my.cnf.

nhập mô tả hình ảnh ở đây

Câu trả lời:



3

Kích thước gói tối đa được phép có thể là một lý do điều này xảy ra, nhưng tôi có thể thấy nhiều lý do tại sao nó có thể là một cái gì đó khác trong trường hợp này.

  1. Bạn không chỉ có bộ đệm ghi, bạn cũng có thể xóa bộ nhớ cache rõ ràng. Việc ghi bộ đệm không thành công sẽ dẫn đến việc lặp lại ghi bộ đệm và sau đó ghi nhớ bộ đệm, nhưng không xóa.
  2. Đây là bảng cache_bootstrap. Có một số bộ nhớ cache có thể trở nên lớn nhưng chúng thường không phải từ thùng đó.

Lý do phổ biến nhất cho mẫu này là các lệnh gọi biến_set () xảy ra trên mỗi trang. Hãy xem nơi mà các bộ nhớ cache đó đến từ xhprof, với xdebug và thiết lập một điểm dừng hoặc bằng cách thêm debug_print_backtrace (DEBUG_BACKTRACE_NO_ARGS). Tôi khá chắc chắn rằng bạn sẽ thấy một cuộc gọi biến_set () ở đó.

Vấn đề là có một bộ đệm chung cho các biến. Mỗi bộ đệm ghi kết quả trong một lần xóa bộ nhớ cache và yêu cầu tiếp theo sẽ đọc toàn bộ {variables}bảng và ghi lại vào bộ đệm.

Nhiều nhà phát triển không nhận thức được điều đó và đang thực hiện những việc như "đảm bảo giá trị" bằng cách gọi trực tiếp biến_set () trong tệp .module hoặc một nơi khác được thực thi theo mọi yêu cầu.


vâng .. đó là sự thật mà hầu hết các nhà phát triển thậm chí tôi không biết về biến_set () mà bạn đã thảo luận. và tôi cũng biết về debug_print_backtrace (DEBUG_BACKTRACE_NO_ARGS). Cảm ơn vì điều đó. :)
Ông J

3

Đây chỉ là một giả thuyết nhưng nếu bộ đệm bootstrap của bạn xây dựng lại trên mỗi lần tải trang thì có thể xảy ra một số mô-đun của bạn bị thiếu trong thư mục mô-đun nhưng vẫn có trong bảng hệ thống. Trên mỗi trang tải, drupal cố gắng tìm nó và xây dựng lại bootstrap_cache.

Hãy thử mô-đun tối ưu hóa Bootstrap , nó sẽ giúp tìm các bản ghi như vậy và xóa chúng.

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.