BSDPORTAL.RU

На этом сайте обсуждаются вопросы использования ОС FreeBSD
 Портал  •  Статьи  •  Форум  •  Wiki  •  Поиск  •  FAQ  •  Обои  •   Официальная документация  •  Новые темы 

Часовой пояс: UTC + 4 часа




Начать новую тему Ответить на тему  [ Сообщений: 4 ] 
Автор Сообщение
 Заголовок сообщения: Логирование Socket, чем и как?
СообщениеДобавлено: Вс 06 окт, 2019 11:12 pm 
Не в сети

Зарегистрирован: Вс 06 окт, 2019 10:59 pm
Сообщения: 3
Здравствуйте, уровень знаний очень низкий. Помогите пожалуйста, с методом поиска неисправности. Имеется проблема, которую надо локализовать.
Установлен и запущен прокси(Privoxy), который теряет один конкретный пакет. В логах прокси висит запись о том что запрос обработан и отправлен в систему(write socket), но по факту запрос не уходит в сеть, Снифф сделанный tcpdump с этой машины чётко об этом говорит. Как можно локализовать проблему? Существует какой либо метод логированния, для записи того, что пришло на socket от privoxy?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Логирование Socket, чем и как?
СообщениеДобавлено: Пн 07 окт, 2019 7:36 pm 
Не в сети
Модератор

Зарегистрирован: Сб 11 сен, 2004 6:33 am
Сообщения: 5270
Откуда: Москва
ktrace, dtrace


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Логирование Socket, чем и как?
СообщениеДобавлено: Ср 09 окт, 2019 1:20 pm 
Не в сети

Зарегистрирован: Вс 06 окт, 2019 10:59 pm
Сообщения: 3
спасибо, это то что нужно. Всё-равно нет понимания, что надо логировать. Воспользовался ktrace. Утилита показала, что прокси отработал верно, хотя встроенное логированние у прокси не честное.
проблемное место записанное ktrace по pid privoxy:
Код:
  1000 privoxy  CALL  write(0x7,0x28654960,0xc8)
  1000 privoxy  GIO   fd 7 wrote 200 bytes
       "GET /AccessLevelDictionary/list HTTP/1.1\r
Connection: Keep-Alive\r
Accept-Encoding: gzip\r
Accept-Language: en,*\r
User-Agent: Mozilla/5.0\r
Host: exemple.ru:8080\r
\r
       "
  1000 privoxy  RET   write 200/0xc8
  1000 privoxy  CALL  poll(0xbbbfcbe0,0x2,0x927c0)
  1000 privoxy  RET   poll 1
  1000 privoxy  CALL  poll(0xbbbfb7e0,0x1,0)
  1000 privoxy  RET   poll 1
  1000 privoxy  CALL  recvfrom(0x8,0xbbbfb7ee,0x1,0x2<MSG_PEEK>,0,0)
  1000 privoxy  GIO   fd 8 read 0 bytes
       ""
  1000 privoxy  RET   recvfrom 0
  1000 privoxy  CALL  poll(0xbbbfdf50,0x1,0)
  1000 privoxy  RET   poll 0
  1000 privoxy  CALL  close(0x7)
  1000 privoxy  RET   close 0

Я так понимаю, что прокси корректно отправил данные в 7 сокет.
Во всех остальных случаях после первого CALL poll идёт сразу вызов CALL read с ответом от сервера.
Получается, что ядро потеряло вызов. Что можно заснифить, что бы локализовать проблему?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Логирование Socket, чем и как?
СообщениеДобавлено: Пн 14 окт, 2019 10:51 am 
Не в сети

Зарегистрирован: Вс 06 окт, 2019 10:59 pm
Сообщения: 3
воспользовался truss, которая подписала больше байтиков. Прокси, похоже проигнорировал такой вызов:
poll({ 8/POLLERR|POLLHUP 9/POLLIN },2,600000) = 1 (0x1)
Но делу это не помогло.
Обратил внимание, что последовательность обработки данных в вызовах прокси и tcpdump не совпадают.
А проблема возникает только при загрузке приложения(при одиночном запросе всё в порядке).
Полез разбираться с сетевыми настройками фряхи, которые ни когда не менял.
Дело оказалось в параметре kern.ipc.somaxconn который по умолчанию установлен в 128.
Дело усугубилось тем, что начиная с 10 релиза этот аргумент как бы есть но не виден в системе.
Вместо него надо использовать kern.ipc.soacceptqueue.
В связи с этим вопрос: какими методами можно диффектовать такие проблемы?
Вызовы типа netstat, vmstat не эффективны в поиске проблемы.


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 4 ] 

Часовой пояс: UTC + 4 часа


Кто сейчас на конференции

Зарегистрированные пользователи: Google [Bot], GreenDragon, Majestic-12 [Bot]


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Создано на основе phpBB® Forum Software © phpBB Group
Русская поддержка phpBB
Яндекс.Метрика