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:
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 🙂
Nội dung bài viết
1. Cài đặt 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
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.
3. Cài đặt Memcached
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.
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é.
Cám ơn bác đã chia sẻ 😀
Anh cho em hỏi chút ạ, em cài trên 2 server khác nhau nhưng có cái nhanh có cái chậm, em cài đặt ở cái 2 web đều giống nhau. cái chậm thì em thấy CPU lúc nào cũng 120%. Anh có thể chỉ em cách khắc phục được không ạ, em dùng Vult gói 5$/m, onl chỉ khoảng 50~100
ADMIN cho mình hỏi tại sao lại chọn location Japan thay vì location khác như Singapore hoặc South Korea.
Đây là thắc mắc lâu này của mình bởi vì mình thấy tính theo đường chim bay thì Singapore gần Việt Nam hơn Japan rất nhiều
Mình đang bị lỗi không public được bài viết và ko hiển thị được trình soạn thảo ở visual. Không hiểu vì sao. Bác luân trần giúp em khắc phục với.
Lỗi không public được bài viết:
https://ibb.co/hCHJV93
Lỗi không hiển thị trình soạn thảo:
https://ibb.co/D84VcSM
Chẳng là em có mua VPS của DO, cấu hình RAM 1G, Disk 25G. VPS chạy 4 website mới, truy cập cũng lèo tèo không bao nhiêu mà thình thoảng lại gặp lỗi error establishing a database connection. Em dò ra trong log của mysql thì thấy lỗi cannot callocate memory for the buffer pool, do RAM không tải được. Mà traffic có bao nhiêu đâu :(((. Không biết tại sao nhỉ bác Luân Trần, nhờ bác xem giúp?
Đây là ảnh chụp hiệu suất của VPS của em:
https://drive.google.com/file/d/1F-c-cLx8eFCObAkFErJJWLmc-Ig4CWWW/view?usp=sharing
https://drive.google.com/file/d/12ZKgF9CeuVNhDxmHbmbQUubI4GQKgcQd/view?usp=sharing
Real-time Data Server
Current Server Time 2020-11-23 14:19:49 Server Uptime 395Day0Hour21Minute
CPU Model [16Core] Intel(R) Xeon(R) CPU E5620 @ 2.40GHz | Frequency:2400.085 | Secondary cache:12288 KB | Bogomips:4800.17 ×16
CPU usage 87.65%us, 9.88%sy, 0%ni, 0%id, 0%wa, 0%irq, 2.47%softirq | View Chart
Space usage Total Space 230.826 G, Used 27.783 G, Free 203.043 G, Rate 12.04%
Memory usage Total Memory: 15.511 G , Used 14.792 G , Free 0.719 G , Rate 95.36%
Cache Memory 0.927 G , Rate 5.97 % | Buffers 0.065 G
Real Memory Used 13.8 G , Real Memory Free 1.711 G , Rate 88.97 %
SWAP: 4.883 G , Used 3.751 G , Free 1.132 G , Rate 76.82 %
Average System Load 42.30 39.49 38.98 53/957
Mọi người cho mình hỏi vps của mình thông số như thế này. Data database cũng chỉ hơn 10k. dữ liệu. Số lượng người online cùng lúc cũng ít mà không hiểu sao lúc nào RAM cũng trong tình trạng này. Có cách nào cấu hình lại or config gì để cải thiện không ạ. Em cảm ơn
AE cho mình hói chút thông số CPU xem trong severinfo như này thì đã phải nâng cấp thêm cpu chưa vậy?
CPU usage 61.62%us, 8.08%sy, 0%ni, 30.3%id, 0%wa, 0%irq, 0%softirq | View Chart
Cài VPS làm theo bác hướng dẫn nhưng ram 2G sao toàn max. Cài thêm swap lúc nào cũng trong tình trang 400M. Mà trong khi đó website hoạt động có tầm 60 người. Chạy 3 web 1 hosting nhưng 2 host kia thì mới phát triển chưa có người online. tối ưu các kiểu ram vẫn max. Nhưng chưa thấy bị đơ vì hết ram thôi. có ai bị tình trạng như em không
Hỏi một số người thì lại bảo script của hocVPS ngốn RAM không nên cài. đang hoang mang quá
Mình chưa thấy ai bảo HocVPS Script ngốn RAM cả :))
Web mình tự nhiên CPU tăng cao vượt 100%. Mình đã nâng cấp từ gói 1 vCore lên 2 vCore và tối ưu theo bài này rồi mà nó vẫn quá tải. Bác nào có kinh nghiệm, hỗ trợ em với ạ.
Cảm ơn bác đã chia sẻ, bác có ý định tạo thêm script dùng LiteSpeed ko
site mình trung bình khoảng 250 online mà dùng gói 15 usd 3 cpu, digitalocean mà load average lên toàn 4 – 5 . Có cách nào tối ưu ko a
VPS RAM 1GB có nên cài openlitespeed không anh?
Mình thất 2G ram k phải con số nhiều
Mình theo dõi opcache của mình memory usage lên rất cao toàn >80% trong khi web có lúc vài người đang online, như vậy phải xử lý thế nào?mình có cài w3 total cache, ram vps 3,5gb