Làm cách nào để cải thiện hiệu suất của Trang web Drupal7 của tôi? [đóng cửa]


10

Đối với một người mới sử dụng Drupal, tôi thấy rằng có rất nhiều tài nguyên có sẵn trên Drupal Cacheing nhưng tôi không chắc nên sử dụng tài nguyên nào trong số đó.


1
Chúng ta có thể thảo luận xem chúng ta có muốn một câu hỏi kinh điển cho vấn đề này trên meta hay không, nhưng tôi vẫn nghĩ nó quá rộng. Và cải tiến hiệu suất có thể rất nhạy cảm bối cảnh và không được thực hiện trong chân không.
mpdon Arena

Câu trả lời:


26

Đây là những ghi chú từ kinh nghiệm của tôi và có thể thay đổi so với những gì người khác trải nghiệm. Tôi chủ yếu sử dụng LAMP stack và đã xem xét tương tự trong các đề xuất của tôi.

Quy tắc ngón tay cái cho bộ nhớ đệm mà tôi thường làm theo.

  1. Xử lý một lần sử dụng nhiều lần.
  2. Sống với dữ liệu cũ khi có thể
  3. Clear Caches không thường xuyên và giữ cho nó rất cụ thể.
  4. Khi có thể làm những thay đổi ở mức thấp nhất trong ngăn xếp. LAMP - DCCc: Linux, Apache, Mysql, PHP, Drupal Core, Contrib và mô-đun tùy chỉnh.

Cải thiện hiệu suất của một trang web Drupal (Theo thứ tự ngày càng phức tạp)

  1. Giữ cốt lõi được cập nhật, mô-đun đóng góp và chủ đề được cập nhật. Vâng, nó quan trọng.

  2. Cài đặt APC trên máy chủ của bạn. (Đã chuyển lên đầu dựa trên đề xuất từ ​​Letharion)

  3. Bộ đệm trang: quản trị / cấu hình / phát triển / hiệu suất Sự khác biệt giữa tuổi thọ bộ đệm tối thiểu và hết hạn của các trang được lưu trong bộ nhớ cache

  4. Chặn bộ đệm https://drupal.org/project/blockcache_alter Tùy chọn bộ đệm cho tất cả các khối.
  5. Tổng hợp các tệp javascript và css - Cải tiến Front End https://www.drupal.org/project/advagg
  6. Vô hiệu hóa các mô-đun không cần thiết. Mỗi mô-đun thêm vào số lượng mã cần có sẵn để tải trang. Và nó cũng làm tăng số lượng tra cứu. Trong trường hợp có thể sử dụng một mô-đun chung thay cho nhiều mô-đun có chức năng cụ thể.
  7. Nội dung Lượt xem bộ đệm - Bộ nhớ đệm nhận biết nội dung cho Lượt xem https://www.drupal.org/project/view_content_cache
  8. Vô hiệu hóa ghi nhật ký DB - Sử dụng https://drupal.org/project/syslog_ng
  9. Giảm lỗi 404 - http://www.brokenlinkcheck.com/
  10. Phản hồi nhanh 404 - https://drupal.org/project/fast_404 - Thử xử lý ở cấp máy chủ.
  11. Xác thực phía khách hàng - https://www.drupal.org/project/clentside_validation
  12. Nén hình ảnh - https://www.drupal.org/project/imageapi_optizes
  13. Tải hình ảnh lười biếng - Không tải hình ảnh không cần thiết - https://www.drupal.org/project/lazyloader
  14. Sử dụng Bảng Sprite - https://www.drupal.org/project/spritesheets

  15. Đặt Giá trị thời gian lưu trữ bộ nhớ cache tối thiểu thành số cao hơn và sử dụng các mô-đun xóa bộ đệm để xóa bộ đệm cho các trang cụ thể - Bất cứ khi nào tôi chỉnh sửa / cập nhật một nút, tất cả bộ đệm trang cho người dùng ẩn danh đều bị mất

  16. Sử dụng Mô-đun Devel để xem các truy vấn.
  17. Viết lại Lượt xem Truy vấn / tránh Lượt xem nếu quá mức cần thiết.
  18. XHProf - https://www.drupal.org/project/XHProf
  19. Kiểm lâm, HHVM.
  20. Cấu hình và điều chỉnh DB - https://www.drupal.org/project/dbtuner
  21. Sử dụng Boost , không Bootstrap DB nếu không cần thiết. https://drupal.org/project/boost Đối với hầu hết các trang web vừa và nhỏ Boost là đủ tốt và bạn có thể không cần Reverse Proxy hoặc hơn thế.
  22. Sử dụng CDN - https://www.drupal.org/project/cdn Thật dễ dàng để thiết lập.
  23. Nếu các bảng bộ nhớ cache của bạn sử dụng rất nhiều Memcached - Nếu bạn có thể cài đặt memcached và thiết lập RAM cho nó, thì nó không phức tạp như âm thanh.
  24. Etags - Cấu hình Etags đúng cách. https://developer.yahoo.com/bloss/ydnfiveblog/high-performance-sites-rule-13-configure-etags-7211.html
  25. Sử dụng Reverse Proxy Server - Varnish (ít nhất là đối với tài sản). Giúp rất nhiều nếu hầu hết người dùng của bạn là ẩn danh.
  26. Truyền nén - Cho phép nén gzip
  27. Giữ sống - Sử dụng kết nối liên tục nếu có thể.
  28. JPEG tiến bộ -
  29. CACHING IN CODE - Blog của Eaton thật tuyệt vời. http://www.lullabot.com/blog/article/beginners-guide-caching-data-drupal-7
  30. Thực hiện hâm nóng bộ đệm - https://www.drupal.org/project/cache_warmer - Cache Làm ấm các trang trước khi người dùng cuối truy cập chúng.
  31. Cấu hình Master Slave DB - https://www.drupal.org/project/autoslave giúp bạn dễ dàng thiết lập một cái hơn.
  32. Các cụm cơ sở dữ liệu - /programming/1163216/database-cluster-and-load-balANCE
  33. Tải cân bằng - http://en.wikipedia.org/wiki/Load_balANCE_(computing)
  34. Sử dụng Hâm nóng bộ đệm heuristic - https://www.drupal.org/project/cache_graceful
  35. Bộ nhớ đệm người dùng được xác thực - https://www.drupal.org/project/authcache

2
Câu trả lời tuyệt vời, nhưng một điều nổi bật với tôi, đó là bạn không có APC ở đầu. APC rất dễ dàng để có được vị trí, không có mặt trái, và lợi nhuận có thể thực sự lớn. Tôi nghĩ rằng nó nên đi đến đầu. (Có thể với một nhận xét rằng không cần thiết sau PHP 5.5 vì tối ưu hóa cuối cùng đã được tích hợp)
Letharion

1
Có lẽ cũng đề cập đến một cái gì đó về lợi ích dễ dàng nhất cho bộ nhớ đệm? Nếu trang web của bạn yêu cầu chủ yếu là nội dung tĩnh (các trang giống nhau cho tất cả người dùng, do đó không có thông tin đăng nhập), thì Varnish hoặc Boost cung cấp mức tăng lớn nhất.
Đaminh Woodman

5

Lớp cơ sở dữ liệu là quan trọng. Tôi trình bày một số phần của nó và những điều cơ bản trong bài trình bày này http://goo.gl/30yi39


Trình bày tuyệt vời MikeyTown. Bạn là người biểu diễn chuyên nghiệp :)
Gokul NK

3

Là bạn đồng hành với câu trả lời của Gokul, đây là cách tôi nghĩ về những gì bạn muốn lưu trữ trong Drupal (không được sắp xếp theo độ phức tạp):

Bộ nhớ đệm có nghĩa là tăng tốc các hoạt động lặp đi lặp lại.

Các hành động lặp lại lớn liên quan đến một trang web Drupal là:

  • Gọi một trang web
  • Chạy mã PHP để xây dựng trang web
  • Các mục gọi PHP từ cơ sở dữ liệu

Bộ nhớ đệm toàn bộ trang web

Lợi ích bộ nhớ đệm lớn nhất là nhờ tìm cách lưu trữ toàn bộ trang web mà không cần chạy mã PHP hoặc gọi cơ sở dữ liệu.

Bạn có thể làm điều này với Varnish hoặc Boost . Khi người dùng gọi một trang, họ trả lại một bản sao của trang mà không bao giờ thực hiện phép tính.

Tuy nhiên, điều này sẽ không hoạt động nếu các phần của trang phải khác nhau (tức là người dùng đăng nhập và tên của họ xuất hiện ở trên cùng).

Để làm việc đó, bạn cần xem xét Authcache.

Bộ nhớ đệm PHP

Bạn có thể lưu trữ bộ đệm PHP bằng APC hoặc nếu bạn có phiên bản 5.5 trở lên thì bộ đệm khác được tích hợp sẵn.

Điều này được thực hiện phía máy chủ và có nghĩa là các đoạn mã PHP của bạn sẽ được ghi nhớ. Bạn đang lưu trữ PHP cho Drupal nhưng về mặt kỹ thuật bạn không tương tác với Drupal.

Bộ nhớ đệm cơ sở dữ liệu

Các cuộc gọi để lấy thông tin từ cơ sở dữ liệu là đắt tiền.

Cơ chế lưu trữ cơ sở dữ liệu phổ biến nhất là memcache .

Điều này lưu trữ các đối tượng cơ sở dữ liệu trong RAM, vì vậy thay vì thực hiện cuộc gọi đến đối tượng cơ sở dữ liệu trên ổ cứng, bạn chỉ cần kéo nó từ RAM nhanh hơn rất nhiều.


1
Redis cũng là một kho lưu trữ bộ nhớ cache trong bộ nhớ tuyệt vời, ít nhất có thể so sánh với memcache theo kinh nghiệm của tôi (mặc dù memcache có thể chiến thắng với phân cụm)
Clive
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.