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 🙂

Học VPS có dịch vụ cài đặt và tối ưu VPS trọn gói, chuyên nghiệp, nhanh gọn. Nếu bạn không có nhiều kinh nghiệm với VPS, hoặc không muốn tốn nhiều thời gian cài đặt, hãy sử dụng dịch vụ.

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="128"
OPTIONS="-l 127.0.0.1 -U 0"

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

Tagged:

Comment của bạn

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

802 Comments

  1. Tran Ba Dat 33 comment

    Mình xài HocVPS Script. VPS Vultr, 2GB RAM, 1 core.

    Nhưng web mình cứ online khoảng 40 người hơn là thấy hơi chậm. Check thì thấy RAM sử dụng chỉ khoảng 500MB, cache khoảng 1GB. Còn CPU thì những lúc người dùng click vào trang hay chuyển trang thì CPU có thể nhảy lên tới 50-90%, load xong thì lại về 0.

    Như vậy trang mình có vấn đề gì không admin?

  2. poro 8 comment

    Admin cho hỏi CON có phải là MAXCONN hay không? vì mình vào file cấu hình mà không tìm được MAXCONN và MEMSIZE chứ không tìm được Cachesize, không biết có phải do memcached nó update hay không vì bài nãy cũng lâu rồi.

    1. Việt Phương Moderator

      Bạn kiểm tra lại nhé, có thể bạn sửa sai file. Mình cài bản mới nhất 1.5.7 trên CentOS 7 thì file cấu hình vẫn vậy
      PORT="11211"
      USER="memcached"
      MAXCONN="1024"
      CACHESIZE="64"
      OPTIONS=""

  3. Thành Tân 4 comment

    Web mình 1 ngày cũng chỉ 1-1k5 visit mà hay bị tình trạng load cpu 100%, có cách nào phát hiện plugin nào gây nên tịnh trạng load cpu cao không Luân ?
    Mình dùng P3 Plugin mà nó load không ra ai cả. Cứ load cpu cao lên là bị treo mặc dù đã có cache ( OP, Wp-robot), bình thường k bị thì cpu chỉ load tầm 3-5% nên mình đoán là có sự cố chứ k phải web ngốn tài nguyên nhiều.
    Mong được Luân và các support giải đáp phương pháp
    Hiện mình xài VPS Vultr 5$

  4. Trần Long 4 comment

    Cám ơn ad,
    Sau khi mình làm theo các hướng dẫn trên và cài plugin W3 Total Cache. và kích hoạt Page Cache, Database cache và Object Cache Thì bị báo lỗi…Nhờ m.n và ad giúp đỡ vs ạ.

    The following memcached servers are not responding or not running:
    Database Cache: 127.0.0.1:11211.
    Object Cache: 127.0.0.1:11211.
    Page Cache: 127.0.0.1:11211.
    This message will automatically disappear once the issue is resolved.

    1. Việt Phương Moderator

      Thông báo hiển thị ở đâu vậy bạn? Bạn mở port 11211 chưa?

      1. Trần Long 4 comment

        mình cài hocvps nhưng ở bước.

        Mở cổng Memcached (11211) trên Iptables Firewall
        mình dùng lệnh:
        iptables -A INPUT -m state –state NEW -m tcp -p tcp –dport 11211 -j ACCEPT

        nhưng không có phản ứng.

    1. Việt Phương Moderator

      Bạn có thể liên hệ thông qua dịch vụ cài đặt và tối ưu VPS trọn gói nhé

  5. Yullian 1 comment

    Chào các bác,
    E muốn cache cho website asp.net + vps windows thì nên dùng gì ạ?
    Mong các bác vấn giúp