Mới đây, một lập trình viên đã chia sẻ giải pháp tối ưu hóa hiệu suất đáng chú ý cho eBPF security agent của họ bằng cách ứng dụng kỹ thuật memoization. Trong quá trình vận hành, phần tốn kém tài nguyên nhất không phải là thực thi chính sách cho phép hay từ chối, mà là việc xác định chính sách nào áp dụng cho một thao tác mở tệp. Do các chính sách dựa trên đường dẫn, hệ thống trước đây phải thực hiện thao tác duyệt ngược các thư mục cha (dentries) trên mỗi lần mở tệp, gây ra sự lãng phí lớn đối với các tác vụ truy cập cơ sở dữ liệu lặp đi lặp lại.
Để giải quyết bài toán này, nhóm phát triển đã xây dựng một cơ chế cache dựa trên inode kết hợp ba trường gồm mã định danh namespace (mntns_id), mã định danh mount (mount_id) và số inode nhằm đảm bảo tính chính xác và an toàn trong môi trường kernel. Sử dụng cấu trúc bản đồ LRU hash map, giải pháp này giúp lưu trữ trạng thái chính sách thay vì phải duyệt lại toàn bộ đường dẫn tệp. Kết quả thực tế cho thấy chi phí CPU trong kernel đã giảm khoảng 90%, đồng thời mã nguồn cũng đã được mở mã nguồn mở trên GitHub để cộng đồng tham khảo.
Cải tiến kỹ thuật này mang lại ý nghĩa thiết thực cho cộng đồng phát triển các giải pháp bảo mật và hạ tầng hệ thống tại Việt Nam. Việc tối ưu hóa hiệu suất eBPF giúp giảm thiểu tình trạng nghẽn cổ chai tài nguyên trên các hệ thống sản xuất lớn, mở ra hướng đi hiệu quả hơn khi xây dựng các công cụ giám sát và bảo mật nhân Linux.
Nguồn: Hacker News — Biên dịch & tổng hợp: danhbaai.com