- PVSM.RU - https://www.pvsm.ru -
На днях встал перед задачей, как определить, сколько времени тратит NFS сервер на запрос.
Оказалось, что это не так уж и просто посмотреть. Но на помощь пришёл любимый молоток инструмент — wireshark. Для wireshak можно написать своё расширение на LUA.
Идея простая: берём NFS запрос и кладём в hashmap, а когда видим ответ, то считаем
разницу во времени:
if msgtyp == 0 then
packets[xid] = {
timestamp = frameepochtime,
source = tostring(ipsrc),
destination = tostring(ipdst),
op_code = nfs_op
};
else
local l = packets[xid]
if l ~= nul then
packets[xid] = nil
local time_delta = frameepochtime - l.timestamp
if time_delta > min_time_delta then
print(frametime .. " " .. l.source .. " <=> " .. l.destination .. " " .. string.format("%.3f",time_delta) .. " " .. l.op_code)
end
end
Полный код доступен тут [1]
Запускается просто с командной строки
$ tshark -q -X lua_script:nfs.lua -f "port 2049"
Результат:
"Aug 27, 2014 16:44:43.000 CEST" aaaa:bbbb:ccc:10a0::1:7f <=> aaaa:bbbb:ccc:10bf::1:8c 0.001 v4_EXCHANGE_ID "Aug 27, 2014 16:44:43.000 CEST" aaaa:bbbb:ccc:10a0::1:7f <=> aaaa:bbbb:ccc:10bf::1:8c 0.001 v4_CREATE_SESSION "Aug 27, 2014 16:44:43.000 CEST" aaaa:bbbb:ccc:10a0::1:7f <=> aaaa:bbbb:ccc:10bf::1:8c 0.001 v4_PUTROOTFH "Aug 27, 2014 16:44:43.000 CEST" aaaa:bbbb:ccc:10a0::1:7f <=> aaaa:bbbb:ccc:10bf::1:8c 0.002 v4_RECLAIM_COMPLETE "Aug 27, 2014 16:44:43.000 CEST" aaaa:bbbb:ccc:10a0::1:7f <=> aaaa:bbbb:ccc:10bf::1:8c 0.001 v4_PUTROOTFH "Aug 27, 2014 16:44:43.000 CEST" aaaa:bbbb:ccc:10a0::1:7f <=> aaaa:bbbb:ccc:10bf::1:8c 0.001 v4_DESTROY_SESSION "Aug 27, 2014 16:44:43.000 CEST" a.b.161.127 <=> a.b.191.140 0.001 v4_EXCHANGE_ID "Aug 27, 2014 16:44:43.000 CEST" a.b.161.127 <=> a.b.191.140 0.001 v4_CREATE_SESSION "Aug 27, 2014 16:44:43.000 CEST" a.b.161.127 <=> a.b.191.140 0.003 v4_PUTROOTFH "Aug 27, 2014 16:44:43.000 CEST" a.b.161.127 <=> a.b.191.140 0.002 v4_RECLAIM_COMPLETE "Aug 27, 2014 16:44:43.000 CEST" a.b.161.127 <=> a.b.191.140 0.004 v4_PUTROOTFH
Может, у кого-то есть похожие наработки? Делитесь!
Lua Support in Wireshark [2]
Wireshark LUA wiki [3]
Автор: tmk826
Источник [4]
Сайт-источник PVSM.RU: https://www.pvsm.ru
Путь до страницы источника: https://www.pvsm.ru/api/72713
Ссылки в тексте:
[1] тут: https://github.com/kofemann/wireshark_lua
[2] Lua Support in Wireshark: https://www.wireshark.org/docs/wsug_html_chunked/wsluarm.html
[3] Wireshark LUA wiki: http://wiki.wireshark.org/Lua
[4] Источник: http://habrahabr.ru/post/241513/
Нажмите здесь для печати.