Hiện tại có rất nhiều hướng dẫn cấu hình để có thể tạo được VPS chịu tải lớn trên mạng thông qua load balancing, optimize các services… Hôm nay, mình sẽ hướng dẫn các bạn một cách khác sử dụng kết hợp HocVPS Script, Zend Opcache, Memcache để có thể xây dựng được VPS có thể chịu được hàng nghìn người online cùng lúc.

Mình đã thử cài đặt VPS ở Vultr với gói 0.022$/giờ ~ 15$/tháng, 2 CPU, 2GB RAM thấy có lúc online đến 4k (theo thống kê Google Analytics) vẫn chạy ổn. Tiếc là ko có điều kiện test lâu dài xem thực tế sức chịu đựng của VPS như thế nào.

Hình ảnh chụp lúc online 4.363 người ngày 12/11/2014, đo bằng Google Analytics, site tin tức bằng WordPress:

43633

Số lượng người online nhiều như vậy nhưng chỉ sử dụng hết 20% CPU, RAM còn thừa rất nhiều, nếu hoạt động hết công suất không biết lên đến mấy k online nữa 🙂

1. Cài đặt HocVPS Script

hocvps script

Sử dụng HocVPS Script bạn sẽ được tự động cài đặt và tối ưu LEMP server trên CentOS. Trước khi tiến hành cài đặt, nhớ chọn hệ điều hành CentOS, location Japan ở Vultr để có tốc độ về Việt Nam nhanh nhất.

Ngoài ra bạn nên tạo thêm swap 1GB cho VPS (thường swap gấp đôi hoặc ~ RAM)

Các bước cài đặt thực hiện tương tự như hướng dẫn cài đặt HocVPS Script.

2. Cài đặt Zend Opcache

Zend OPcache

Mục đích sử dụng Zend OPcache để tối ưu và tăng tốc PHP, điều này đặc biệt quan trọng và bắt buộc phải cài với những VPS có số lượng người online lớn. Qua đó giảm thiểu hoạt động của CPU và giảm đáng kể số lượng RAM mà PHP sử dụng.

HocvPS Script đã tự động cài đặt Zend OPcache giúp bạn, giờ chỉ cần điều chỉnh lại các tham số cho phù hợp với nhu cầu sử dụng của bạn mà thôi.

Bạn hãy theo dõi tình hình thực tế khi chạy VPS với 1 trình web viewer, ví dụ opcache-gui (server cài HocVPS thì đường dẫn là http://domain.com:port/op.php). Tăng hoặc giảm bộ nhớ làm sao giữ cho memory usage <= 70% là ổn, bộ nhớ còn trống sẽ được dùng cho các việc khác.

Lưu ý Bước tiếp theo bạn có thể dùng plugin cache như WP Super Cache hoặc Memcached với W3 Total Cache (bước 3 và 4). Nên thử với WP Super Cache trước, vì đa phần các website chỉ cần plugin này là đủ, mà cài đặt lại đơn giản.

3. Cài đặt Memcached

VPS-Memcached-WP-Site-Speed

Memcached mình sử dụng để cache query database, object và page cache. Thông thường, các dữ liệu trên thường được cache bằng cách sử dụng disk, nhưng memcached lưu thông tin trên RAM nên hiệu suất và tốc độ được tăng lên rất nhiều.

Các bạn thực hiện theo như hướng dẫn cài đặt memcached. Trong phần Cấu hình Memcached lưu ý tăng thông số MAXCONN="1024" thành MAXCONN="10240"

nano /etc/sysconfig/memcached

PORT="11211"
USER="memcached"
MAXCONN="10240"
CACHESIZE="64"
OPTIONS=""

Tương tự như Zend OPcache bên trên, bạn nên sử dụng tool theo dõi phpMemcachedAdmin, điều chỉnh đảm bảo cho bộ nhớ <= 70%, tránh việc thừa quá nhiều RAM (như blog Học VPS do chỉ là WordPress nên dành 64MB RAM cho memcached).

Ở bước cuối bạn không cần thiết phải cài plugin WP-FFPC cho WordPress vì chúng ta sẽ sử dụng plugin W3 Total Cache như hướng dẫn bên dưới.

4. Cấu hình W3 Total Cache

Để đảm bảo mọi thứ hoạt động trơn tru, các bạn hãy sử dụng plugin W3 Total Cache. Bình thường mình vẫn hay sử dụng plugin WP Super Cache vì nó đơn giản, dễ dùng và cũng rất hiệu quả (Canh Me hiện đang dùng). Tuy nhiên khi đã sử dụng đến Memcached, bạn bắt buộc phải chuyển qua W3 Total Cache hoặc WP-FFPC.

W3 Total Cache

Sau khi cài đặt xong plugin, các bạn hãy kích hoạt Page Cache, Database cache và Object Cache sử dụng method là Memcached. Ngoài ra, cũng cần kích hoạt Browser Cache và CDN nếu có thể.

Hãy nhấn vào từng mục để có thể cấu hình chi tiết cụ thể hơn.

Hi vọng, với bài viết này các bạn sẽ có thể tự build được 1 VPS chịu tải tốt. Đừng quên để lại comment bên dưới thông báo kết quả bạn đạt được sau khi thực hiện nhé.

Update: mình đã loại bỏ ngx_pagespeed khỏi bài viết do không cần thiết.
Tagged:

741 Comments

  1. Việt Hoàng 13 comment

    Cho mình hỏi là 1 CPU, 512M ram có khác gì 1CPU, 1G ram không, trong khi dung lượng ram sử dụng 512M đã tạo swap còn trống nhiều

    1. Việt Hoàng 13 comment

      và tiện cho mình hỏi câu nữa, là cache auto xóa rồi, để time 30p xóa 1 lần và 10p xóa 1 lần cái nào tiết kiệm CPU hơn

  2. Tâm Mập 1 comment

    Anh ơi cho em hỏi VPS sử dụng memcached, cloudflare thì có cần sử dụng thêm Varnish ko anh? Sử dụng như vậy có hiệu quả ko ạ?

    1. Luân Trần Admin

      Mình thấy không cần thiết phải dùng Varnish nữa vì lúc này, CloudFlare đã làm nhiệm vụ cache full page tương tự như Varnish rồi.

    1. Thiên Bình 4 comment

      Mình muốn hỏi thêm là HocVPS Script có chức năng ftp upload qua các phần mềm như filezilla…ko?

    2. Luân Trần Admin

      Bạn thử chạy lệnh hocvps, chọn Phân quyền webserver thử coi còn lỗi không?

  3. Dương 3 comment

    Anh ơi cho em hỏi là em cài Sentora rồi có cài thêm script này được không ạ. Với cả website của em truy cập bình thương nhưng click qua link bất kỳ trên web lại bị không kết nối được rồi 1s sau lại tự động load được link ấy. Nó là bị làm sao vậy a Luân ơi.

    1. Luân Trần Admin

      Không cài song song được nha bạn, chọn 1 trong 2 thôi.
      Domain của bạn là gì mình check thử?

      1. Dương 3 comment

        À. Chỉ khi bật w3 total cache lên mới bị. CÒn không bật thì không sao anh à

      2. Cuong Tran 3 comment

        chao luân, mình cai học vps,luc minh add them website binh thường, sau đó mình cai thêm Optimize Website , sau đó mình add thêm website thì nó chảy vể website root,cho mình hỏi tai sao như vậy được không?

        1. Luân Trần Admin

          Gửi thông tin root vào email mình check nhé, chưa hình dung được server bị làm sao

  4. Trần Tân 4 comment

    Anh Luân cho em hỏi, con VPS của em tầm >70 người truy cập thì Check Netdata CPU nó nhảy 100% (em không biết lỗi gì) RAM còn thừa khá nhiều, site truy cập chậm hẳn

    http://i.imgur.com/XTu8ka4.png

    e dùng VPS của Dediserve gói 2GB RAM, 2 CPU

          1. Luân Trần Admin

            WP thì bắt buộc phải dùng cache, cài WP Super Cache cho đơn giản nhé.

  5. Thanh Nhàn 2 comment

    Anh Luân ơi e cai hocvps nhưng ko cài Memcached và W3 Total Cache
    Khi e vào chỉnh sủa lại css trên web thì trong file đã sửa ok mà trên web lại ko thay đổi gì. e đã xóa cạhe trình duyệt mà vẫ vậy, f12 để xem lại thì file vẫn như cũ mà trong khi đó trên vps đã sưa ok rồi. A chỉ e cách khắc phục vụ này với

  6. Thanh Nhàn 2 comment

    Cảm ơn a. đúng là do CloudFlare thật. sao ảo quá . tắt đi song trỏ lại liệu có ổn ko a nhỉ

    1. Luân Trần Admin

      Vì đó là chức năng cache, CDN của CloudFlare. Bạn có thể vào Purge cache để xóa đi

  7. HaiLua 1 comment

    Dear Admin, Admin có thể tư vấn giúp em để tối ưu ko ạ, mô hình của em dự kiến cài đặt: ClientNginx——IIS (.net)——–MSSQL, Em đang chưa biết tối ưu như nào do chưa có kinh nghiệm về website, mong Admin tư vấn giúp, Em cảm ơn

  8. Thanh 1 comment

    Luân cho mình hỏi, mình muốn tạo sub domain trên hocvps thì mình tạo thế nào bạn? hay là mình thêm website như 1 web mới?

    1. Luân Trần Admin

      Bạn chọn chức năng thêm website bình thường rồi nhập subdomain vào nhé.

  9. bạc đỏ 33 comment

    Ảnh admin chụp là web có nhiều ảnh ko. Nếu web có nhiều ảnh thì phải dùng thêm CDN ko. Nếu dùng CDN thì dùng của google hay ở Việt Nam

    1. Luân Trần Admin

      Trang tin tức nên hình ảnh là tương đối nhiều nhé, tốt nhất bạn nên dùng ảnh với CDN, giảm tải cho server. CDN thì dùng ở đâu cũng được.

    1. Luân Trần Admin

      Thêm vào dễ thôi, nhưng quan điểm của mình là tối giản hết sức, những gì cần thiết bắt buộc phải cài thì mình mới thêm vào, không thì thôi.
      Anh em sử dụng VPS nên biết cách dùng dòng lệnh để quản trị server, không nên quá phụ thuộc vào tool nào đó. Đến lúc server có vấn đề không xử lý được sẽ rất khổ.

  10. lysuong 1 comment

    bác Luân cho e hỏi, web xem để chạy chạy net quảng cáo pop thôi thì có cần phải dùng vps để chứa lượng truy cập vào web k, mới lần đầu làm web chưa biết nhiều bác ạ

    1. Luân Trần Admin

      Cái này tùy thôi, nếu hosting chịu tải được thì bạn nên dùng hosting. VPS cài đặt, quản lý, tối ưu hơi mất thời gian.

  11. Tôn Ngộ Độc 1 comment

    – Mình cài đặt website xong hết rồi tắt phpmyadmin đi đỡ được nhiều ram ghê

  12. Bạc Đỏ 33 comment

    Mình có chạy 1 plugin quét tin từ facebook fanpage. Số lượng > 350 feeds (1 link =feed) thì cần cấu hình VPS tối thiểu bao nhiêu của Linode nhỉ? Cần tới 4 core, 8 gb RAM chưa. Hay gói 2 core, 4 gb RAM là đủ

    Tks các bác

  13. Tam 1 comment

    Cho mình hỏi là khi cài Memcached rồi, nó sẽ kich hoạt luôn hay bắt buộc mình dùng cùng với W3 Total Cache mới đạt hiểu quả? Vì thay vì dùng W3 Total Cache dùng đang dùng wp-rocket.

Comment của bạn

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