Comments 11
Алексей, hitrate измеряли продакшеном или использовали для тестирования какие-либо утилиты?
0
Если вы про то сколько сможет обработать на статике, то сейчас замерил, с данным конфигом, вышло следующее:
#ab -i -n1000 -c10…
Requests per second: 13.70 [#/sec] (mean)
Time per request: 729.779 [ms] (mean)
Time per request: 72.978 [ms] (mean, across all concurrent requests)
(каждый заход был учтен корректно)
Да не много, но это если отправлять на каждый чих, можно использовать shared_dict и накапливать хиты там, потом отправлять. При этом в последний параметр ставить не 1, а количество накопленных. Тогда можно уменьшить количество обращений к GA и повысить hitrate.
#ab -i -n1000 -c10…
Requests per second: 13.70 [#/sec] (mean)
Time per request: 729.779 [ms] (mean)
Time per request: 72.978 [ms] (mean, across all concurrent requests)
(каждый заход был учтен корректно)
Да не много, но это если отправлять на каждый чих, можно использовать shared_dict и накапливать хиты там, потом отправлять. При этом в последний параметр ставить не 1, а количество накопленных. Тогда можно уменьшить количество обращений к GA и повысить hitrate.
0
Отличная штука, спасибо.
А запрос к GA асинхронный?
А запрос к GA асинхронный?
0
Если я правильно понял документацию, то сокеты не блокирующие, но синхронные. То есть, текущее соединение ждет результата, но другие не блокируются. Хотя судя по цифрам как-то не понятно
ngx.socket.tcp
Creates and returns a TCP or stream-oriented unix domain socket object (also known as one type of the «cosocket» objects).
tcpsock:send
Sends data without blocking on the current TCP or Unix Domain Socket connection.
This method is a synchronous operation that will not return until all the data has been flushed into the system socket send buffer or an error occurs.
+1
Все верно. Сокеты — non-blocking & synchronous
Если хочется асинхронных запросов, то можно сделать
ngx.location.capture, где все и обрабатывать.
Здесь уже будет асинхронно. Добавить shared_dict и будет наверное еще быстрее.
Если хочется асинхронных запросов, то можно сделать
ngx.location.capture, где все и обрабатывать.
Здесь уже будет асинхронно. Добавить shared_dict и будет наверное еще быстрее.
0
Не, Тёма, location.capture — он такой же, как сокеты: синхронный и неблокирующий; Lua будет ждать, пока capture не вернёт ответ.
Но всегда можно перед ssga.event() засунуть ngx.eof(): это отцепит клиента, а сервер продолжит спокойно отсылать запрос в фоне. Ну или в локации, на которую уйдёт location.capture, первой строкой выполнить ngx.eof(), тогда capture выполнится мгновенно.
Но всегда можно перед ssga.event() засунуть ngx.eof(): это отцепит клиента, а сервер продолжит спокойно отсылать запрос в фоне. Ну или в локации, на которую уйдёт location.capture, первой строкой выполнить ngx.eof(), тогда capture выполнится мгновенно.
+1
-не обновил страницу. удалил-
0
Прошу прощения за лёгкий оффтоп, но как же прекрасно, что на хабре есть столько людей разделяющих мой интерес к NgX+mod_lua :D
// а может кто-нибудь из вас ещё и resty-template (с прочими resty-*) использует? :)
// а может кто-нибудь из вас ещё и resty-template (с прочими resty-*) использует? :)
0
Sign up to leave a comment.
Подсчет статистики загрузок в Google Analytics