it-swarm-vi.com

Làm thế nào để cải thiện thời gian phản hồi của máy chủ?

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.

17
web-tiki

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ư PageSpeedYSlow 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.

PHP

  1. 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.

  2. 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.

  3. 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_globalsmagic_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.

  4. 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

Máy chủ web

  1. 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.

  2. 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.

  3. 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.

  4. 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.

Apache

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:

  1. Vô hiệu hóa AllowOverride

    Đặt AllowOverride thành None sẽ ngăn rất nhiều đĩa IO và

Joomla

  1. 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.

  2. 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.

  3. 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ý.

  4. 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.

  5. 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

  6. 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.

Linh tinh

  1. Đặ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.

  2. 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?

Tiên tiến

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ể.

25
Rouven Weßling

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: enter image description here

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.

13
Don Gilbert

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.

8
Ashwin Date

Những điều tôi biết có thể giúp ích (hầu hết trong số đó đã được liệt kê) là:

  1. Bộ nhớ đệm
  2. Nén (gzip tệp css và js của bạn)
  3. Kết hợp các tệp (tất cả css của bạn được kết hợp thành một tệp)
  4. Giảm tải hình ảnh và tập tin vào CDN.

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 đó.

6
Brian Peat

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.

4
Steven Pignataro

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>
3

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!

Sử dụng các công cụ nén JS/CSS.

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!

2
Gev Balyan

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ý.

1
Joomsavvy

Cải thiện tài nguyên gói máy chủ/web Hosting

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".

1
Neil Robertson