无标题
Gần đây, hệ thống blog đã gặp một số vấn đề.
Gần đây, hệ thống blog đã gặp một số vấn đề.
Một vài sự cố bất ngờ trên hệ thống blog gần đây khiến mình phải thức trắng đêm để xử lý. Sự việc bắt đầu từ khi một bạn đọc thông báo không thể gửi bình luận được nữa, hệ thống liên tục báo lỗi “Không thể tạo file mới”. Mình lập tức đăng nhập SSH kiểm tra thì phát hiện dung lượng ổ cứng vẫn còn đến 30%, nhưng khi dùng lệnh df -i để tra cứu inode thì phát hiện toàn bộ inode đã bị chiếm hết.
Điều khiến mình bối rối là không thể xác định ngay nguyên nhân gây ra hiện tượng hao hụt inode nghiêm trọng này. Bằng phương pháp chia đôi thư mục để kiểm tra từng khu vực, cuối cùng phát hiện thủ phạm lại chính là một ứng dụng lưu bút cũ được viết bằng PHP từ nhiều năm trước. Mỗi lần có bình luận mới, chương trình này lại tự động tạo một file text riêng biệt trong thư mục, dù đường dẫn truy cập không hề được công khai. Không hiểu bị con bọ nào đánh hơi thấy, sau hàng nghìn lượt quét hệ thống đã tích trữ đến một triệu bình luận rác. Sau khi xóa toàn bộ những file thừa này, hệ thống hoạt động trở lại mượt mà ngay lập tức.
Trong thời gian gần đây còn xuất hiện tình trạng gián đoạn truy cập web đột ngột. Quá trình kiểm tra kỹ lưỡng phát hiện nguyên nhân bắt nguồn từ lỗi deadlock trong một hệ thống wiki cũ từng được sử dụng. Mặc dù đây là phần mềm mã nguồn mở, nhưng đã ngưng bảo trì từ lâu. Trong những năm qua mình đã cố gắng vá lại vài lỗi nghiêm trọng, nhưng lần này quyết định dứt khoát gỡ toàn bộ liên kết khỏi trang chủ để tránh rủi ro.
Sự cố cuối cùng khiến nhiều bạn đọc phàn nàn chính là tốc độ xử lý bình luận cực kỳ chậm chạp. Có bạn phải gửi đi gửi lại đến hàng chục lần khiến hệ thống bị quá tải. Nguyên nhân có thể do lượng dữ liệu tích lũy theo năm tháng hoặc do cấu trúc cơ sở dữ liệu của phiên bản Movable Type cũ không còn phù hợp. Dù chưa xác định rõ nguyên nhân chính xác, nhưng qua sự cố lần này mình đã quyết định sẽ xây dựng một hệ thống blog hoàn toàn mới từ đầu.
Trải nghiệm lần này khiến mình nhận ra rằng việc duy trì những hệ thống mã nguồn mở đã ngừng bảo trì vừa tốn thời gian lại tiềm ẩn nhiều rủi ro. Thà đầu tư công sức xây dựng một hệ thống riêng theo nhu cầu cá nhân còn hiệu quả hơn nhiều. Mình dự tính sẽ chia sẻ lộ trình chuyển đổi hệ thống mới trong những bài viết tiếp theo, mong nhận được sự ủng hộ của các bạn!