есть программа которая открывает порт и ждёт UDP пакеты , читает их и обрабатывает. есть подозрение что она не успевает обрабатывать неоторые пакеты и они теряются , как такое можно проверить ? Программа написана на C и как я понимаю такое можно посмотреть через ioctl , только я так и не нашел как именно. Загрузка проца нулевая , канал 100М потери могут быть только если переполняется буфер.
Здравствуйте, Orlik, Вы писали:
O>есть программа которая открывает порт и ждёт UDP пакеты , читает их и обрабатывает. есть подозрение что она не успевает обрабатывать неоторые пакеты и они теряются , как такое можно проверить ? Программа написана на C и как я понимаю такое можно посмотреть через ioctl , только я так и не нашел как именно. Загрузка проца нулевая , канал 100М потери могут быть только если переполняется буфер.
tcpdump.
В качестве первой меры подними приоритет потоку, который у тебя принимает пакеты и обрабатывай пакеты асинхронно.
Здравствуйте, aik, Вы писали:
aik>Здравствуйте, Orlik, Вы писали:
O>>есть программа которая открывает порт и ждёт UDP пакеты , читает их и обрабатывает. есть подозрение что она не успевает обрабатывать неоторые пакеты и они теряются , как такое можно проверить ? Программа написана на C и как я понимаю такое можно посмотреть через ioctl , только я так и не нашел как именно. Загрузка проца нулевая , канал 100М потери могут быть только если переполняется буфер.
aik>tcpdump. aik>В качестве первой меры подними приоритет потоку, который у тебя принимает пакеты и обрабатывай пакеты асинхронно.
tcpdump при нескольких десятков пакетов в секунду ? и чего там можно будет увидеть ?
Здравствуйте, Orlik, Вы писали:
aik>>tcpdump. O>tcpdump при нескольких десятков пакетов в секунду ? и чего там можно будет увидеть ?
если запустить на 2 компах, то можно увидеть ушел ли пакет вообще и пришел ли адресату. А что ковыряться сложновато — ну есть такое, так воткни в пакеты видимые строчки с номером, чтоб глазами быстро просмотреть можно было.
On Wed, 01 Feb 2006 11:06:40 -0000, Orlik <6681@users.rsdn.ru> wrote:
> есть программа которая открывает порт и ждёт UDP пакеты , читает их и обрабатывает. есть подозрение что она не успевает обрабатывать неоторые пакеты и они теряются , как такое можно проверить ? Программа написана на C и как я понимаю такое можно посмотреть через ioctl , только я так и не нашел как именно. Загрузка проца нулевая , канал 100М потери могут быть только если переполняется буфер.
Как быстрый и грязный тест, попробуй установить размер приемного буфера, скажем, в 8мб, и сравнить поведение.