Đưa ra một /proc/<pid>/fd
nút inode của socket TCP (có được thông qua ), có cách nào nhanh hơn để tra cứu thông tin mà tôi có thể nhận được từ /proc/net/tcp
ổ cắm này không?
Tôi đã viết một công cụ xử lý sự cố theo dõi các quy trình và in thông tin thời gian thực về các hoạt động IO ( strace
thông tin -type được thu thập thành các bản tóm tắt cấp cao hơn và được trình bày theo cách ít thô sơ hơn), nhưng trên một máy chủ mạng được tải nặng, tôi thấy rằng cần có thời gian để tra cứu thông tin ổ cắm (ví dụ: địa chỉ / cổng nước ngoài) bị cấm đơn giản do kích thước rất lớn /proc/net/tcp
(khoảng 2MB trên máy chủ mà tôi hiện đang xem).
Tôi có thể quản lý phần nào điều này bằng bộ nhớ đệm, nhưng điều này nhất thiết phải giới thiệu độ trễ và khiến tôi tự hỏi về sự vô lý của một "API" yêu cầu đọc và phân tích văn bản ASCII trị giá 2 MB để tìm thông tin trên ổ cắm.
iptstate
có nhu cầu tương tự. Bạn có thể nhìn vào cách chương trình đó làm điều đó. Tôi không tin nó sử dụng/proc/net/tcp
.