Bài viết sau đây, InterData sẽ giúp bạn xác định nguyên nhân gây ra tình trạng bị Full CPU trên VPS và sẽ gợi ý những cách để khắc phục tình trạng này một cách hiệu quả. Qua đó, bạn có thể dễ dàng tối ưu cho website của bạn hoạt động ổn định hơn.
Lý do gây ra tình trạng bị Full CPU trên VPS
Việc CPU của máy chủ ảo VPS bị quá tải là một tình trạng phổ biến trong quá trình sử dụng. Để tìm ra nguyên nhân chính khiến CPU đạt 100% trên VPS Windows 10, bạn có thể chạy lệnh TOP hoặc HTOP để theo dõi các quy trình tiêu tốn nhiều CPU nhất.
Nhấn tổ hợp phím Shift + P để sắp xếp theo mức sử dụng CPU. Qua đó, bạn sẽ dễ dàng xác định xem liệu vấn đề xuất phát từ một quy trình đơn lẻ hay do nhiều quy trình cùng lúc khiến CPU bị quá tải.
Một nguyên nhân khác dẫn đến tình trạng bị quá tải CPU trên VPS thường đến từ các quy trình PHP và MySQL thay vì LiteSpeed Web Server. Dù LiteSpeed có tốc độ xử lý nhanh, nó không thể kiểm soát hiệu suất của một tập lệnh PHP hoặc lượng bộ nhớ mà tập lệnh đó yêu cầu. Vì vậy, khi gặp tình trạng CPU bị đầy, bạn cần chú ý đến các yếu tố khác thay vì chỉ tập trung vào cấu hình LiteSpeed Web Server.
Hướng dẫn cách xử lý khi bị đầy CPU VPS
Để cải thiện hiệu suất website và giảm áp lực cho máy chủ ảo VPS, có nhiều yếu tố cần xem xét và tối ưu hóa. Dưới đây là một số gợi ý giúp bạn kiểm tra và tối ưu hệ thống.
Cách 1: Tăng tốc độ website với Cache
Việc tạo bộ nhớ đệm (cache) là cần thiết cho hầu hết các website nhằm giảm tải cho máy chủ. Bạn có thể sử dụng LSCache để tăng tốc website và giảm đáng kể áp lực lên máy chủ. Đối với các website sử dụng WordPress, plugin Litespeed Cache là lựa chọn phù hợp. Nếu bạn sử dụng các nền tảng khác, hãy tham khảo tài liệu hướng dẫn từ Litespeed Tech tại đây.
Cách 2: Xác định tiến trình nào tiêu hao CPU
Một cách hiệu quả để xác định tiến trình ngốn nhiều tài nguyên CPU là sử dụng lệnh top hoặc atop. Điều này giúp bạn phát hiện các tiến trình chiếm dụng CPU cao và đánh giá xem chúng có hoạt động đúng cách không để từ đó xử lý vấn đề kịp thời.
Cách 3: Kiểm tra hiệu suất I/O
Nếu mức độ sử dụng I/O cao, đây có thể là dấu hiệu của vấn đề liên quan đến I/O cần được giải quyết. Nếu máy chủ của bạn có đủ bộ nhớ trống, bạn có thể chuyển các phiên PHP sang /dev/shm để giảm tải I/O.
Cách 4: Tối ưu hiệu suất với CloudLinux LVE
Khi cài đặt CloudLinux, sử dụng giới hạn LVE sẽ giúp kiểm soát và ngăn chặn bất kỳ người dùng nào tiêu tốn toàn bộ tài nguyên của máy chủ.
Trong mô hình Shared Hosting truyền thống, quản trị viên thường khó kiểm soát lượng tài nguyên dành cho từng tài khoản. Điều này dẫn đến việc khi một trang web nhận được lượng truy cập lớn đột ngột, gặp sự cố bảo mật, hoặc bị tấn công từ chối dịch vụ (DoS), các tài khoản khác trên cùng máy chủ, thậm chí cả hệ thống, sẽ bị ảnh hưởng, dẫn đến tình trạng chậm hoặc gián đoạn.
CloudLinux OS thực hiện phân vùng tài khoản hosting bằng cách phân chia từng tài khoản vào môi trường ảo hóa riêng biệt, sử dụng công nghệ Môi trường Ảo hóa Nhẹ (LVE) giúp giới hạn khách hàng trong phạm vi CPU, RAM và số lượng tiến trình đã được phân bổ cho họ. Kết quả là hệ thống đạt độ ổn định cao, bảo mật tốt và cho phép tăng mật độ tài khoản trên cùng một máy chủ.
Cách 5: Nâng cấp PHP
Hãy chuyển sang PHP7 nếu mã của bạn tương thích, thay vì sử dụng PHP5. Việc nâng cấp mã nguồn lên các phiên bản PHP mới hơn không chỉ được khuyến khích mà còn giúp cải thiện hiệu suất hệ thống đáng kể.
Cách 6: Thử sử dụng Opcode Cache
Một cách khá hiệu quả để xử lý tình trạng bị Full CPU trên VPS là kích hoạt bộ nhớ đệm opcode của PHP, kết hợp cùng bộ nhớ đệm Litespeed, sẽ giúp tối ưu hóa hiệu suất website của bạn đáng kể và giảm tải cho máy chủ.
Cách 7: Theo dõi thống kê thời gian thực
Để theo dõi số lượng quy trình PHP trong các thời điểm cao điểm, bạn có thể đăng nhập vào phần quản trị Litespeed qua cổng 7080. Tại đó, vào Actions > Real-Time Stats > External Application và kiểm tra các thông số như In Use, Idle, và WaitQ. Nếu trong hosting chia sẻ có một số người dùng tiêu thụ nhiều quy trình PHP hơn so với phần còn lại, bạn có thể hạ cài đặt PHP max concurrency để cải thiện hiệu suất chung.
Cách 8: Xác định dấu hiệu tấn công
Các cuộc tấn công DDoS có thể khiến máy chủ hoạt động quá tải. Bạn có thể kiểm tra tình trạng kết nối đồng thời bằng lệnh sau:
netstat -na | grep 80 | grep ESTA
Để xem chi tiết số lượng kết nối theo từng địa chỉ IP, sử dụng lệnh:
netstat -ntu | grep ESTABLISHED | awk '{print $5}' | cut -d: -f1 | sort | uniq -c | sort -nr
Để kiểm tra thời gian chờ kết nối time_wait, bạn chỉ cần chạy lệnh netstat mà không cần lọc trạng thái ESTABLISHED:
netstat -ntu | awk '{print $5}' | cut -d: -f1 | sort | uniq -c | sort -nr
Trong LSWS WAF, bạn có thể thử các công cụ để đối phó với tấn công DDoS. Nếu xác định được một vài địa chỉ IP đang gây ra vấn đề, hãy giới hạn tài nguyên mà các IP này có thể sử dụng. Máy chủ web không thể tự giới hạn tốc độ chạy hoặc lượng bộ nhớ mà một tập lệnh PHP tiêu thụ, nhưng tính năng giới hạn LVE
Khi máy chủ đang đối mặt với một cuộc tấn công hoặc bị lạm dụng tài nguyên, hãy xem xét chặn các IP xấu qua danh sách đen hoặc sử dụng bộ quy tắc mod_security để ngăn chặn. Dù máy chủ có hiệu suất cao, nó vẫn chỉ xử lý được giới hạn lưu lượng mà PHP và MySQL có thể chịu đựng, trừ khi nội dung được phân phối từ bộ nhớ đệm.
Cách 9: Vô hiệu hóa open_basedir
Open_basedir là một chức năng PHP dùng để giới hạn các vị trí hoặc đường dẫn cho các hàm truy cập tệp như fopen() hay gzopen(). Điều này đảm bảo rằng PHP không thể truy cập các tệp bên ngoài thư mục được phép, ngăn chặn truy cập trái phép. Đây là một tính năng bảo mật giúp bảo vệ các website trên cùng một máy chủ khỏi lây nhiễm mã độc chéo.
Trên các dịch vụ hosting thông thường, Open_basedir thường được kích hoạt tự động và không thể tắt. Tuy nhiên, một số website có thể yêu cầu tắt Open_basedir để hoạt động bình thường, như khi dùng plugin Duplicator để khôi phục trang WordPress.
Cách 10: Kiểm tra chất lượng mã nguồn trên website
Hãy kiểm tra mã nguồn để đảm bảo tuân thủ quy chuẩn và không gây lãng phí tài nguyên hệ thống. Để xác định các tiến trình PHP nào thường xuyên được gọi, bạn có thể sử dụng lệnh sau:
strace -c php index.php
Nếu bạn sử dụng WordPress cho website, hãy bật chế độ debug và cài plugin Query Monitor để phát hiện lỗi trong các hàm PHP hoặc kiểm tra thông báo lỗi. Điều này sẽ giúp bạn xác định và xử lý nguyên nhân sự cố nhanh chóng.
Cách 11: Xử lý website bị nhiễm mã độc
Khi website bị nhiễm mã độc, máy chủ có thể bị quá tải do tài nguyên bị chiếm dụng nhiều. Hãy kiểm tra các yếu tố đang ngốn tài nguyên theo hướng dẫn ở mục 2 để nhanh chóng xác định và giải quyết sự cố.
Ngoài ra, hãy đảm bảo kích hoạt giới hạn LVE để ngăn chặn việc một người dùng chiếm dụng toàn bộ tài nguyên máy chủ.
Nếu bạn đang dùng WordPress, chỉ nên tải theme và plugin từ các nguồn đáng tin cậy; tránh sử dụng các plugin chia sẻ miễn phí từ các nguồn không rõ ràng vì dễ chứa mã độc. Khi website bị nhiễm, việc khắc phục sẽ rất tốn thời gian và công sức.
Cách 12: Cân nhắc nâng cấp máy chủ
Nếu VPS hiện tại đang gặp giới hạn tài nguyên hoặc một website có lượng truy cập quá lớn gây ra tình trạng quá tải, hãy xem xét nâng cấp VPS để đảm bảo hiệu suất ổn định và tránh tình trạng CPU bị quá tải.
Trên đây là tất tần tật các cách để xử lý tình trạng CPU bị đầy trên VPS. Bằng cách thực hiện theo các gợi ý trên sẽ giúp máy chủ của bạn hoạt động được trơn tru và ổn định hơn.
InterData.vn cung cấp dịch vụ thuê VPS cấu hình cao với nhiều gói cấu hình từ cơ bản đến nâng cao, phù hợp cho cả cá nhân và doanh nghiệp. Bên cạnh đó, bạn cũng có thể lựa chọn dịch vụ Hosting chất lượng cao với khả năng tùy chỉnh linh hoạt, đáp ứng tốt mọi nhu cầu.
Ngoài ra, InterData còn cung cấp Cloud Server mạnh mẽ với khả năng mở rộng dễ dàng, giúp bạn xử lý tốt các hệ thống lớn. Nếu cần giải pháp mạnh mẽ hơn, dịch vụ thuê máy chủ vật lý của InterData đảm bảo hiệu suất tối ưu và bảo mật cao, mang lại sự an tâm cho doanh nghiệp trong quá trình vận hành hệ thống lâu dài.
Với InterData, bạn có thể hoàn toàn tin tưởng vào hiệu quả và độ ổn định của các giải pháp lưu trữ.
InterData
- Website: Interdata.vn
- Hotline 24/24: 1900-636822
- Email: [email protected]
- VPĐD: 240 Nguyễn Đình Chính, P.11. Q. Phú Nhuận, TP. Hồ Chí Minh
- VPGD: Số 211 Đường số 5, KĐT Lakeview City, P. An Phú, TP. Thủ Đức, TP. Hồ Chí Minh