Как найти причину плохой работы сервиса RESTful? - PullRequest
0 голосов
/ 11 апреля 2009

Я создаю сервис, который получает данные с мобильных телефонов и сохраняет их в базе данных.

Телефон отправляет данные каждые 250 мс. Поскольку я заметил, что задержка хранения данных увеличивается, я попытался запустить WireShark и также записать журнал.

Я заметил, что веб-запросы с мобильного телефона выполняются без задержки (проверено с помощью WireShark), но в журнале услуг я заметил, что запрос принимается каждые две с половиной или почти две секунды.

Кто-нибудь знает, где может быть проблема или способ проверки и определения причины такой задержки?

Я создаю службу с WCF (webHttpBinding), а база данных - MS SQL. Кстати, в журнале хранится время http-запроса, а также время записи данных в базу данных. Как упоминалось выше, запрос принимается каждые 1,5 - 2 секунды, и после этого требуется 50 мс для сохранения данных в базе данных.

Спасибо!

Ответы [ 3 ]

0 голосов
/ 12 апреля 2009

Может быть, есть какое-то ограничение в соединении, наложенное поставщиком услуг?

Что произойдет, если вы (для тестирования) не будете писать в базу данных и просто зарегистрировать попадания страниц в журнал сервера с отметкой времени?

0 голосов
/ 12 апреля 2009

Убедитесь, что на веб-сервисах не запущена трассировка, это действительно может убить перфорацию.

0 голосов
/ 11 апреля 2009

Моим первым предположением после прочтения вопроса было то, что, возможно, вы отправляете данные так быстро, что сервер базы данных блокирует конфликт записи (например, поля AutoNumber?)

Если вашей платформой базы данных является SQL Server, посмотрите http://www.sql -server-performance.com / Articles / Per / Lock_contention_nolock_rowlock_p1.aspx

В любом случае, пожалуйста, опубликуйте больше информации об общей архитектуре системы ... какие программы / платформы используются, в каких частях и т. Д. ...

...