Tôi có thể làm gì, ngoài việc sử dụng plugin bộ đệm như jotcache, để cải thiện thời gian phản hồi của máy chủ của trang web của tôi?
Tôi đã loại bỏ tất cả các mô-đun, plugin và thành phần bài viết không hoạt động, tôi có thể làm gì khác để cải thiện nó không?
Tôi đang nói về thời gian trước khi khách hàng (trình duyệt) nhận được phản hồi cho yêu cầu của anh ta. Và không phải là thời gian trang tải.
Có một số bước bạn có thể thực hiện để tăng hiệu suất phía máy chủ. Xin lưu ý rằng một số trong số này sẽ không hoạt động với hầu hết các máy chủ được chia sẻ. Để có hiệu suất tuyệt vời, bạn thường cần kiểm soát chi tiết hơn.
Như với bất kỳ tối ưu hóa nào, bạn nên đo lường hiệu quả của nó đối với hiệu suất trang web của bạn. Để tối ưu hóa cơ bản là các công cụ như PageSpeed và YSlow hữu ích (Tôi khuyên dùng các phiên bản Firefox). Để hiểu sâu hơn, bạn sẽ phải đo thời gian phản hồi thực tế của hệ thống trực tiếp của mình trong một khoảng thời gian.
Kích hoạt bộ đệm Opcode
Đây có lẽ là điều lớn nhất bạn có thể làm để tăng hiệu suất trang web của mình. Tôi khuyên bạn nên sử dụng OpCache hoặc APC . Cấu hình của các bộ nhớ cache này có thể được điều chỉnh để có hiệu suất cao hơn dựa trên nhu cầu cụ thể của máy chủ và trang web, nhưng chỉ cần cài đặt đã là một sự thúc đẩy lớn.
Cập nhật PHP
Newer PHP thường xuyên đi kèm với cải tiến hiệu suất. Ngoài ra, có một số trường hợp Joomla có thể sử dụng mã tốt hơn khi chạy trên phiên bản mới hơn PHP. ngày nay bạn không nên sử dụng phiên bản PHP cũ hơn PHP 5.4 nếu bạn quan tâm đến hiệu suất.
Cài đặt PHP
Trên các phiên bản cũ hơn PHP (<= 5.3), hãy cẩn thận để tắt register_globals
và magic_quotes_gpc
cho một chiến thắng hiệu suất miễn phí. Bật PHP> = 5.6 thay đổi always_populate_raw_post_data
đến 1.
Phần mở rộng PHP
Joomla chứa một số mã để giải quyết thiếu PHP tiện ích mở rộng. Điều này sẽ luôn chậm hơn các tiện ích mở rộng đó. Để cải thiện hiệu suất tốt, hãy cài đặt các tiện ích mở rộng sau: mbstring
, Zip
, ftp
Kích hoạt gzip
Cho phép nén phía máy chủ giao dịch băng thông cho tài nguyên CPU. Đối với hầu hết các trang web ngoài đó đây là cuộc gọi đúng. Hãy cẩn thận để chỉ nén dữ liệu văn bản, nén dữ liệu nhị phân sẽ cung cấp cho bạn CPU mà không có lợi thế về băng thông. Bạn cũng có thể kích hoạt tính năng nén trong cài đặt Joomla nhưng sẽ tốt hơn nếu bạn để máy chủ xử lý việc này.
Giải nén tài nguyên tĩnh
Tôi không nói về minfication (mặc dù điều này cũng có ích) nhưng bạn có thể định cấu hình Nginx và Apache cho máy chủ đã nén tài nguyên, loại bỏ hiệu quả CPU bị tấn công khi nén gzip. Điểm thưởng: Sử dụng Zopfli cho các tệp nhỏ hơn.
Sử dụng FastCGI cho PHP
Cụ thể hơn bạn nên sử dụng php-fpm
. Điều này ngăn khởi động PHP khi trình duyệt yêu cầu tệp không phải PHP.
Sử dụng các tiêu đề bộ đệm phù hợp
Sử dụng tiêu đề Expires
có thể làm giảm đáng kể tài nguyên máy chủ cần thiết. Sau khi tất cả các yêu cầu nhanh nhất là một yêu cầu không bao giờ được thực hiện.
Nói chung, tôi khuyên bạn nên sử dụng Nginx cho các trang web hiệu suất cao. Nếu bạn thực sự cần sử dụng Apache vì một số lý do tôi đã nhận được một mẹo tiền thưởng:
Vô hiệu hóa AllowOverride
Đặt AllowOverride
thành None
sẽ ngăn rất nhiều đĩa IO và
Không sử dụng Chế độ FTP
Mặc dù nó không ảnh hưởng đến người dùng của bạn khi đọc trang web, nhưng nó sẽ làm chậm một số thao tác như cài đặt tiện ích mở rộng.
Tắt các tiện ích mở rộng không sử dụng
Điều này đặc biệt dành cho Plugins, nhiều trong số này được chạy theo mọi yêu cầu. Vô hiệu hóa các menu và thành phần chủ yếu hữu ích khi liệt kê các phần mở rộng và loại menu có sẵn. Ngoài ra, hãy dành 5 phút để đi qua các tiện ích mở rộng đi kèm với lõi Joomla và vô hiệu hóa những tiện ích bạn không sử dụng.
Tắt chuẩn bị nội dung
Nếu bạn sử dụng nhiều mô-đun tùy chỉnh (mod_custom
không tùy chỉnh như trong tự viết) kiểm tra xem bạn có thể tắt Chuẩn bị nội dung trong đó không. Điều này tiết kiệm một số xử lý.
Sử dụng bộ nhớ đệm
Nếu bạn nghiêm túc về hiệu suất, bạn sẽ muốn bật bộ đệm. Đặc biệt hữu ích để đọc các trang web nặng với nhiều người dùng ẩn danh. Người dùng đã đăng nhập sẽ bỏ qua hầu hết bộ nhớ cache, nếu bạn có nhiều trong số này thì hiệu quả sẽ không lớn.
Sử dụng một trình xử lý phiên thay thế
Bằng cách sử dụng trình xử lý phiên thay thế, bạn có thể giải phóng cơ sở dữ liệu của mình cho những điều quan trọng hơn. Tôi không khuyến nghị tệp (được gọi một cách khó hiểu là Không có trong cài đặt Joomla) vì điều đó sẽ mang lại một lần nữa tăng IO đĩa. Sử dụng APC có khả năng là fastet nhưng làm tăng nguy cơ mất tất cả dữ liệu phiên. Tầng giữa bên phải là Memcache. Mặc dù điều này đòi hỏi một quy trình bổ sung, nhưng nó đáng tin cậy hơn APC và nhanh hơn nhiều so với việc lưu trữ tất cả dữ liệu trong cơ sở dữ liệu
Giữ cho trang web của bạn đơn giản
Bạn có thực sự cần nút Facebook đó không? Điều gì về biểu tượng dễ thương mà không ai từng thấy bởi vì nó một phần ẩn đằng sau một số biểu ngữ? Trang web của bạn càng ít hiển thị thì nó sẽ càng nhanh. Ngoài ra bất cứ nơi nào có thể sử dụng CSS3 thay vì hình ảnh.
Đặt một hình đại diện
Cảm ơn quyết định có từ Internet Explorer 4. trình duyệt đưa ra yêu cầu đối với tệp có tên favicon.ico
bất cứ khi nào người dùng truy cập trang web của bạn. Nếu bạn không có điều này gây ra IO không cần thiết, vì phản hồi 404 không được lưu trong bộ nhớ cache. Chỉ định biểu tượng trang web của bạn bằng thẻ meta HTML hoặc thêm tệp có tên favicon.ico
vào web gốc. Đừng muốn một favicon? Đặt một PNG trong suốt với kích thước 1x1 pixel ở vị trí đó. Lưu ý rằng tiện ích mở rộng vẫn cần phải là .ico
.
Tối ưu hóa hình ảnh của bạn
Thật tuyệt vời khi người ta có thể tiết kiệm được loại nào bằng cách tối ưu hóa hình ảnh, đặc biệt là các tệp PNG. Có nhiều công cụ có sẵn cho bất kỳ hệ điều hành nào, cá nhân tôi sử dụng ImageOptim có sẵn cho OS X. Hình ảnh cốt lõi của Joomla đã được tối ưu hóa nhưng đi qua hình ảnh của riêng bạn, đặc biệt là các mẫu rất quan trọng. Bạn cũng có thể kiểm tra các tiện ích mở rộng bạn đang sử dụng. Nếu chúng là nguồn mở, tại sao bạn không đóng góp yêu cầu kéo có chứa hình ảnh mới được tối ưu hóa?
Nếu bạn thực sự muốn đi ra ngoài, hãy xem xét đặt Varnish trước trang web của bạn. Nó lưu trữ các yêu cầu đến trang web của bạn và nếu có thể phục vụ chúng từ bộ nhớ cache của chính nó, không bao giờ nhấn Joomla. Đó là một công cụ phức tạp nhưng có rất nhiều sức mạnh. Joomla sẽ không tận dụng các chức năng nâng cao như Edge Side Bao gồm (ESI) nhưng mã của riêng bạn thì có thể.
Một điều LỚN bạn có thể làm để cải thiện thời gian phản hồi cho trang web của mình là cập nhật cài đặt mô-đun. Các mô-đun tùy chỉnh (sử dụng mod_custom) có tùy chọn bật/tắt chuẩn bị nội dung. Điều này cho phép bạn chạy các plugin nội dung trên nội dung dữ liệu trong mô-đun tùy chỉnh của bạn. Nó mạnh mẽ khi được sử dụng đúng cách, nhưng nó thêm thời gian kết xuất bổ sung vào đầu ra mô-đun. Trừ khi bạn thực sự sử dụng một plugin nội dung trong nội dung mô-đun tùy chỉnh của mình, tốt nhất là tắt nó đi. Bạn sẽ thấy giảm thời gian kết xuất mô-đun khi bạn làm điều này.
Ảnh chụp màn hình của cài đặt:
Lưu ý: Nếu câu trả lời của tôi đã giúp bạn, vui lòng nhấp vào kiểm tra bên trái để chấp nhận câu trả lời.
Tôi giả sử rằng bạn đã chạy trang web của mình thông qua tốc độ Trang của Google và bạn thực sự đang xem xét giảm thời gian phản hồi của trang, tức là thời gian đánh dấu của bạn sẽ được gửi tới trình duyệt.
Thủ phạm có khả năng nhất cho những điều này là các truy vấn nặng. Bật gỡ lỗi và nhìn vào cuối trang để tìm ra những truy vấn nặng nhất và loại bỏ hoặc giảm chúng. Bạn cũng có thể nhận trợ giúp về nhật ký truy vấn chậm của máy chủ MySQL của bạn.
Điều tiếp theo mà bạn có thể nhìn vào là bộ nhớ đệm. Tùy thuộc vào loại trang web bạn có, bạn có thể chuyển bộ nhớ đệm bảo thủ hoặc tiến bộ. Tiến bộ sẽ được sử dụng trên các trang web không có và các tính năng liên quan đến người dùng.
Những điều tôi biết có thể giúp ích (hầu hết trong số đó đã được liệt kê) là:
Tôi đã sử dụng kết hợp bộ đệm Joomla tích hợp (hoặc thậm chí APC được bật trên máy chủ) và các plugin như plugin rockbooster của gzip hoặc chủ đề tên lửa. Tôi cũng sử dụng plugin CDN không người dùng với tài khoản Amazon.
Nó chắc chắn có ích, nhưng bạn phải xem trang web của mình và vô hiệu hóa bộ đệm cho các thành phần có vấn đề. Tôi đã phải bỏ qua CiviCRM trên trang web của chúng tôi vì nó không chơi Nice với bộ nhớ đệm. Joomla đi kèm với một plugin bộ nhớ cache có thể xử lý việc đó.
Bạn cũng sẽ muốn xem xét giảm tài sản cục bộ và bộ nhớ đệm thích hợp. Một điều mà bạn có thể làm là sử dụng các plugin CDN. Đây là hai tôi muốn giới thiệu:
'corePHP' jomCDN - https://www.corephp.com/j Joomla-products/jomcdn
CDN NoNumbers cho Joomla! - http://www.nonumber.nl/extensions/cdnforj Joomla
Ngoài ra nếu không có điều nào ở trên có vẻ giải quyết được các vấn đề bạn có thể gặp vấn đề sâu hơn - có thể trong mẫu của bạn, chính máy chủ hoặc những thứ khác. Nếu đó là trường hợp tốt nhất có thể thuê một người nào đó để tìm ra vấn đề và giải quyết nó cho bạn.
Bạn cũng có thể sử dụng mã này trong tệp .htaccess của mình:
RewriteEngine On
RewriteCond %{HTTP_Host} ^www.your domain [nocase]
RewriteRule ^(.*) http://your domain/$1 [last,redirect=301]
RewriteEngine on
<ifmodule mod_deflate.c>
AddOutputFilterByType DEFLATE text/text text/html text/plain text/xml text/css application/x-javascript application/javascript text/javascript
</ifmodule>
<IfModule mod_expires.c>
ExpiresActive On
ExpiresByType image/jpg "access 1 year"
ExpiresByType image/jpeg "access 1 year"
ExpiresByType image/gif "access 1 year"
ExpiresByType image/png "access 1 year"
ExpiresByType text/css "access 1 month"
ExpiresByType text/html "access 1 month"
ExpiresByType application/pdf "access 1 month"
ExpiresByType text/x-javascript "access 1 month"
ExpiresByType application/x-shockwave-flash "access 1 month"
ExpiresByType image/x-icon "access 1 year"
ExpiresDefault "access 1 month"
</IfModule>
Tôi đã tạo thêm hàng trăm trang web bằng Joomla!
Trong hầu hết các trường hợp, mọi người nghĩ rằng Joomla đang làm việc rất nhiều trên máy chủ, nhưng theo các phân tích được thực hiện bởi tôi, điều quan trọng nhất để giữ cho trang web của bạn NHANH CHÓNG là TỐI ƯU HÓA HÌNH ẢNH và JS/CSS.
Đừng sử dụng các trình soạn thảo Joomla, như JCE, để chỉ thay đổi kích thước của hình ảnh. Sử dụng các trình chỉnh sửa hình ảnh như photoshop hoặc bất kỳ trình chỉnh sửa nào khác để thay đổi kích thước hình ảnh của bạn theo kích thước cần thiết!
Chúng tôi luôn sử dụng Công cụ Pingdom để phân tích tốc độ trang web và chúng tôi sử dụng tính năng tích hợp của T3 Framework để tối ưu hóa JS/CSS!
Bạn đã loại bỏ các plugin không sử dụng? Joomla phải tải và xử lý mọi plugin được xuất bản cho các sự kiện được kích hoạt trong một yêu cầu.
Bạn phải hiểu các tiện ích mở rộng bạn đã cài đặt và cách chúng tương tác với Joomla!
Nhiều tiện ích mở rộng cài đặt các plugin quản lý nội dung, hệ thống hoặc hoạt động của người dùng để bắt đầu các chức năng mã. Một số trong số họ có thể là thừa.
Tôi biết rằng k2 cài đặt nhiều plugin đáp ứng các sự kiện liên quan đến ngôn ngữ không tạo ra đầu ra thực sự cho các trang web ngôn ngữ đơn lẻ. Không công bố những plugin đó có thể giảm thời gian xử lý.
Có thể đó không phải là câu trả lời mà OP đang tìm kiếm nhưng đáng nói đến trong trường hợp không rõ ràng với mọi người (và chưa có câu trả lời nào khác đề cập đến vấn đề này): cải thiện tài nguyên máy chủ như bộ nhớ, CPU và tốc độ ổ đĩa.
Nếu bạn đang sử dụng lưu trữ web được chia sẻ, việc nâng cấp từ kế hoạch "kinh tế" lên kế hoạch "kinh doanh" hoặc kế hoạch nâng cao khác có thể cải thiện tài nguyên máy chủ có sẵn cho trang web của bạn và giảm thời gian phản hồi của máy chủ. Chuyển đến một công ty lưu trữ chất lượng tốt hơn (ví dụ: với các máy chủ lưu trữ web chia sẻ ít đông đúc hơn) cũng có thể giúp ích.
Một kế hoạch lưu trữ tốt hơn cũng có thể cung cấp cho bạn quyền truy cập vào các cải tiến hiệu suất không được bao gồm trong kế hoạch lưu trữ cơ bản. Ví dụ: gói lưu trữ SiteGround "GrowBig" và "GoGeek" bao gồm bộ đệm động giúp giảm đáng kể thời gian phản hồi của máy chủ. Tùy chọn bộ đệm động không khả dụng trong gói "Khởi động".