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é.
hocvps Script hình như cập nhật phiên bản server chậm thì phải Luân ơi, check lại hộ mình với, mình Update rồi, nhưng phiên bản
Kiem Tra Cap Nhat
=========================================================================
Phien ban moi nhat:
+ Nginx: 1.10.1 (ban dang su dung 1.10.1)
+ PHP: 5.6.25 (ban dang su dung 5.6.25)
+ MariaDB: 5.5.51 (ban dang su dung 5.5.51) =>> cái này không phải là 5.6.20 nên không dùng được plugin Duplicator, Luân cập nhật hộ mình với
xem ảnh:
http://i216.photobucket.com/albums/cc162/minhcanvao/Capture_1.jpg
Cái đó không vấn đề đâu bạn, để có được 2 hosting cùng phiên bản MySQL khá là khó, nên bạn bỏ qua cái này.
có cách nào hạ version mySQL trên localhost xuống được không nhỉ Luân ơi, có thì hướng dẫn mình với, không hiểu sao version MySql trên máy mình là 5.6.20 nên mình không chuyển database từ local lên Host được,
– mình chuyển database làm bằng tay để Export từ local rồi Import lên host cũng bị lỗi, trong khi Export từ local rồi Import test trên local thì bình thường => không đưa web từ local lên Host được
(cái này của thằng Duplicator nó thông báo phần Tool của nó)
MySQL
Version 5.6.20
Charset utf8mb4
Wait Timeout 28800
Max Allowed Packets 1048576
msyqldump Path C:/xampp/mysql/bin/mysqldump.exe
Phải hạ version MySQL thì hơi lằng nhằng đó, khó để cài đúng phiên bản mong muốn được. Bạn tính phương án khác được ko?
liệu có phải là xung đột giữa Xampp không hỗ trợ MariaDB nhiều nên xay ra xung đột không nhỉ Luân nhỉ
import lên Host luôn bị như trong ảnh http://i216.photobucket.com/albums/cc162/minhcanvao/loi%20import%20db.jpg
Import thì bạn dùng thử BigDump hoặc Sypex Dumper nhé, không nên dùng phpMyAdmin, mình thấy hay bị lỗi
có lẽ số mình nhọ quá lền thử dùng cả BigDump và Sypex Dumper cũng không up được database Mysql lên host, dùng BigDump thì bị báo lỗi không biết cái mã utf8mb4_unicode_520_ci là gì, và không chạy backup được, còn Sypex Dumper cũng tương tự cũng bị lỗi….. 🙁 có lẽ không đẹp zai nó khổ vậy, cách còn lại là làm trực tiếp lại web trên server luôn 🙁
Hi admin Luân,
Cho mình hỏi và tư vấn giúp mình.
Mình cài VPS theo bài viết này 2 vps như sau:
1. Vultr gói 20$/tháng 2core, 2GB ram
2. Linode 20$/tháng 2core, 4GB ram
chạy 1 site duy nhất khi cao nhất khoảng >1000 user online theo google analytics thì 1. vultr hết RAM site chạy chậm lại khi vào không được -> error 502 và die.
trong khi 2.linode thì RAM còn 1/2 mà CPU >95% một lúc thì die luôn, linode gửi thư báo site tôi chạy CPU >200% (khiếp).
Luân hướng dẫn mình cài 2 VPS trên để site mình chạy tốt khi có lượt truy cập cao nhất >1500. site mình wordpress – data 102 bài viết (sql 5MB), toàn bộ site =40MB. cài theme genesis news pro, plugin seo, jetpack, wp rocket,
Thank Luân nhiều.
Mình chỉ support được những câu hỏi cụ thể thôi, chứ hỏi như vậy khó quá
có thể bạn cần tối ưu lại php, mysql về connection, socket. Bạn tìm thử process nào chiếm CPU hay RAM cao quá hay 1 process nào đó bị treo?
Website của mình cài đặt hocvps, soạn thảo văn bản xong bấm publish hay updates nó load 1 hồi lâu rồi hiện 502 Bad Gateway, cho mình hỏi phải xử lý thế nào ạ 🙂
Có vẻ VPS tài nguyên thiếu rồi, bạn kiểm tra lại xem.
Dạ, Anh Luân có thể hướng dẫn giúp em các bước kiểm tra được không.
Em đang dùng con vps của linode loại 10$/ tháng – con 2gb ram đó a.
Bộ code 3gb
data chưa tới 60mb.
Hướng dẫn cụ thể thì mình không có rồi
Dạ, em có nhận ra một điều như thế này, trường hợp bài viết sử dụng trên 10 ảnh, thì nó sẽ báo lỗi (sau khi load 1 hồi lâu).
còn sử dụng dưới 10 ảnh thì sẽ ok (sau khi load 1 hồi cũng lâu khoảng 1p).
Em vẫn đang cố gắng tìm nguyên nhân để khắc phục 🙁
cảm ơn anh
Chào Luân, Mình cần tư vấn để làm 1 trang tin tức tổng hợp, dữ liệu chủ yếu là bản tin, hình ảnh và videos. Với lượt người truy cập dự tính vài trăm đến 1 triệu lượt 1 tháng.
Số người online 5k -10k cùng lúc.
Luân có thể tư vấn về phần cứng máy chủ cho mình được không ?
Cảm ơn !
Bạn dùng VPS ở các nhà cung cấp nổi tiếng, chọn cấu hình 4GB RAM chạy thử coi sao. Nếu không được thì tiến hành tối ưu, nâng cấp tiếp.
Luân cho mình hỏi: Băng thông trong nước(Up/Down): 100Mbps có đảm bảo không ?
Băng thông này hơi ít, truy cập đông khoảng trăm người online một lúc là nghẽn rồi.
Băng thông này nó gọi là băng thông trong nước.
Còn băng thông chính là Băng thông: Unlimited
Intel Xeon E3-1220 v3, 3.1GHz, 8MB Cache, 4 Cores, 4 Threads
RAM: 4GB RAM ECC
HDD: SATA 500GB
IP: 1
Băng thông: Unlimited
Cổng trong nước(up/down) 100 Mbps
Cổng quốc tế (up/down): 8/6 Mbps
Mình muốn hiểu về số cổng trong nước đó.
Băng thông unlimit không để làm gì khi mà bị limit port speed (cổng). Thực ra đây chỉ là chiêu quảng cáo thôi.
Bạn xem mình phân tích nhé, ví dụ 100 Mbps -> mỗi giây tốc độ truyền tải tối đa là 100/8 = 12.5 MB mà thôi.
Giả sử website của bạn có dung lượng 2MB -> chỉ cần 6 – 7 người cùng request là bắt đầu nghẽn rồi.
Port speed quốc tế 8/6 Mbps thực sự quá tệ.
HI, Luân, Tôi cài theo bài này vps vultr RAM 2GB,
Tôi dùng plugin cache wp rocket thay cho W3 Total Cache được không bạn?
Thank.
Được nhé bạn, cứ thử đi.
mình cài với cấu hình vps như bài hướng dẫn và chạy được gần 1 tháng ổ cúng mình bị full ( lúc cài xong còn trống 35G ) có cách nào kiểm tra và dọn dẹp nhanh gọn ko Luân
Bạn xem bài này nhé: https://hocvps.com/cach-tim-file-thu-muc-lon-nhat-tren-linux-unix-bsd/
bạn thử lệnh này để xem các thư mục đang chiếm bao nhiêu GB nhé: du -sh [thư mục cần kiểm tra] 🙂
cái này xài FTP được không Luân
FTP muốn xài thì cài thêm vào: https://hocvps.com/cai-dat-ftp-server-tren-centos-voi-proftpd/
Tuy nhiên mình không khuyến khích vì tốn thêm tài nguyên server, dùng luốn sFTP được rồi: https://hocvps.com/huong-dan-ket-noi-sftp-bang-filezilla/
Ad ơi cho mình hỏi chút
Sau khi setup vps xong, mình vào mấy trang quản lý thì xuất hiện lỗi
ví dụ vào phpmyadmin thì có lỗi
Error during session start; please check your PHP and/or webserver log file and configure your PHP installation properly. Also ensure that cookies are enabled in your browser.
vào filemanager thì có lỗi
Deprecated: Methods with the same name as their class will not be constructors in a future version of PHP; ext_Json has a deprecated constructor in /home/www.iunlockglobal.com/private_html/filemanager/libraries/JSON.php on line 117
Bạn chạy lệnh hocvps, chọn chức năng Phân quyền webserver lại thử coi?
mình set lại quyền write cho thư mục php session thì được rồi Ad ạ. Cảm ơn bạn nhiều 🙂
Ad cho mình nhờ tí, mình add 2 site vô 1 vps, mình muốn off tạm thời 1 trang khoảng 10 ngày chạy lại thì làm thế nào ad
Em chào anh, website baconsoi.biz của e cài trên vps của wable. Tuy nhiên, chức năng đặt hàng online khi khách thực hiện bị lỗi khi gửi email thông báo (trong khi nếu e sử dụng stable host thì vẫn ok).
Chức năng gửi email này là của woocommercial plugin ah. Mong anh giải đáp giúp em vụ này.
Em cám ơn.
Đầu tiên bạn test sendmail từ server xem có vấn đề gì không với lệnh bên dưới:
Nếu send ok thì cài plugin WP Mail SMTP để debug là ra vấn đề nhé.
VPS trong nước thì cài nào ngon vậy Admin ?
Thử HostVN nha bạn
Hi ad,
Cho mình hỏi là Op của mình Memory Usage: 90%, Hit rate 96% . Tổng bộ nhớ là 128MB. Thông số 2 cái thống kê như vậy là ổn không ad ?
Tks
Hit rate quá ổn rồi. Memory usage hơi cao, nếu bạn không add thêm site nào vào VPS thì để đó dùng cũng được, làm sao không được để tới 100% nhé.
Quan trọng đâu phải số người online mà là số lượng concurrent users, theo như mình thấy trên ảnh thì lúc cao nhất có 25 cú cllick, nếu hầu hết sử dụng modern browser như Chrome, Firefox thì tương ứng khoảng 100-125 request/s, cũng khá tốt với 1 server ít tài nguyên như vậy. Tuy nhiên nếu user dùng các queries mà không cache được như là tìm kiếm thì cũng vất vả lắm.
Ko hiểu sao mình làm theo các bước ok
Mà người truy cập tầm 300 400 là CPU lên 100% là die sever
Anh Luân cho e hỏi, là nếu lượng onl lớn như vậy, thì trung bình 1 tháng anh sử dụng bao nhiu băng thông?
Mình chỉ chạy website thôi ít lắm, thường chưa bao giờ vượt qua giới hạn của nhà cung cấp.
Chào khi chạy OPcached Zend với PHP 5.6 thì thường hay bị lỗi 502 Bad Gateway.
Khi disable thì chạy ko lỗi, sau đó bật lại Opcached vẫn chạy tốt nhưng 1 thời gian lại bị 502 Bad Gateway
Bạn kiểm tra lại xem dung lượng sử dụng của Zend OPCache thế nào, có đang bị vượt quá ko?
hay quá cảm ơn bác
A ơi có bài viết nào hướng dẫn sử dụng Cấu hình W3 Total Cache không
Không có nhé, cái này trên mạng nhiều bài hướng dẫn rồi bạn.
VPS Digital Ocean ram 8GB config như thế này có ổn không Luân ơi hay còn cách nào khác tốt hơn đối với ram 8GB vậy Luân?
RAM 8GB cài Varnish đi bạn, load cho phê
Vậy là mọi thứ vẫn cài y chang RAM 2G nhưng cài thêm Varnish nữa phải không Luân
Mình tính cài theo thứ tự ntn: Hocvps -> Memcached -> Varnish -> WordPress
Zend Opcache thì có sẵn rồi.
Vậy có ổn không Luân?
Memcached không cần đâu bạn, có dùng thì dùng Redis tối ưu hơn. Nhưng trước mắt cứ cài HocVPS Script – Varnish – WordPress là load như gió rồi.
Cảm ơn Luân nhé
ở phiên bản cũ mình chạy lệnh này được
service mysql restart
mà xài phiên bản mới không biết reset mysql bằng lệnh nào vậy bạn
Cũng như vây bạn. Đây là dòng lệnh Linux, không liên quan gì đến HocVPS Script.
Đúng rồi bạn ơi, vẫn dùng câu lệnh cũ bình thường nhé!
Cho m hỏi là cài cái này với cái https://hocvps.com/script/ thì có khác gì nhau không ?
M cài theo https://hocvps.com/script/ mà chỉ tầm 200 người online là CPU max 100% rồi 🙁 ?
Bạn cho hỏi thêm là cài theo https://hocvps.com/script/ có cần cài WP Super Cache nữa không ? Thansks !
Bạn phải cài thêm WP Super Cache nữa nhé, dùng WordPress là phải cài cache.
Không phải cài Total Cached hả Luân?
Hoang mang quá.
Một trong 2 plugin cache này đều ok, thử trước với WP Super Cache nhé. Mình toàn sài thằng này thôi cho nó đơn giản.
m có cài thêm WP Super Cache từ đầu mà nhưng không ăn thua lắm , trung bình 150 người online thì khoảng 60 – 80 % CPU rồi có lúc còn nhảy lên 150% CPU và thấy không vào dc Web nữa chắc phải nâng cấp lên rồi 🙁
Luan Tran ơi cho mình hỏi, mình cài ZenOPcache và memecache rồi thì trong wp có cần phải cài wp super cache hay w3 total cache nữa không vậy? Nếu k cài thêm hai cái đấy có sao k nhỉ? Mình dùng gói 4G Ram của linode, online real-time khoảng 200 google analytics mà cpu >80%, Ram > 85%. ( Mình xem thống kê trong longview). Có cách nào để giảm sử dụng ram đi k nhỉ?
Bạn dùng Zend Opcache thì mặc định sẽ cache toàn bộ các file .PHP rồi. Còn muốn sử dụng Memcached thì bắt buộc phải cài W3 Total Cache và cho nó cấu hình sử dụng thì mới được. Giờ bạn thử trước với WP Super Cache đi xem thế nào?
Dùng WordPress bắt buộc phải cài plugin cache nào đó, ko thì tốn tài nguyên lắm.
ok tk Luân, hwa mình tìm mãi mới ra
mình vào phpmyadmin báp lỗi này là sao nhỉ #1045 – Access denied for user ‘admin’@’localhost’ (using password: YES)
User root nhé.
Có cách nào viết đếm lượt truy cập mà không bị cache ko luân cái super cache thêm vào nó cứ lưu mãi 1 số ko thay đổi dc.
Em đang chạy vps cài Webmin và Virtualmin mất rồi mà em không biết nâng cấp php 5.3 lên 5.5 bác chỉ em với
Bạn tìm thông tin ở 2 bên này xem có hỗ trợ lên PHP 5.5 không, nếu không tự update lên hỏng luôn VPS đó 😀
Admin cho mình hỏi là mình muốn cấu hình vps centos để làm host chạy web thì chỉ cần cài đặt HocVPS Script là được rồi phải ko admin. Có cần cài thêm gì không ạ
Chỉ cần HocVPS Script là ok rồi bạn
nghe nói bên amazon có vps miễn phí 1 năm
nhưng làm theo hd trên mạng ko đc
ad khi nào rãnh làm 1 bài hướng dẫn cho mọi người đc ko ạ
Cài đặt Zend Opcache
Làm sao thay đổi các thông số total memory: 128.00MB vậy Luân ??
Thay đổi trong file nào ??
thanks
Có hướng dẫn cụ thể rồi bạn: https://hocvps.com/cai-dat-va-cau-hinh-php-zend-opcache/
Bác ơi! có dịch vụ cấu hình VPS ko ạ! Em chạy cái ram 1g mà online lên 500 thấy nó đã chịu ko nổi nhiệt rồi
Hiện giờ mình đang stop dịch vụ nhé
Luân có xem bài viết của Trần Thế chưa ?
http://www.tranthe.net/mien-phi-cach-cau-hinh-vps-chiu-tai-hang-trieu-page-views/
Vụ này mình có biết 😀
Luân ơi cho mình hỏi sao mình chạy theo bài này trên vps lindone mà nó báo max cpu hoài gói ram 2 core 4ram online cao nhất là 550, bên viltr mình chạy cả 2 web online cao hơn mà có 2g ram mà ko sao bên lindone mình chạy có 1 web mà đã thế rồi
Bạn chạy cache cho website hết chưa thế?
Mình xài super cache bật memcache các kiểu rồi, ở bài này mình cài học vps với memcache thôi
Script này chỉ chạy được Centos thôi hả Luân? Vậy còn Ubuntu thì sao?
Ubuntu không dùng được. Để chạy web server thì dùng CentOS hiệu quả nhất đó bạn.
Bác cho em hỏi chút, em có 1 VPS cài đặt 2 website trên đó thôi mà lúc nào cũng báo full bác ạ.
Có thể giải quyết vấn đề này được không bác, vì em kểm tra có lúc khonarg 500 truy cập vào cùng 1 lúc @@.
Báo full RAM hay gì bạn nhỉ. Để kiểm tra chuẩn bạn vào serverinfo của HocVPS Script, xem ở dòng Real Memory nhé.
Cho mình hỏi. Bạn dùng cái gì test view analytics vậy
Đó là Google Analytics đó bạn.
Hocvps ver mới ko biết có cần tối ưu thêm như bài hướng dẫn này không, em thấy đã có tích hợp sẵn Zend Opcache.
Chỉ cần cài thêm Memcached nếu cần thôi nhé.
ok thank anh
Bác Luân cho em hỏi. Sáng nay em có up Woocommerce lên 2.6 thì nó báo lỗi phiên bản MySQL như thế này, nhưng em vào VPS check thì trong đó báo MariaDB cao nhất là 5.5.47. Vậy lỗi này có ảnh hưởng gì tới web không bác. Khắc phục bằng cách nào vậy bác. Cám ơn bác nhé
http://i176.photobucket.com/albums/w163/cuongga_photo/web_zpsfrcqq6q4.png
Thường sẽ không có vấn đề gì cả. Nếu muốn nâng cấp thủ công bạn có thể tham khảo bài viết này: http://www.tecmint.com/upgrade-mariadb-5-5-to-10-centos-rhel-debian-ubuntu/
Sắp tới mình cũng sẽ chuẩn bị một bài viết trên Học VPS
Cám ơn bác nhiều nhé. Nếu không ảnh hưởng gì thì em cứ để đó vậy.
Cám ơn Luân nha. Đơn giản, dễ hiểu thật
Sao mình cài đúng rồi mà ol 200 300 mạng là CPU lên tới 100% load ko nổi nữa
http://s19.postimg.org/fc9ag0her/575a5fe63f985.png
http://s19.postimg.org/65qzsqc6b/575a5ff45675a.png
Bạn dùng code gì vậy, theme có nặng lắm ko?
Anh Luân ơi cho e hỏi cái
Cái OPcache của em để mặc định là 128MB RAM
Có nghĩa là nó sẽ rút lấy 128MB đó của VPS xài.K cho thằng khác xài hay đó là dung lượng RAM max nó có thể xài nhỉ?
Do site em xài OPCACHE em xem thống kê chỉ hết có max 70MB thôi à nên em định hạ 128MB kia xuống còn 90MB.
Chứ nếu nó cứ chiếm mất 128Mb trong khi nó xài có 70 MB thì hơi phí anh nhỉ??
Em nhầm anh à.Nó dùng có max là 45mb thôi.K phải 70 anh à.
Nó xài hết có 36% thôi anh.
http://s20.postimg.org/sifgn9x0d/Screenshot_2016_05_29_21_42_08_1.jpg
http://s20.postimg.org/3qfug1ftp/Screenshot_2016_05_29_21_42_12_1.jpg
Em căn cứ vào tình trạng hệ thống mà cài đặt cho phù hợp, ko dùng hết thì giảm xuống đi nhé. Làm sao duy trì % sử dụng <= 70% là ok.