This forum uses cookies
This forum makes use of cookies to store your login information if you are registered, and your last visit if you are not. Cookies are small text documents stored on your computer; the cookies set by this forum can only be used on this website and pose no security risk. Cookies on this forum also track the specific topics you have read and when you last read them. Please confirm that you accept these cookies being set.

groupmonitor.lua is sometimes faulty
#5
@gjniewenhuijse, your system looks overloaded too. Another indication is non-zero rx_queue value. It means that messages cannot be processes quickly enough and are queued.

You can run this script, it will log all processes that have at least one message dropped.
Code:
inodes = {}

function collect(pid)
  local res = io.readproc('ls -l /proc/' .. pid .. '/fd') or ''
  local cmd = io.readfile('/proc/' .. pid .. '/cmdline') or ''
  cmd = cmd:gsub('%z', ' '):trim()

  for inode in res:gmatch('socket:%[(%d+)%]') do
    inodes[ tonumber(inode) ] = cmd
  end
end

pids = io.ls('/proc')

for _, pid in ipairs(pids) do
  pid = tonumber(pid)
  if pid then
    collect(pid)
  end
end

data = io.readfile('/proc/net/udp'):split('\n')
table.remove(data, 1)

function check(chunks)
  local drops = tonumber(chunks[ 13 ]) or 0

  if drops == 0 then
    return
  end

  local inode = tonumber(chunks[ 10 ]) or 0
  local cmd = inodes[ inode ]

  if cmd then
    log(cmd .. ', drops: ' .. drops)
  end
end

for _, line in ipairs(data) do
  chunks = line:trim():gsub('%s+', ' '):split(' ')
  if #chunks == 13 then
    check(chunks)
  end
end

Consider installing Group monitor app and check for duplicates and unnecessary object traffic that causes such overloads.
Reply


Messages In This Thread
RE: groupmonitor.lua is sometimes faulty - by admin - 23.10.2023, 11:45

Forum Jump: