Categories Hosting WordPress

Duy trì tính liền mạch và ổn định của Website sử dụng WordPress

dùy trì ổn định cho website WordPress

Website liền mạch và ổn định là một trong các yếu tố quan trọng nhất. Hosting có thể có cấu hình trung bình nhưng nó cần hoạt động ổn định, liên tục trong thời gian dài và phải hiếm khi gặp vấn đề gián đoạn (downtime).

Website chậm tất nhiên là tệ, nhưng gián đoạn thậm chí còn tệ hơn. Bài viết này sẽ đưa ra các giải pháp để bạn hạn chế hiện tượng này.


#1. Theo dõi Uptime của website

Website bị gián đoạn có rất nhiều nguyên nhân, chẳng hạn như:

  • Website tăng lưu lượng truy cập đột biến;
  • Web có tác vụ nền đặc biệt (ví dụ backup) làm gia tăng bất thường RAM, CPU, I/O usage, Bandwidth gây quá tải;
  • Hosting nhà cung cấp gặp vấn đề;
  • Các trang web khác trong hệ thống sử dụng tài nguyên quá mức (ví dụ trên shared hosting);
  • DNS có vấn đề (điều rất hiếm gặp nhưng không phải không có);
  • Vân vân.

Nhưng trước khi biết nguyên nhân là gì, thì bạn phải nhận biết được website bị gián đoạn đã. Chúng ta không thể cả ngày ngồi bên máy tính nhấn F5 để kiểm tra được, và cũng không nổi tiếng đến mức, bị gián đoạn là người dùng cập nhật lên mạng xã hội hoặc email báo cho biết. Cách tốt nhất là sử dụng các công cụ tự động theo dõi uptime của trang.

Có một số vấn đề cần lưu ý:

  • Intervals nói chung càng ngắn càng tốt. Intervals chính là khoảng thời gian mà hệ thống sẽ kiểm tra website của bạn một lần. Có thể là 5 phút một lần, 1 phút một lần, 30s một lần hay thậm chí là 15s một lần. Nhìn chung 30s đến 1 phút một lần là OK trong phần lớn trường hợp. Có nhiều dịch vụ miễn phí kiểm tra uptime với interval là 5 phút;
  • Bảng thống kê nên kết hợp với tên miền tùy chỉnh để bạn dễ dàng theo dõi mà không cần phải đăng nhập vào hệ thống theo dõi uptime, tuy nhiên cái này thường trả phí mới dùng được hoặc miễn phí thì chỉ giới hạn một website;
  • Nếu nó kết hợp được với việc theo dõi thời gian phản hồi của máy chủ (còn gọi là TTFB) nữa là tốt nhất, thời gian phản hồi tăng bất thường là dấu hiệu cho thấy website bị chậm đi và hosting (hoặc website) có thể gặp vấn đề nào đó.

Để tìm công cụ thích hợp, bạn hãy tìm kiếm từ khóa “check website uptime” hoặc tham khảo một số dịch vụ kiểm tra uptime ở bài viết này.

Khó khăn có thể gặp phải:

  • Đa số dịch vụ check Uptime là dạng freemium, tức là miễn phí nhưng kèm giới hạn, muốn chất lượng tốt hơn thì cần trả phí, nhưng cũng không tốn lắm nếu website của bạn là dạng thương mại (hoặc bạn có rất nhiều website), tầm từ 5$ – 10$/tháng. Nếu bạn muốn dịch vụ free có thể thử Freshworks hoặc plugin JetPack (công cụ ưa thích của tôi).

#2. Sử dụng DNS ổn định

DNS là dịch vụ phân giải tên miền. Trước khi người dùng thấy được nội dung của bạn, trình duyệt phải hỏi DNS địa chỉ IP hosting của tên miền là gì.

Thông thường chúng ta hay sử dụng DNS của nhà cung cấp tên miền, tiếp theo là DNS của dịch vụ hosting, tuy nhiên cả hai thường gặp (một số) vấn đề:

  • Thời gian phản hồi không được nhanh;
  • Cập nhật các bản ghi chậm (đây là vấn đề chính, bạn sẽ thấy rắc rối này khi đổi hosting);
  • Uptime có thể không đạt được giá trị mong đợi, đặc biệt là DNS của hosting.

DNS là dịch vụ tương đối ổn định, ngay cả trường hợp bị gián đoạn, thường cũng không kéo dài quá vài tiếng (phổ biến là do bị tấn công), tuy nhiên nếu có được dịch vụ DNS cả năm không bị gián đoạn hoặc có bị cũng chỉ vài phút thì tại sao chúng ta không dùng.

Ý tôi muốn nói đến dịch vụ DNS trung gian. Nó có cả dịch vụ trả phí và miễn phí.

Bạn có thể theo dõi tốc độ và uptime của các dịch vụ DNS phổ biến (bao gồm tất cả các kiểu DNS) ở liên kết này: dnsperf.com – có thể thay đổi theo khu vực để biết tốc độ/uptime của từng nơi, chẳng hạn chọn Asia để biết chất lượng DNS ở khu vực châu Á ra sao.

Ở thời điểm hiện tại CloudFlare là dịch vụ DNS miễn phí rất tốt cả ở khía cạnh tốc độ lẫn độ ổn định. Theo thống kê nó thậm chí còn vượt một số dịch vụ trả phí.

Tốc độ DNS ở khu vực Châu Á
CloudFlare nhiều tháng liền là dịch vụ DNS có tốc độ cao nhất, uptime của nó cũng thuộc hàng top đầu

Rất nhiều website lớn nhỏ dùng DNS của CloudFlare, chẳng hạn canhme.com, thachpham.com, backlinko.com, moz.com và có cả kiencang.net

Backlinko dùng DNS của CloudFlare

Bạn có thể kiểm tra website nào đấy dùng DNS server ở đâu bằng cách vào website: mxtoolbox.com vào phần DNS và gõ tên miền vào ô như hình dưới đây:

kiểm tra DNS server

Ngoài trang trên, bạn có thể dùng trang này để kiểm tra DNS: dnschecker.org/ns-lookup.php

kiểm tra DNS server

Ở Việt Nam, tôi thấy một số doanh nghiệp trực tuyến lớn sử dụng DNS có phí của Amazon, có tên Amazon Route 53 – đây cũng là dịch vụ DNS có chất lượng tốt.

Trường hợp nghiêm trọng nhất liên quan đến DNS là bị tấn công và trỏ hướng đến trang web hoặc nội dung khác. Một trong những ví dụ dễ nhớ nhất là năm 2015, trang chủ Google tìm kiếm Việt Nam bị hacker tấn công DNS. Tuy nhiên hầu như chỉ các website nổi tiếng là bị tấn công theo cách này, còn website còm còm như đa số chúng ta thì hiếm ai để ý.

Khó khăn có thể gặp phải:

  • Bạn có thể không quen với việc chỉnh sửa các bản ghi A, CNAME, vân vân trong DNS. Hãy nhờ người có chuyên môn nếu cần. Hoặc bạn có thể tự học, vì nó không khó, chỉ cần hiểu căn bản là tự làm được. Dù sao nếu bạn tìm đọc những bài như thế này thì tôi tin là bạn tự tìm hiểu được 😉

#3. Sử dụng CDN khi cần thiết

Một trong các lý do hàng đầu gây gián đoạn website là nó bị quá tải. Chẳng hạn hosting của bạn được thiết kế để có khả năng chịu đựng được 200 người truy cập đồng thời, bỗng một hôm ai đó chia sẻ nội dung hấp dẫn của bạn lên Facebook hoặc diễn đàn nào đó, rồi nó nhận được hàng ngàn truy cập đồng thời. Kết quả website bị downtime (phúc lại thành họa!).

CDN sẽ giúp khắc phục (hoặc ít nhất là hạn chế) hiện tượng này (tìm hiểu CDN là gì ở đây), vì nó sẽ phục vụ các tài nguyên tĩnh như ảnh, CSS và JS qua máy chủ phân tán; host của bạn chỉ phải phục vụ người dùng file HTML qua đó giảm tải đi rất nhiều cho host gốc.

Ưu điểm của CDN là nó có khả năng mở rộng gần như vô tận. Tức là website của bạn đột ngột tăng lưu lượng truy cập lên 10 hay 100 lần không thành vấn đề với CDN, nó vẫn đáp ứng được (hệ thống CDN gồm rất nhiều máy chủ liên kết với nhau, một máy chủ có vấn đề, dữ liệu sẽ được chuyển hướng sang máy chủ khác đang hoạt động bình thường).

Một số dịch vụ CDN có chất lượng tốt:

Bảng giá của BunnyCDN
Trong các dịch vụ CDN trả phí, BunnyCDN nằm trong nhóm có giá hấp dẫn nhất, trong khi chất lượng dịch vụ vẫn tốt

Nếu sử dụng CDN trả phí là trở ngại với bạn, hãy tham khảo nhiều dịch vụ CDN miễn phí có chất lượng ổn trong bài viết này: kiencang.net/giam-tai-cho-host-yeu/

Để tăng khả năng chịu tải bạn nên kết hợp với plugin Cache + lazy load ảnh (khi phù hợp, ví dụ khi trang của bạn có nhiều ảnh).

Khó khăn có thể gặp phải:

  • Triển khai CDN hoàn chỉnh, không ảnh hưởng đến SEO, tối ưu nhiều thành phần khác có thể mất thời gian tìm hiểu. Bạn có thể đọc bài viết sau để biết về những rắc rối có thể xảy ra cũng như cách khắc phục: kiencang.net/rac-roi-cdn/
  • BunnyCDN hiện là dịch vụ CDN mà tôi cho là rất tiện cho cả những người không quá am hiểu về công nghệ, các cài đặt của nó chỉ là gạt nút từ trái sang phải, bạn không cần am hiểu về code để sử dụng nó chính xác và đạt hiệu suất tốt nhất.

Một số plugin và dịch vụ CDN thích hợp sẽ giúp bạn tích hợp đơn giản và dễ dàng hơn rất nhiều các sản phẩm khác.


#4. Lúc nào cũng cần có Backup

Tại sao bạn cần bảo hiểm y tế? Để khi ốm bệnh nặng bạn tiết kiệm được rất nhiều chi phí so với số tiền bảo hiểm đóng hàng năm.

Backup cũng như vậy. Nó lưu trữ các bản dự phòng hoàn chỉnh của website, phòng khi có trường hợp không may bạn có thể khôi phục lại website ban đầu nhờ dữ liệu dự phòng.

Các trường hợp không may làm hỏng dữ liệu có rất nhiều:

  • Website bị tấn công và ai đó phá hoại nội dung website;
  • Bạn thử nghiệm plugin và thao tác nhầm lẫn ở đâu đó làm website không thể truy cập được;
  • Hosting có vấn đề làm mất toàn bộ dữ liệu của bạn;
  • Vân vân.

Có nhiều plugin, ứng dụng cả miễn phí lẫn trả phí giúp bạn backup website. Hai công cụ tôi ưa thích là:

  • UpdraftPlus (freemium): bản miễn phí của nó có chất lượng rất tốt, kết hợp với Google Drive làm nơi lưu trữ dữ liệu;
  • Jetpack Backup: có phí, với gói rẻ nhất khoảng 3$/tháng. Ưu điểm là có thể khôi phục dữ liệu nhanh trong trường hợp mất dữ liệu.

Lưu ý khi lựa chọn:

  • Nên chọn tần số backup vừa phải, gần với tần số bạn viết bài mới. Trong nhiều trường hợp, backup hàng tuần là lựa chọn phù hợp;
  • Nên backup vào khoảng thời gian có ít người dùng truy cập website nhất để thao tác này không làm ảnh hưởng đến tốc độ trang. Nếu khách của bạn chủ yếu truy cập ban ngày thì nên chọn thời gian backup vào ban đêm;
  • Backup đầy đủ dữ liệu từ ảnh, theme, cơ sở dữ liệu, vân vân, nghĩa là bạn nên backup website hoàn chỉnh thay vì chỉ một phần.

Khó khăn có thể gặp phải:

  • Nếu lượng dữ liệu lớn mà các gói lưu trữ dữ liệu miễn phí không đủ nên cân nhắc mua thêm dung lượng lưu trữ, chẳng hạn như Google Drive có giá tương đối tốt. Cách khác là giãn thời gian backup (chẳng hạn 15 ngày hoặc 1 tháng một lần) hoặc giảm số lượng lưu trữ phiên bản backup xuống (chẳng hạn từ 5 bản xuống 2 bản), nhưng cách này chỉ nên áp dụng nếu việc này không ảnh hưởng quá nhiều đến tính an toàn của dữ liệu;
  • Các dịch vụ backup miễn phí thường không có lựa chọn thời gian backup. Chẳng hạn UpdraftPlus (bản miễn phí) cho phép chúng ta lên lịch cụ thể cho ngày backup nhưng giờ chính xác thì không. Trong khi backup lại là hoạt động ăn tài nguyên hosting khá lớn, cái này càng đúng khi dữ liệu trang của bạn càng nhiều. Bạn có thể dùng plugin WP Crontrol để chỉ định cụ thể thời gian cụ thể (thường nên chọn lúc website rảnh rỗi nhất, đa số sẽ vào nửa đêm, bạn dùng Google Analytics để biết thông tin này).

Biểu đồ bên dưới cho thấy plugin backup UpdrafPlus trong lúc hoạt động tiêu hao tài nguyên ở mức độ nào. Tùy tình huống mà mức CPU có thể tăng thêm 30 – 50% toàn bộ tài nguyên, RAM có thể tăng thêm 5 – 15% toàn bộ tài nguyên. Biểu đồ này là trên VPS DigitalOcean, 1AMD, RAM 2GB. Dữ liệu website khoảng 2GB, gồm 1200 bài viết:

CPU trong lúc backup
RAM trong lúc backup

Để giảm tối đa ảnh hưởng của hoạt động backup lên website (vì dù sao chúng ta không được phép bỏ hoạt động này, nhưng dùng nó khéo hơn thì nó sẽ đỡ ảnh hưởng hơn):

Link vừa dẫn ở trên có hướng dẫn để bạn chọn khung giờ backup theo ý muốn cho plugin UpdraftPlus (bản free không có tính năng này, bạn cần cài thêm plugin khác để điều chỉnh giờ).


#5. Sử dụng công cụ chuyển host nhanh gọn

Chuyển host như chuyển nhà vậy, chẳng phải là việc nhẹ nhàng gì và có thể rất tốn thời gian. Khoảng thời gian để chuyển chính là khoảng thời gian bị gián đoạn, và bạn cần phải hạn chế nó càng thấp càng tốt. Một số trang web kinh doanh chẳng hạn, gián đoạn 2 – 3 tiếng đồng hồ có thể trả giá bằng vài triệu đồng giá trị đơn hàng.

Có nhiều lý do để chuyển host, ví dụ:

  • Hosting bạn đang dùng gặp vấn đề thường xuyên và bạn muốn chuyển sang nhà cung cấp mới;
  • Hosting bạn đang dùng đột ngột gặp vấn đề gián đoạn kéo dài, dù chưa rõ nguyên nhân, bạn vẫn cần phải chuyển tạm thời sang host mới.

Công cụ tôi ưa thích là:

  • UpdraftPlus: nó miễn phí, tuy nhiên có thể mất từ 30 phút đến 1 tiếng (hoặc hơn) để chuyển (tùy dung lượng website và thời gian bạn làm quen với hosting mới). Đầu tiên là tải tất cả các file mà nó backup được về, sau đó up ngược lên host mới để khôi phục
  • All-in-One WP Migration bản có phí: rất nhanh, ngay cả với website có dung lượng lớn, bạn có thể chỉ mất 15 phút di chuyển. Nó cũng giúp hạn chế các lỗi vì chỉ có 1 file backup duy nhất được gói gọn. Không giới hạn số lượng website.

Khó khăn có thể gặp phải:

  • Bạn có thể cảm thấy tiếc tiền khi mua plugin chất lượng, chẳng hạn vì việc chuyển host hiếm khi xảy ra với bạn. Không sao, dùng các công cụ miễn phí cũng rất ổn, bạn chỉ mất thời gian hơn đôi chút và cần cẩn thận hơn trong khi thao tác.

#6. Chọn hosting chất lượng cao

Đây là giải pháp quan trọng nhất giúp hạn chế gián đoạn. Tuy nhiên tôi để gần cuối vì đâu phải chúng ta cứ muốn mua hosting chất lượng cao là được, chi phí luôn là vấn đề.

Shared hosting thường gặp rắc rối do các website khác cùng được host trong gói đó, trong khi các gói host chất lượng sẽ được phân bổ tài nguyên độc lập và tránh ảnh hưởng từ những người hàng xóm ồn ào.

OK, giả dụ bạn có khả năng chi trả tốt, hãy để ý đến 2 gói hosting sau:

  • VPS: đây nhìn chung là cách tiết kiệm nhất để có gói hosting tốt, tuy nhiên đòi hỏi bạn phải am hiểu một chút về kỹ thuật để tự cài đặt các công cụ. Nếu bạn cần một gợi ý nhanh, hãy thử VULTR hoặc DigitalOcean, UpCloud;
  • Gói chuyên cho WordPress được quản trị: nếu không muốn mất thời gian tìm hiểu nhiều thứ thi đây là gói phù hợp nhất. Các chuyên gia đứng đằng sau đã làm gần như mọi thứ rồi, bạn chỉ phải móc hầu bao (!) và tạo nội dung thôi. Dĩ nhiên giá của nó đắt hơn VPS cho cấu hình tương đương, có thể từ 2 đến 5 lần. Nếu bạn cần gợi ý nhanh, hãy thử Closte, Rocket.net.

Ít tiền mà muốn mua hosting tốt có được không?

Câu hỏi khó này. Đợt tôi thiếu tiền, tôi cũng thử xem có giải pháp nào không, và nhận thấy là rất khó khăn để tìm được nơi ưng ý. Tuy nhiên mãi thì cũng ra. Bạn có thể thử gói shared hosting của Namecheap– nó có giá khá mềm, host được tầm 5 – 7 trang thoải mái. Kết hợp với CDN và QUIC cloud nữa vẫn cho tốc độ rất ổn.

Khó khăn có thể gặp phải:

  • Thứ nhất là tiền, nhưng ngay cả khi không phải lo lắng nhiều về kinh phí thì bạn cũng sẽ phải đối diện với việc có quá nhiều lựa chọn: Dịch vụ nào cũng nói bản thân họ là cái có chất lượng hàng đầu thế giới và tốt nhất với bạn! Bạn có thể tham khảo thêm bài viết này để đỡ bối rối: Chọn mua hosting cho WordPress.

#7. Dọn dẹp cơ sở dữ liệu/database

Cơ Sở Dữ Liệu (CSDL) hiếm khi là vấn đề nếu bạn có website nhỏ hoặc/và mới chỉ trực tuyến chưa đến 1 năm. Nhưng nếu ngược lại:

  • Bạn có website có lưu lượng truy cập lớn;
  • Bạn có website với rất nhiều bài viết;
  • Bạn có website vài năm tuổi rồi;
  • Bạn từng thử nghiệm nhiều theme, plugin.

4 đặc điểm trên hay đi song hành với nhau, và dù bạn chỉ cần có một đặc điểm thôi, tôi khuyên hãy thử dọn dẹp, làm sạch CSDL WordPress. Cơ sở dữ liệu quá lớn và dư thừa nếu nhẹ thì làm chậm website, còn nếu nặng có khả năng làm gián đoạn truy cập.

Plugin giúp bạn làm điều này rất tốt có tên: Advanced Database Cleaner. Nếu có kinh nghiệm bạn nên kết hợp tối ưu hóa theo cách thủ công kết hợp với plugin để cho kết quả tốt nhất.

Nếu bạn cần một bài viết căn bản, đầy đủ về tối ưu hóa database trong WordPress thì hãy tham khảo bài này.

P/S: Website Kiến càng đã loại bỏ được hơn 20% dữ liệu dữ thừa trong CSDL, một website khác của khách hàng thậm chí còn loại bỏ được hơn 70%! Không những thế nhiều cron jobs và options vô ích khác cũng được loại trừ.


#8. Kết luận

Có rất nhiều công cụ được đề cập trong bài viết này, nhưng tôi hy vọng bạn nắm được ý tưởng đằng sau mỗi công cụ cụ thể đó. Vì công cụ sẽ thay đổi, Cloudflare giờ có thể là DNS rất tốt, nhưng ngày mai có khi lại là DNSsimple;

BunnyCDN hiện có giá rất cạnh tranh, nhưng năm sau có thể dịch vụ ABC CDN nào đó soán ngôi. Nắm được ý tưởng giúp bạn linh hoạt và luôn chọn được thứ phù hợp vào bất kỳ thời điểm nào.

Back to Top