Giảm thời gian phản hồi của máy chủ web như thế nào

giảm thời gian phản hồi của máy chủ web

Thời gian phản hồi của máy chủ là gì?

  • Thời gian phản hồi của máy chủ (server response time) là lượng thời gian cần thiết để máy chủ web phản hồi yêu cầu (request) từ trình duyệt.

thời gian phản hồi của máy chủ

Không thành vấn đề trang web của bạn được tối ưu hóa tốc độ như thế nào, nếu máy chủ web của bạn phản hồi chậm thì trang web của bạn sẽ hiển thị chậm.

Google nói rằng: Bạn cần phải giảm thời gian phản hồi của máy chủ xuống dưới 200ms (0,2 giây). Xem thêm hướng dẫn tăng tốc website theo Google Speed Insights.

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

Có hai cách cơ bản:

  • Học hỏi – để sử dụng hosting của bạn hiệu quả hơn (hãy tiếp tục đọc)
  • Chi tiền – chi trả nhiều hơn cho hosting và phần cứng

Bài viết này sẽ giúp bạn xác định được điều gì là tốt nhất trong tình huống của bạn. Cũng như mọi thứ khác với người quản trị web, đây là quyết định giữa thời gian & tiền bạc.

Các yếu tố tác động đến thời gian phản hồi máy chủ?

Có bốn yếu tố chính kết hợp với nhau để xác định thời gian phản hồi máy chủ web của bạn:

  • Lưu lượng truy cập web – Càng nhiều truy cập, càng nhiều vấn đề.
  • Tài nguyên website sử dụng – Nếu mỗi trang web của bạn sử dụng ít tài nguyên hơn, bạn có thể cải thiện thời gian phản hồi máy chủ và không tốn kém tiền của.
  • Phần mềm máy chủ web – Nếu bạn thay đổi phần mềm máy chủ web hoặc chỉnh sửa cấu hình đúng cách bạn có thể cải thiện thời gian phản hồi máy chủ và không tốn kém tiền của.
  • Web hosting – Nếu bạn có thể cải thiện chất lượng của web hosting bạn có thể cải thiện thời gian phản hồi máy chủ nhưng lần này bạn sẽ phải chi thêm tiền.

Lưu lượng truy cập website

lưu lượng truy cập website

Khi một trang web có nhiều lưu lượng truy cập hơn, nó sử dụng nhiều tài nguyên máy chủ hơn. Một trang web khi có ít truy cập có thể lướt nhanh chóng, nhẹ nhàng, nhưng khi lưu lượng truy cập tăng lên nó có thể trở nên chậm chạp, ì ạch.

Lưu lượng truy cập ảnh hưởng đến thời gian phản hồi máy chủ như thế nào?

Giống như một cửa hàng bán đồ ăn, một máy chủ web chỉ có thể phục vụ một số người nhất định tại một thời điểm. Thời gian phục vụ cho mỗi người càng dài, càng có ít người được phục vụ. Càng nhiều nguồn tài nguyên được dùng để phục vụ mọi người sẽ có càng ít tài nguyên cho những thứ hỗ trợ đằng sau như PHP hoặc những thứ khác có thể cần để phục vụ người dùng của bạn.

Trong vấn đề cửa hàng ăn, nếu có càng nhiều người đứng ở quầy để nhận đơn hàng thì sẽ càng có ít người tương ứng ở bếp để nấu năn.

Sử dụng tài nguyên trang web

bộ nhớ đệm trình duyệt

Từng thứ mà trang web của bạn sử dụng để hiển thị sẽ bổ sung thêm ít nhiều gánh nặng cho máy chủ đang dùng. Trung bình một theme WordPress có khả năng sẽ tải một số stylesheet, vài đoạn javascript và các tài nguyên khác từ máy chủ của bạn như ảnh chẳng hạn.

Điều đó có nghĩa là mỗi lượt truy cập website bạn có khả năng sử dụng máy chủ web hàng chục lần. Điều đó cộng dồn lại.

Giá trị của việc sử dụng ít nguồn tài nguyên cho mỗi lần xem trang

Bây giờ tôi sẽ đưa ra một ví dụ được đơn giản hóa đi rất nhiều. Giả dụ một máy chủ web có khả năng xử lý chính xác 100 yêu cầu mỗi giây. Trong một giây bạn có thể phục vụ…

  • Bốn người ghé thăm trang, mỗi người sử dụng 25 tài nguyên
  • Mười người ghé thăm trang, mỗi người sử dụng 10 tài nguyên
  • Hai mươi năm người ghé thăm trang, mỗi người sử dụng 4 tài nguyên
  • Một trăm người ghé thăm trang không sử dụng tài nguyên bổ sung

Trong ví dụ rất đơn giản hóa này, người quản trị web sử dụng tài nguyên trang một cách khôn ngoan có thể cải thiện sức chứa của máy chủ hơn rất nhiều. Không những máy chủ web có khả năng phục vụ được nhiều hơn, nó còn phản hồi nhanh hơn, bởi vì yêu cầu tải của nó đã giảm xuống.

Để biết được có bao nhiêu yêu cầu mà trang của bạn tạo ra, bạn có thể sử dụng công cụ này: https://varvy.com/tools/requests/ nó sẽ cho bạn biết có bao nhiêu nguồn tài nguyên trang sử dụng mỗi khi nó được tải.

Làm thế nào để giảm lượng tài nguyên trang sử dụng

giảm lượng tài nguyên trang sử dụng

Trang của bạn càng sử dụng ít tài nguyên như css, javascript, vân vân nó càng tải nhanh hơn và làm giảm căng thẳng cho máy chủ web.

  • Kết hợp các file CSS ngoài – Nhiều theme và các thiết kế khác chia tách CSS thành nhiều file khác nhau, nhưng tất cả CSS có thể được kết nối thành một file, nhờ thế trang sẽ gọi ít tài nguyên hơn
  • Kết hợp các file javascript ngoài – Cũng giống như CSS, javascript trang bạn sử dụng có thể được đặt hết vào trong html hoặc trong một file kết hợp bên ngoài. Nhưng thường thì chúng lại được chia tách và điều này có thể tạo ra các lần gọi tới máy chủ lãng phí
  • Tải lười / Trì hoãn tải ảnh – Trì hoãn tải ảnh làm trang web của bạn hiển thị nhanh hơn do không phải tốn thời gian gọi và tải xuống từng bức ảnh trước khi hiển thị trang.
  • Nội tuyến các CSS và Javscript nhỏ – Trong một số trường hợp, bạn thậm chí không cần có CSS và Javascript ở file bên ngoài làm gì. Nếu bạn thêm chúng vào trong chính file HTML, thì bạn đã giảm được nhiều lần gọi rồi. Tôi có thảo luận về cách làm điều này với CSS và Javascript ở các bài tương ứng.
  • Sử dụng keep-alive một cách khôn ngoan – Đảm bảo rằng bạn biết máy chủ web của bạn đang sử dụng keep-alive như thế nào, vì nó có thể thực sự ảnh hưởng đến cách máy chủ của bạn đáp ứng yêu cầu.

Tuân thủ các thực hành đúng để tăng tốc độ website sẽ giúp bạn gia tăng số lượng người mà máy chủ của bạn có thể phục vụ. Giảm số lượng các file mỗi trang cần gọi sẽ giúp giảm gánh nặng công việc mà máy chủ cần làm.

Web hosting

máy chủ web

Cần đảm bảo rằng bạn có máy chủ web thích hợp cho nhiệm vụ. Bước đầu tiên cần đảm bảo là bạn không làm các nguồn tài nguyên của mình quá mỏng manh.

Nếu bạn giống tôi, bạn cũng sẽ bắt đầu mua một host rẻ nhất có thể.

Nếu đúng như vậy, nếu giờ bạn có nhiều lưu lượng truy cập hơn bạn sẽ phải nâng cấp hosting của mình. Dưới đây là một số suy nghĩ và gợi ý tổng quan của tôi về vấn đề lựa chọn hosting.

WordPress hosting

Sự thật là nếu bạn sử dụng WordPress sẽ là khôn ngoan nếu bạn mua hosting chuyên cho WordPress. Hosting kiểu này sẽ được tối ưu hóa để giải quyết các vấn đề thường hay đi kèm với WordPress và rắc rối liên quan đến nội dung động. Một host WordPress tốt thường có giá khởi điểm từ 20 đến 30 đô la một tháng.

  • WP Engine (gợi ý của Varvy)
  • Dreampress (Deamhost/gợi ý của Đức Anh)

Share hosting

Share hosting là lựa chọn có tính kinh tế cho người mới. Nhìn chung tôi nghĩ rằng share host tốt sẽ có giá quanh mốc 5 đô la một tháng. Bạn có thể có gói hosting rẻ hơn, nhưng hãy cẩn thận với những lời quảng cáo kiểu như “hosting 99 cent” hoặc điều gì đó tương tự trừ khi nó là một giao dịch cụ thể.

Một công ty cung cấp dịch vụ share host có thể tin cậy được cần phải có mặt trong thị trường vài năm rồi và phải có số điện thoại để bạn có thể liên hệ trong trường hợp cần giúp đỡ. Một vài công ty bán share host mà tôi tin cậy là…

  • Bluehost – Tôi từng sử dụng Bluehost nhiều năm rồi (trong thực tế chính website này lúc bắt đầu “lên sóng” năm 2006, tôi đã sử dụng gói share host của Bluehost cho nó) – ý là website Varvy, website gốc của bài tiêng Anh này.
  • Siteground và Stablehost là hai công ty host khác tôi thấy chất lượng ổn và giá hợp lý / gợi ý của Đức Anh.

VPS hosting

Virtual Private Server / Máy chủ ảo riêng, viết tắt là VPS là bước kế tiếp sau khi bạn bước ra khỏi thế giới share host. Nó có thể yêu cầu nhiều kiến thức, hiểu biết hơn nếu bạn dùng gói VPS tiết kiệm, kinh tế hoặc bạn cần chi phí nhiều hơn để trả cho gói “VPS được quản lý/Managed VPS host”. Giá của VPS giao động trong khoảng từ 20 đến 50 đô la một tháng cho dịch vụ thông thường, nhiều hơn nếu bạn cần nhiều tính năng hơn.

  • KnownHost – Hiện tôi sử dụng VPS SSD của Knownhost cho trang này. Họ cung cấp gói VPS rất ổn định và chắn chắn.

Máy chủ chuyên dụng / Dedicated Server

Một máy chủ chuyên dụng là máy chủ của riêng bạn, và chỉ bạn sử dụng. Nó là bước kế tiếp sau khi bạn vượt qua giai đoạn sử dụng VPS. Giống như VPS, máy chủ chuyên dụng có hai loại là kiểu được quản lý và không được quản lý (nếu bạn biết cách làm việc với máy chủ). Máy chủ chuyên dụng có chất lượng thường có giá từ 90 đến 100 đô la trên tháng. Một số công ty ổn là:

  • Wired Tree
  • KnowHost

Cloud server / Máy chủ đám mây

Nếu bạn không cần giao diện điều khiển (như kiểu cPanel) và bạn biết cách thao tác thì bạn có thể dùng Cloud server. Đó là các lựa chọn tốt khi mà bạn muốn kiểm tra hoặc tạo một máy chủ cho các ứng dụng. Tôi đã từng sử dụng chúng toàn thời gian cho một số dự án. Lựa chọn tốt:

  • Digital Ocean (gợi ý của Varvy)
  • Vultr (gợi ý của Đức Anh)

Mạng phân phối nội dung / CDN

mạng phân phối nội dung

CDN sẽ lưu trữ các file của bạn khắp mọi nơi trên thế giới. Điều này cho phép người dùng ở mọi nơi truy cập được trang web của bạn nhanh hơn bởi vì họ nhận được file từ máy chủ gần hơn với vị trí địa lý của họ.

CDN là lựa chọn tốt khi người dùng của bạn ở khắp mọi nơi trên thế giới hoặc ở một quốc gia rộng lớn. Lấy ví dụ, nếu website của bạn được host ở bờ biển phía đông hoặc bờ biển phía tây Hoa Kỳ, bạn sẽ nhận ra là người dùng ở những nơi khác sẽ thấy sự cải thiện tốc độ nếu bạn bổ sung CDN.

WordPress / PHP sử dụng

WordPress và PHP sử dụng

Các trang WordPress đều sử dụng PHP. Hầu hết các trang này có thời gian phản hồi máy chủ thấp bởi vì thay vì chỉ xử lý một file, máy chủ phải thực hiện các bước kế tiếp khác, thu thập thêm tài nguyên và hoàn thành các nhiệm vụ trước khi phản hồi lại yêu cầu của trình duyệt.

Có càng nhiều thứ mà máy chủ của bạn phải làm để phục vụ người dùng, nó sẽ càng phản hồi chậm hơn cho những người khác. Vì thế nếu bạn có một đoạn mã php trên trang web, bạn cần đảm bảo rằng thứ mà PHP làm phải quan trọng hơn cái giá phải trả là làm trang tải chậm đi.

Cách PHP làm việc về cơ bản là nó sẽ phải hoàn thành hết các tác vụ PHP trước khi trang có thể được hiển thị. Thậm chí nếu bạn có cố “đẩy” nội dung cho người dùng, máy chủ vẫn phải đọc và làm theo các hướng dẫn PHP đó. Có một số lượng đáng ngạc nhiên các website sử dụng PHP không hiệu quả mà chúng có thể thậm chí không cần sử dụng đến nó.

Thời gian cho byte đầu tiên / TTFB / Time to first byte

thời gian cho byte đầu tiên

Thời gian cho byte đầu tiên là lượng thời gian trình duyệt phải đợi để nhận được phản hồi từ máy chủ của bạn sau khi một yêu cầu được gửi đi.

Caching và cấu hình máy chủ web là các yếu tố chủ yếu trong TTFB. Tôi cũng đã viết một bài viết riêng về chủ đề này (xêm thêm: TTFB là gì).

Caching

Người dùng WordPress cần phải đảm bảo rằng họ có thực hiện giải pháp caching. Đây có thể là một bước hiệu quả nhất mà người dùng WordPress có thể thực hiện để đẩy nhanh tốc độ trang của họ và làm máy chủ web thoát khỏi những việc không cần thiết. Để cải thiện hiệu suất hãy thử plugin W3 Total Cache hoặc WP Super Cache.

Lựa chọn và Cấu hình phần mềm máy chủ web

Bạn có chắc là mình sử dụng đúng phần mềm máy chủ web không? Có một vài lựa chọn, và hầu hết chúng đều miễn phí. Ở đây tôi sẽ trình bày một số chọn lựa phổ biến hơn mà tôi từng có kinh nghiệm sử dụng.

  • Apache
  • Nginx
  • Litespeed

Không thành vấn đề là bạn đang sử dụng phần mềm máy chủ web nào, nó đều có khả năng tinh chỉnh đề phù hợp tốt hơn cho mục tiêu riêng của bạn. Nếu bạn không có đủ kiến thức về máy chủ web đang dùng đủ để chỉnh sửa nó, bạn có thể phải thuê ai đó giúp mình.

Chúng ta sẽ cùng xem một số ưu và nhược điểm của từng máy chủ web.

Apache

Apache miễn phí và hiện được sử dụng nhiều nhất để làm máy chủ web. Bởi vì nó sử dụng rất tốt, ngoài ra nó cũng có nhiều tài liệu hướng dẫn phong phú. Một vài khóa học hướng dẫn khá hay trên kinda khuyên bạn nên dùng Apache bởi vì nó được sử dụng bởi tất cả mọi website cách đây không lâu. Cài đặt mặc định của Apache không cho hiệu năng tốt nhất, nhưng nó có nhiều người sử dụng và modules cũng như các add on bổ sung để có thể làm được bất cứ điều gì.

Mục tiêu hiện tại là cải thiện thời gian đáp ứng của máy chủ, và Apache có khả năng cấu hình (tinh chỉnh) cao và rất nhiều người biết cách làm nó thế nào. Apache là lựa chọn an toàn (safe bet) cho bất kỳ trang web nào, nhưng nó cần phải được cấu hình tốt bởi người có kiến thức để phần mềm máy chủ này phát huy tốt nhất khả năng. So với các phần mềm máy chủ web khác, PHP chạy trên Apache với tốc độ trung bình.

Nginx

Máy chủ web Nginx miễn phí và nó là con cưng của hầu hết các trang web có lưu lượng truy cập lớn và cho cả những người lập trình web, bởi vì nó có hiệu năng đáng mơ ước ngay cả khi chỉ sử dụng cài đặt mặc định. Nginx sử dụng ít tài nguyên và vì thế có thể xử lý nhiều lưu lượng truy cập hơn bất kỳ máy chủ web nào khác. Nginx thường có thời gian phản hồi máy chủ nhanh nhất theo kinh nghiệm của tôi. PHP chạy rất nhanh khi sử dụng cùng Nginx.

Litespeed

Máy chủ web Litespeed có cả phiên bản miễn phí và trả phí. Nó nhanh hơn nhiều và có hiệu năng tốt hơn Apache, kèm với lợi ích bổ sung là hoàn toàn tương thích với Apache. Bất kỳ chỉnh sửa cấu hình nào bạn thực hiện với Apache cũng được sử dụng lại bởi Litespeed và nó cũng sử dụng cùng file .htaccess giống như Apache. Điều này nghĩa là việc chuyển sang Litespeed sẽ ít phiền toái hơn nhiều cho người dùng Apache. PHP chạy nhanh hơn đến sáu lần với Litespeed.

Tôi có thể sử dụng điều này thế nào để cải thiện thời gian phản hồi máy chủ?

Tóm lại… Bạn có thể cải thiện đáng kể thời gian phản hồi máy chủ bằng cách thay đổi phần mềm máy chủ web hoặc tinh chỉnh cấu hình nó tốt hơn.

Nếu bạn có tiền, hãy thuê ai đó chỉnh cấu hình mà bạn có hoặc quyết định nên sử dụng cái gì. Nếu bạn không có tiền, bạn buộc phải học hỏi về chúng và tự quyết định lấy cho bản thân mình. Trong thực tế tôi sẽ nói rằng một trong các lợi thế lớn của người không có tiền vượt cả các công ty to bự là khả năng học hỏi, thay đổi và trải nghiệm.

Lựa chọn đúng máy chủ web có thể giải quyết nhiều vấn đề về tốc độ khác chỉ trong một bước và có thể cải thiện rất nhiều thời gian phản hồi máy chủ của bạn. Nó có nghĩa là bạn sẽ phải học hỏi và nghiên cứu. Nhưng bạn có thể làm điều đó.

Nên học cách sử dụng máy chủ nào?

Nhìn chung tôi khuyên bạn học Nginx (miễn phí). Nó là một kỹ năng rất tuyệt nếu bạn học được. Nó cũng có hiệu suất đáng kinh ngạc. Tôi không nghĩ ra được nhiều tình huống mà WordPress cài trên Apache sẽ không cải thiện được đáng kể hiệu năng chỉ bằng cách đơn giản là chuyển sang cài Nginx mà thôi. Tôi đã có được kết quả tuyệt vời với nó, và nó dường như đang chiếm lĩnh các trang web hàng đầu trên thế giới internet.

(Dịch từ bài viết: Server response time – Tác giả: Patrick Sexton – Website: Varvy)

1 thought on “Giảm thời gian phản hồi của máy chủ web như thế nào”

Leave a Comment

Your email address will not be published. Required fields are marked *