我编写了一个Python脚本,将 的文本输出转换tcpdump -i eth0 -neXXs0为text2pcap. 这是我的第一个Python程序,我正在寻找建议来提高其效率、可读性或代码中的任何潜在差异。
我正在使用的输出格式tcpdump如下所示:
20:11:32.001190 00:16:76:7f:2b:b1 > 00:11:5c:78:ca:c0, ethertype IPv4 (0x0800), length 72: 123.236.188.140.41756 > 94.59.34.210.45931: UDP, length 30
0x0000: 0011 5c78 cac0 0016 767f 2bb1 0800 4500 ..\x....v.+...E.
0x0010: 003a 0000 4000 4011 812d 7bec bc8c 5e3b .:..@.@..-{...^;
0x0020: 22d2 a31c b36b 0026 b9bd 2033 6890 ad33 "....k.&...3h..3
0x0030: e845 4b8d 2ba1 0685 0cb3 70dd 9b98 76d8 .EK.+.....p...v.
0x0040: 8fc6 8293 bf33 325a .....32Z
Run Code Online (Sandbox Code Playgroud)
输出
可以理解的格式 …
我有一个Linux硬件服务器,有16GB的物理内存并运行一些应用程序.到目前为止,这台服务器启动并运行了大约365天,我观察到"free -m"显示内存不足.
total used free shared buffers cached
Mem: 14966 13451 1515 0 234 237
-/+ buffers/cache: 12979 1987
Swap: 4094 367 3727
Run Code Online (Sandbox Code Playgroud)
据我所知,1987年系统中的实际可用内存不到14%.如果我在"ps -A v"输出中添加%MEM部分或从"top"添加,则它不会加起来为100%.
我需要理解为什么内存如此之低?
更新(2012年2月29日):
让我将这个问题分成两部分:
1)系统具有较少的可用内存.
2)识别已用内存的去向.
对于1),我理解; 如果系统在可用内存上运行不足,我们可能会看到性能逐渐下降.在某些时候,分页会为系统提供额外的空闲内存,从而恢复系统性能.如果我错了,请纠正我.
对于2),现在这就是我想要了解使用内存消失的地方.如果我总结输出"ps -A v"或"top -n 1 -b"中的%MEM,则不超过50%.那么在哪里可以解释其余40%的无法追踪的记忆.我们在服务器中有自己的内核模块.如果这些模块泄漏内存,他们会得到记录.是否可以知道内核模块中的泄漏量.
linux ×1
memory ×1
memory-leaks ×1
networking ×1
pcap ×1
python ×1
regex ×1
system ×1
tcpdump ×1