Source code không tối ưu ngay lúc đầu thì bị bro, xem cái I/O connection ở MySQL thì biết.
Nguyên nhân chính không phải từ VPS mà từ I/O database là nhiều lên chia thành 2 con VPS riêng ra. Thật ra VPS Database thì 5-10$ thì thoải mái quan trọng là tối ưu, cài docker về sau muốn bê đi đâu cũng dễ.
Còn VPS chịu tải thì chia nhỏ thành nhiều VPS ra ví dụ 1 con VPS 50$ thì chia thành 5 con VPS 5$.
Còn 1 con VPS để làm cân bằng tải cho 5 con còn lại.
Mô hình rất khá đơn giản (VPS chịu tải thì cài Node.js với package http-proxy-middleware về để nó phân chia server cho các client đi qua)
CLIENT -> Loading Balancing -> Random (5 con Server) nó sẽ phân chia số lượng client đi qua đỡ mệt.
Còn lại xem lại query tối ưu MySQL để chịu tải cao, có thể sử dụng nhiều phương pháp cache bằng Redis thay vì cache truyền thống thông qua PHP