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

Lưu ý: tất cả comment đều được kiểm duyệt cẩn thận! Nếu có code bạn hãy up lên pastebin.com rồi để lại link trong comment.

843 Comments

  1. The 1 comment

    VPS của mình bị suppend, giờ ko thể unsuppend được, giờ bên nhà cung cấp bảo muốn backup folder nào, Bạn chỉ cho mình cần backup folder nào để lấy lại dữ liệu và mysql với. Thanks

  2. Khanh Ars 2 comment

    A Luân cho e hỏi với ah, e cấu hình vps theo Hocvps Script của anh, nhưng CPU toàn thấy báo 100% lúc cao điểm, còn phải cấu hình cái gì để giảm tải CPU ko anh. Website của e cao điểm 600 người online. Hiện tại e đang dùng host DigitalOcean gói 20$.

    1. Luân Trần Admin

      DigitalOcean yếu thế à 😀
      Bạn thử check lại xem process gì đang chiếm nhiều CPU nhất, Opcache có đang chạy ko?

  3. Kai 20 comment

    Bác Luân cho em hỏi, khi em install plugin wordpress trực tiếp thì vps đòi FTP account và pass . cái này bên mình có bài hướng dẫn khắc phục nào chưa ạ

  4. Thai 1 comment

    Bạn ơi mình hỏi có đoạn script nào đầy đủ chỉ dẫn cài vps để cho nhiều domain chạy không. Mình chưa dùng vps mà chưa tìm được script để cài đầy đủ. Mong bạn giúp đỡ

    1. Luân Trần Admin

      HocVPS Script sử dụng cho nhiều domain đó bạn. Sau khi cài đặt xong chỉ cần chạy lệnh “hocvps” rồi chọn option Thêm website là được.

  5. Hoàng Minh 6 comment

    Cho mình hỏi phần cấu hình W3 Total Cache thế nào để khi mình viết bài mới nó không bị cache (hiển thị ở trang chủ, danh mục) hoặc tự động xóa cache khi public 1 bài mới. cảm ơn ạ

    1. Luân Trần Admin

      Bạn vào phần cài đặt Page Cache, xem đoạn Purge Policy: Page Cache nhé.

  6. dangthanhtuan 11 comment

    Chào bạn,
    Bạn cho mình hỏi dùng câu lệnh nào để import database sql.gz ?

    Cảm ơn bạn vì bài viết!

      1. Đức Trung 13 comment

        Ok được rồi. Cảm ơn Luân nhé. Mình đọc trong đấy mỗi lần làm thế này lại phải vào phân quyền lại hả bạn

        1. Luân Trần Admin

          Mỗi lần bạn sử dụng tài khoản root để thao tác thì mới phải phân quyền lại thôi. Hoạt động bình thường thì ko sao.

    1. Luân Trần Admin

      Thường lỗi này do server bị quá tải hoặc do bị tấn công. Bạn check lại cấu hình server xem có phải không?

      1. Lukas 4 comment

        Ko phai dau . Ngay cả khi vừa cài xong,mình chạy test ,ko có ai, mà nhấn nhanh 1 chút là cũng bị rồi. Chạy trên vultr ram 1 G. Cái này bạn search trên google thì cũng thấy nginx và php-fpm hay bị lôi này. Mình tăng fast cgi time out lên 1 chút thì có giảm hơn. Nhưng đôi khi vẫn bị

        1. Luân Trần Admin

          Bạn đã cài đặt những gì để mình cài đặt VPS mới test thử xem lỗi này như thế nào nhé?

          1. Lukas 4 comment

            Mình cài đặt HocVPS ,memcached,zend opcached và sphinxsearch . Ko chỉnh gì,để mặc định như của bạn thôi.

  7. c250 1 comment

    Mình hay bị lỗi này là sao nhỉ
    Notice: Undefined offset: 2 in /home/public_html/user/index.php on line 44

    1. Luân Trần Admin

      Cái này do sai cú pháp PHP, bạn check lại dòng 44 của file index.php xem

  8. Hung 2 comment

    HI Luân Trần

    bạn có thể huớng dẫn mình cách tạo file báo lỗi 403 trên vps sử dụng hocvps đc ko?
    http://www.cyberciti.biz/faq/linux-unix-nginx-access-control-howto/
    http://www.cyberciti.biz/faq/unix-linux-nginx-custom-error-403-page-configuration/
    Mình có làm theo huớng dẫn ở đây, tuy nhiên cấu trúc thư mục của vps sử dụng hocvps khác với huớng dẫn (centerminmod thì giống như huớng dẫn). mình sửa file nginx.conf tại etc/nginx/nginx.conf và cũng đã thành công. tuy nhiên việc custom file báo lỗi 403 mình không biết làm sao.
    Bạn có thể huớng dẫn giúp đuợc không? xin cảm ơn bạn

    1. Luân Trần Admin

      Chào bạn, file cần sửa nằm trong thư mục /etc/nginx/conf.d/ nhé chứ ko phải file kia

      1. Hung 2 comment

        trong thư mục đó la file domain.conf mà. mình sửa file nginx.conf ở ngoài nó cũng có tác dụng tuy nhiên cái quan trọng là sửa nội dung file báo lỗi 403 chổ nào vậy bạn?

  9. Tung Nguyen 43 comment

    Chào bác Luân,

    Bác cho em hỏi nhờ chút với ạ
    Trong cái thống kê của google analytics có cái chức năng xem số người đang online trực tuyến
    Xin được hỏi bác chức năng xem tổng số người đang online vào các web trên vps (vps có nhiều hơn 1 web) thì lệnh xem là gì ạ
    Mong bác giúp đỡ
    Cảm ơn bác nhiều

    1. Luân Trần Admin

      Cái này ngày xưa mình có đọc ở đâu đó rồi nhưng ko thể nào tìm ra được 🙁

      1. Tung Nguyen 43 comment

        Chào bác,

        Bác ơi thế bác xem số người online trong server của bác bằng lệnh gì ạ

  10. Nguyen Tung 43 comment

    Chào bác Luân,

    Bác cho em hỏi nhờ là website của em không dùng wordpress vậy W3 Total Cache có nên cài đặt không ạ

    1. Luân Trần Admin

      Không bác nhé vì W3 Total Cache chỉ chạy với WP, lúc này bác tìm hiểu xem code của bác có plugin cache nào hỗ trợ memcache hay ko?

        1. Luân Trần Admin

          Nếu như code của bác sử dụng có plugin hỗ trợ memcache thì có thể sử dụng plugin đó và cài memcache. Còn không thì ko cần phài cài memcache vì có dùng được đâu.

  11. oholala 1 comment

    hocvps cho mình hỏi mình đang dùng WordPress trên VPS thì nên dùng plugin hay dùng memcache? thí dụ như Wp-Rocket cache

    Giữa 2 cái này thì cái nào là tốt nhất?

    Thanks

  12. vancuong 2 comment

    Làm phiền luân cho mình hỏi cách xóa cache trên VPS. mình cài hocvps. mình mới sửa lại file .htaccess code wordpress. nhưng mãi vẫn chưa thấy có thay đổi gì. mình nghĩ do cache trên vps. luân hướng dẫn mình khắc phục nhé. cảm ơn luân nhiều.

    1. Luân Trần Admin

      Cache thì là do plugin bạn cài đặt, vào trong đó clear là được, không liên quan đến VPS nhé.

      1. vancuong 2 comment

        tks luân. mình biết rồi. file .htaccess không có tác dụng trong nginx. phải vào conf của domain fix lại. 😀

  13. xuantruong 7 comment

    A Luân Trần ơi, a có thể viết bài TUT về cách cấu hình cho Wp-super Cache được không ợ. 🙂
    E xài hocvps, khi làm theo tut ở đây:
    https://www.digitalocean.com/community/tutorials/how-to-use-wp-super-cache-and-jetpack-photon-to-optimize-wordpress-performance-on-ubuntu-14-04
    thì đến các bước cấu hình file nginx thì chịu 🙁 … chả thấy giống 🙁
    Note: site e site nhỏ ợ, dùng Digital Ocean 512MB 🙂

  14. may 1 comment

    Mình sử dụng CDN ở CloudFlare cũng thấy ok , nhưng chỉ được 1 site là sao nhỉ , ad có biết bên nào cung cấp tốt không ?

      1. nguyen duc anh 10 comment

        Cloudflade a dung free hay dung tinh phi do a. E cung tinh su dung de chan ddos. Hom no dang ky goi free ma chay van khog dc

  15. Minh Quân 4 comment

    Luân ơi cho mình hỏi muốn clear zen opcache trên hocvps thì làm thế nào?

  16. hưng 12 comment

    mình thử cài cấu hình tối ưu này và thấy ram sử dụng lên cao quá, lúc nào cũng gần như max, CPU thì nhẹ hơn, không biết ram max thế này có bị vấn đề gì k nhỉ, mình đang sử dụng vps digital ocean 2gb ram, chạy 6 site tổng số ng onl có lúc tầm khoảng 2k

  17. Bi 20 comment

    em hỏi chút, hocvps.com và chiasecoupon của anh có cài thêm w3 tool cache hay gì khác ko anh ? nếu cài anh đang cài gì vậy ạ

    1. Luân Trần Admin

      HocVPS cài đặt W3 Total Cache, còn Chia Sẻ Coupon thì dùng WP Super Cache nhé

      1. Minh 1 comment

        Ban cho minh hoi chut, sao dung wp super cache bai viet moi cap nhat no k hien len nhi? tat di thi no moi hien

  18. Thanh Sang 1 comment

    Chào bạn! Bạn cho mình hỏi vài câu được không?
    Mình được người khác tặng mã giảm giá của digistar và mình muốn mua vps để download tài liệu từ fshare về vps sau đó upload lên onedrive. Nhưng mình xem thì toàn là vps linux, vậy có thể dùng vps loại này để làm việc trên không? Nếu không được thì nên mua loại vps nào? Nên cài những ứng dụng nào để up và download dể dàng nhất.

    1. Luân Trần Admin

      Bạn có thể sử dụng Linux, cài đặt giao diện GUI là ok, tuy nhiên quá trình setup sẽ vất vả hơn so với VPS Windows

    1. Luân Trần Admin

      Bạn dùng CentOS 6.5 đi, bản 7 chưa có nhiều hướng dẫn đâu. Giờ mình vẫn đang dùng 6.5 trên Linode đây.

  19. Sony 1 comment

    Luân ơi bạn có thể làm một bài hướng dẫn cài đặt directadmin cho vps, config chống local, ddos, brute pass đc ko? bạn thêm một hướng dẫn cân bằng tải load balancing cho nginx nữa thì tốt quá, tìm hoài trên mạng mà ko thấy có bài hướng dẫn chi tiết nào?

  20. mùa 1 comment

    Luân cho mình hỏi .
    Để tối ưu hoặc 1 web hoạt động ổn, thì mình nên set up bằng tay từng phần LEMP hay là chạy script auto ?
    Mình vẫn còn phân vân quá .
    Ram 512mb thì tải được tầm bao nhiêu onl 1 lúc nhỉ?

    1. Luân Trần Admin

      Tất nhiên phải config từng module theo thực tế sử dụng, chứ auto chỉ hỗ trợ 1 phần nào đó thôi, chưa chắc phù hợp với nhu cầu sử dụng.

  21. tam 6 comment

    Hi Luân
    mình đang sữ dụng script của bạn
    nhưng khi chạy lỗi này
    mong bạn giúp đở nhé
    Fatal error: Class ‘SoapClient’ not found in

    1. Luân Trần Admin

      HocVPS sử dụng Nginx (thay do Apache) làm webserver nên ko chạy htaccess nhé. Tùy theo web của bạn sử dụng CMS gì, như WordPress hay Magento thì cài phát chạy được luôn.

  22. Bảo 3 comment

    Chào Luân,
    Mình dùng HocVPS Script đã cài Memcached như hướng dẫn của bạn. Nhưng khi sử dụng w3 total cache thì method memcached nó ko hiện, nó vẫn cứ ẩn và ko cho phép kích hoạt dù mình đã cài và chạy memcached ok trên vps.
    Bạn giúp mình xử lí vấn đề này với

    1. Luân Trần Admin

      Nguyên nhân bạn chưa cài Memcached PHP Module rồi, hoặc cài rồi nhưng chưa restart php.

  23. Gái 1 comment

    Hiện giờ thì site chạy cũng ổn, mỗi chuyện chả có visit mà test nữa. Kết HocVps vì dễ dùng lại Vi-Vn

  24. Khue Tran 18 comment

    Anh Luân thử kiếm tra xem mọi người có cùng gặp lỗi như em ko, dạo này e thấy tự nhiên upload ảnh lên vps rất chậm, lúc thì rất nhanh nhưng thường là chậm mà e đang dùng 2 vps khác nhau nhưng đều cài hocvsp script nên em đoán có thể có lỗi gì khiến upload image chậm mà nó cứ đứng ở đó ko up lên được ko anh?

    1. Luân Trần Admin

      Anh chưa từng nghe thấy ai nói về vấn đề này cả, a đoán khả năng cao là do tốc độ mạng thôi, em check lại thử coi?

  25. Long Tu 6 comment

    Thạch cho mình hỏi 1 chút với, mình đang dùng gói 5$/month của thằng digitalocean. giờ mình muốn nâng lên gói Ram 1Gb của nó, mình sẽ phải đăng ký gói mới rồi chuyển dữ liệu sang gói mới này hay là mình có thể nâng cấp luôn bên trong quản lý của DO? bên trong cpanel của DO mình thấy có chữ Resize nhưng khi ấn vào nó thì nó hiện ra cái chữ (There are currently no sizes available for Fast-Resize)
    có cách nào mình nâng cấp lên gói cao hơn trực tiếp từ gói mình đang dùng ko bạn?
    cảm ơn bạn

    1. Luân Trần Admin

      Mình tên Luân, không phải Thạch 🙂
      Bạn có thể nâng cấp trực tiếp gói VPS trong phần quản lý. Nếu nó báo ko có size nào thì có thể khu vực đó đang hết slot, bạn đợi để DO bổ sung thêm

  26. Sơn 1 comment

    Chào admin,
    mình vừa cài lại server nginx có 1 số vấn chưa tối ưu được. Luân có thể liên hệ giúp mình chỉnh server được ko? mình sẽ hậu tạ 😀 mr Sơn 0944.104.004 đang ở HCM.

  27. Mely WEB 1 comment

    có code php nào làm web viewer show tổng visit trên VPS ko a, tức là tổng visit của tất cả website hiện có trên VPS giống như google analytic

    1. Luân Trần Admin

      Varnish chỉ nên cài với webserver Apache thôi, còn bản thân nginx nó xử lý file tĩnh rất tốt rồi nên ko cần cài thêm Varnish làm gì cho tốn RAM.
      Link bài hướng dẫn là dùng Apache (httpd)

  28. Lukas 4 comment

    Cái HocVPS có add thêm IP đc không vậy bạn Luân? Ví dụ ở vultr mình mua thêm IP,thì add thêm kiểu gì ?

    1. Luân Trần Admin

      Bạn mua IP như bình thường, sau khi add thêm domain trong script bạn chỉ cần trỏ domain đến IP mới là hoạt động bình thường rồi

  29. tuantranplus 2 comment

    Anh cho em hỏi nhé
    Làm sao để có thể tắt thông báo lỗi trên site
    ẩn thông báo lỗi code đó
    ví dụ:
    Notice: Undefined offset: 1 in /home/public_html/user/index.php on line 23

    Notice: Undefined offset: 2 in /home/public_html/user/index.php on line 34

    Notice: Undefined variable: out in /home/public_html/inc/template.php on line 135
    ví dụ nó lỗi như thế. như em cài centminmod thì nó không hiện
    còn cài hocvps script thì nó hiển thị
    site thì vẫn chạy oke nhưng nó cứ hiển thị lỗi .
    giờ em phải tắt nó ntn anh

  30. Cray Nood 7 comment

    mình muốn cấu hình 1 site chạy 2 server. 1 server chạy source, 1 server chạy mysql ; cho m xin từ khóa google để m seach 😀

  31. pea 8 comment

    mình cài hết như hướng dẫn từ trên xuống nhưng không thể cấu hình W3 Total Cache chọn phương thức cache là Memcached được, mà nó tự động chọn phương thức Alternative PHP cache
    Mình mới cài hocvps trên vps mới và chuyển site từ vps cũ sang. Ở vps cũ mình chọn Alternative PHP cache. Mình đã thử xóa cache, gỡ bỏ plugin rồi cài lại nhưng vẫn không thể chọn Memcached được.
    các bạn hướng dẫn xem làm thế nào để chọn đc Mecached với

    1. Luân Trần Admin

      Mình nghi bạn chưa thực hiện bước cuối: Cài đặt Memcached PHP Module trên CentOS 6 trong bài hướng dẫn cài đặt Memcache

      1. pea 8 comment

        mình chắc chắn đã cài, thậm chí lúc nãy còn cài lại và thử lại trước khi cmt nữa. chả biết nó bị gì nữa. cái đó cứ bị mờ đi 🙁