|
MON$STATEMENTS почему NULL-ы (Обсуждаем серверные таймауты)
|
|||
---|---|---|---|
#18+
Евгений Болтик Я про RDB$SET_CONTEXT сказал как временное решение, чтобы не расширять синтаксис до момента осознания, что нужно. То есть временно не документируемый код. Я бы так сделал. Так быстрей можно понять, что нужно и что происходит. Про ODS это к тому, что я так понимаю могут добавиться команды. Если не повлияет то даже можно без RDB$SET_CONTEXT сразу реализовать расширение функционала для тестеров. Ты не думал, что пока это будет тестироваться через RDB$SET_CONTEXT кто-нибудь заложится на это решение. А потом бац, и всё поменялось - код стал неработоспособен. К твоему сведению не каждая новая команда требует изменений ODS. Ответьте ему уж на вопрос Евгений БолтикА почему бы ИД транзакции не оставить хоть и выполнился запрос. Так хоть можно понять от какой транзакции это чудо. Транзакция то в списке болтается чтобы дальше обсуждению ничего не мешало. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.10.2013, 14:11 |
|
MON$STATEMENTS почему NULL-ы (Обсуждаем серверные таймауты)
|
|||
---|---|---|---|
#18+
Dimitry SibiryakovЕсли бы у меня хватало мозгов чтобы разобраться в современном коде птицыДело исключительно в желании, хватит пенять на мозги. Про мозги лучше с ё беседуй, ему твои нравятся :) Dimitry Sibiryakovя бы вынес туда весь приём пакетов от сервера и, возможно, их парсинг. ... А отсылку пакетов оставил бы тем потокам, в которых вызываются функции API. Естественно, с сериализацией этой отсылки.Берём любую ф-цию АПИ. Она пакует параметры, вызывает send и .... что дальше ? Ждёт ответа ? Но ведь recv вызывается в другом потоке. Тогда что же она ждёт ? Сигнала от этого другого потока ? А чем это лучше ожидания в recv ? Ок, получила она сигнал, что дальше ? Откуда-то выгребает пришедший пакет ? Т.е. опять ждёт на доступе к очереди с принятыми пакетами ? А, ты же предлагаешь чтобы доп. поток сам парсил принятые пакеты ! А что он делает с полученными данными ? С резалтсетами, статус-векторами, хендлами объектов ? Их ведь нужно предоставить рабочему потоку клиента. Кладём это всё в другой пакет и добавляем его в очередь ? :) Берём сервер приложений. Да, есть такие приложения, у которых вполне легально могут быть десятки и даже сотни хорошо нагруженных коннектов. Единый поток, работающий с сетью, сразу станет бутылочным горлышком. ЗЫ На самом деле центральный сетевой диспетчер (пусть и не в одном потоке) - это вполне рабочий подход. Но реализуется он не так, как ты написал. Но у нас есть дополнительные сложности на пути к нему: - в каждой ОСи соотв. АПИ не просто разное, а кардинально разное (по памяти - IOCP, epoll, kqueue) - в некоторых ОСях такого АПИ вообще нет - сочетать разные транспорты (протоколы) в едином диспетчере тоже не так просто ... |
|||
:
Нравится:
Не нравится:
|
|||
15.10.2013, 14:13 |
|
MON$STATEMENTS почему NULL-ы (Обсуждаем серверные таймауты)
|
|||
---|---|---|---|
#18+
Симонов ДенисОтветьте ему уж на вопрос Евгений БолтикА почему бы ИД транзакции не оставить хоть и выполнился запрос. Так хоть можно понять от какой транзакции это чудо. Транзакция то в списке болтаетсяdimitr появится, ответит. Если посчитает нужным. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.10.2013, 14:15 |
|
MON$STATEMENTS почему NULL-ы (Обсуждаем серверные таймауты)
|
|||
---|---|---|---|
#18+
hvladЕвгений Болтик, тебя регулярно слушает Дмитрий Еманов, насколько я знаю. Так что : - про "N лет игнорируемых просьб" ты преувеличиваешь, - вторую жертву ты не получишь :) За упомянутые "N лет", если ты игнорил ты был не прав. Ничего нового я вроде не предлагал. Только при попадание в ступор с сервером писал вам обоим. Были и мои ошибки и ваши(ну у тех кто до вас был). Я тоже не бог и бывает ошибки допускаю, но если я их нахожу, я тут же отписываюсь, мол сам дурак. Не успел намотал на ус "то что сказали" и сижу в норке. Если у тебя есть время, то мог бы и выслушать. А я не дурак чтобы кому то надоедать до игноров. Мог бы давно сказать мне не пиши, вместо игнора. Мне казалось, что либо ты либо он поможете при беде с сервером. Сейчас получается только он. Диме респект за то, что он меня хоть как то понимает и выслушивает. Но он не всесилен и сейчас такое впечатление в запарках по боле моих. Ответы долгие, это сказывается ..., т.к. поток данных у меня большой последнее время и могу забыть про что речь. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.10.2013, 14:29 |
|
MON$STATEMENTS почему NULL-ы (Обсуждаем серверные таймауты)
|
|||
---|---|---|---|
#18+
Евгений БолтикЗа упомянутые "N лет", если ты игнорил ты был не прав.Не вижу смысла это тут обсуждать. Добавлю только: - тебе спасибо за найденные проблемы в оптимизаторе - то, что ты мне писал, было в основном не по "моей" части, поэтому оно всё равно уходило к ДЕ - я не могу разорваться на части, тем более когда твой поток слов нужно сначала полдня расшифровывать Закончим на этом ... |
|||
:
Нравится:
Не нравится:
|
|||
15.10.2013, 14:34 |
|
MON$STATEMENTS почему NULL-ы (Обсуждаем серверные таймауты)
|
|||
---|---|---|---|
#18+
hvladБерём любую ф-цию АПИ. Она пакует параметры, вызывает send и .... что дальше ? Ждёт ответа ? Но ведь recv вызывается в другом потоке. Тогда что же она ждёт ? Сигнала от этого другого потока ? А чем это лучше ожидания в recv ? Ну, закладываясь на максимальный случай: эта функция помещает некоторый блок в некоторый список, в этом блоке есть хэндл event-а или адрес callback-функции, который и используется принимающим потоком после того как он положил в этот же блок адрес буфера с пришедшим пакетом (как есть или уже распарсенным). После создания этого блока и отсылки пакета функция может заниматься чем хочет, включая ожидание с таймаутом (буде какой-нибудь чудик таковой запросит), немедленный возврат в вызывающий код (буде она из пока не существующего асинхронного API) или что фантазия позволит. Получила сигнал - берёт из блока пришедший пакет, удаляет блок из списка и завершается, все счастливы. (ЕМНИП, именно так и работает лок-менеджер, только тот ждёт совсем не сетевые пакеты.) hvladБерём сервер приложений. Да, есть такие приложения, у которых вполне легально могут быть десятки и даже сотни хорошо нагруженных коннектов. Единый поток, работающий с сетью, сразу станет бутылочным горлышком. Ну, поздравляю, ты сам нашёл аргумент за создание отдельного потока на каждый коннект. (Что я и предлагал.) hvladНо у нас есть дополнительные сложности на пути к нему: - в каждой ОСи соотв. АПИ не просто разное, а кардинально разное (по памяти - IOCP, epoll, kqueue) - По счастью код этого потока не обязан собираться для всех ОСей из одного исходника - Старый добрый, имеющийся везде, select() имеет проблему с производительностью только если ему пихают много хэндлов, чего при системе "выделенный поток на каждый коннект" нет. hvlad- в некоторых ОСях такого АПИ вообще нет Назови OS где нет select(). hvlad- сочетать разные транспорты (протоколы) в едином диспетчере тоже не так просто И по счастью не нужно. Дело диспетчера - унифицировать список блоков ожидания. Каждый транспорт может обрабатываться разными функциями, благо коннект (и связанный с ним служебный поток) использует только один транспорт. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
15.10.2013, 14:36 |
|
MON$STATEMENTS почему NULL-ы (Обсуждаем серверные таймауты)
|
|||
---|---|---|---|
#18+
Евгений Болтик, в большинстве случаев тебе могли бы помочь и другие форумчане, а не только разработчики FB. Но ты не умеешь правильно формулировать вопросы. Последний раз когда мы с тобой беседовали после долгого количества часов всё таки выяснилось, что ты хочешь материлизованные представления. Ты же поначалу писал какую то чушь про супер мега индекс. Отсюда и такое отношение. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.10.2013, 14:38 |
|
MON$STATEMENTS почему NULL-ы (Обсуждаем серверные таймауты)
|
|||
---|---|---|---|
#18+
Dimitry SibiryakovНу, поздравляю, ты сам нашёл аргумент за создание отдельного потока на каждый коннект.Конечно нет. Dimitry SibiryakovПо счастью код этого потока не обязан собираться для всех ОСей из одного исходникаСпасибо тебе, добрый человек. Отлаживать 100500 реализаций одного и того же ведь ты будешь, правда ? Dimitry SibiryakovСтарый добрый, имеющийся везде, select() имеет проблему с производительностью только если ему пихают много хэндлов, чего при системе "выделенный поток на каждый коннект" нет.Поток на коннект - это последнее, что я буду рассматривать. Ну и подумай ещё о том, что 100 потоков, сидящих в select - это 100 вызовов ядра и 200 переключений контекста (если ты понимаешь, о чём я). На остальные "аргументы" я уже ответил выше. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.10.2013, 14:50 |
|
MON$STATEMENTS почему NULL-ы (Обсуждаем серверные таймауты)
|
|||
---|---|---|---|
#18+
kdvЕвгений БолтикДавай сделаем по другому я тебе предложу, что то без "игнора". Мы встретимся в скайпе, если будет у меня такое. Ты выслушаешь. извиняюсь, что влезаю, но если человек не может изложить мысль в письме, то и в скайпе он ее не изложит. Иногда даже и в очном разговоре мысль трудно понять. Мы, правда, тут уже давно работаем телепатами, но у этой способности есть предел. Все нормально. Просто иногда проще по скайпу объяснить чем на пальцах "которые описываешь в тексте". Нарисовать картинку по быстрому. Да-да нет-нет. И весь разговор, а так день два три переписки не о чем. Еще и огребешь. Это к тому что http://www.sql.ru/forum/1042010/obsuzhdenie-a-mozhet-multi-indeks было на "19 авг 13, 20:10" и что узнали на "20 авг 13, 20:01" "материализованного представления". 2. про многотабличные индексы я тебе уже пару лет назад говорил что в сад Это не ответ. Это отговорка, а вось когда нить дойдет до мальчика. Дошло давно только называли по разному. Что было трудно отправить почитать. Я вот не понимаю как это можно было не понять знатокам про "материализованного представления". Я только увидел бы такую тему и по тексту сразу определил, что мол мальчик хочет вот это и отправил почитать. Без ругани и лишних вопросов. А по скайпу, только заикнулся бы, что типа сводные таблицы в индексе, меня бы сразу знаток на место поставил и сказал это вот это. А вообще я выше писал про общение по скайпу 3 варианта ответа. И будет продуктив. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.10.2013, 14:51 |
|
MON$STATEMENTS почему NULL-ы (Обсуждаем серверные таймауты)
|
|||
---|---|---|---|
#18+
hvladПоток на коннект - это последнее, что я буду рассматривать. А зря, поскольку это простейший (а стало быть надёжнейший) вариант и рассматривать любые другие стоит только после того, как будет доказано, что он не справится. KISS. Не будешь усложнять задачу - не придётся ломать голову над решением. hvladНу и подумай ещё о том, что 100 потоков, сидящих в select - это 100 вызовов ядра и 200 переключений контекста (если ты понимаешь, о чём я). Это переключения в один конец. Вызовы не вернутся, пока не будет необходимости. Надеюсь, тебе не придёт в голову дурная идея для ожидания таймаута коннекта поставить таймаут у select в сотую долю секунды и каждый раз когда оно вернётся проверять текущее время... Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
15.10.2013, 15:01 |
|
MON$STATEMENTS почему NULL-ы (Обсуждаем серверные таймауты)
|
|||
---|---|---|---|
#18+
hvladЕвгений БолтикЗа упомянутые "N лет", если ты игнорил ты был не прав.Не вижу смысла это тут обсуждать. Добавлю только: - тебе спасибо за найденные проблемы в оптимизаторе - то, что ты мне писал, было в основном не по "моей" части, поэтому оно всё равно уходило к ДЕ - я не могу разорваться на части, тем более когда твой поток слов нужно сначала полдня расшифровывать Закончим на этом - не надо благодарить, я там бежал чуть раньше кого то другого. Ваша благодарность это ваша работа и своевременный отклик. :) моя забота ошарашить вас багом или получить пендаля, если сам виноват. - тогда извиняюсь, что тревожил тебя. Мне по почте, если не сложно по каким вопросам тебе отправлять. Не охота лишний раз надоедать. Можешь просто не за раз, а переодически постить мол по этой теме, я это отфильтрую и потом буду писать только по теме. - да ладно последнии репорты были максимально просты несколько запросов и статистика. Хотя если не ты их смотришь тогда ты не знаешь. PS Если бы у Embarcadero были разработчики как вы, то была бы благодать в Delphi в плане правленых багов. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.10.2013, 15:11 |
|
MON$STATEMENTS почему NULL-ы (Обсуждаем серверные таймауты)
|
|||
---|---|---|---|
#18+
Симонов ДенисЕвгений Болтик, в большинстве случаев тебе могли бы помочь и другие форумчане, а не только разработчики FB. Но ты не умеешь правильно формулировать вопросы. Последний раз когда мы с тобой беседовали после долгого количества часов всё таки выяснилось, что ты хочешь материлизованные представления. Ты же поначалу писал какую то чушь про супер мега индекс. Отсюда и такое отношение. Согласен. Кстати есть одна мысль могу по скайпу рассказать, а ты скажешь стоящая иль нет. А потом переварив предложишь здесь. Т.к. может такое где то есть и проще будет ткнуть в ту сторону. ;) ... |
|||
:
Нравится:
Не нравится:
|
|||
15.10.2013, 15:15 |
|
MON$STATEMENTS почему NULL-ы (Обсуждаем серверные таймауты)
|
|||
---|---|---|---|
#18+
Евгений Болтик, завязывай с флудом. Если хочешь чего спросить лучше создай отдельный топик. Обещаю не издеваться как прошлый раз. По скайпу мне общаться некогда. Я ещё и работаю. Сюда пишу в перерывах и чтобы мозги отвлечь. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.10.2013, 15:19 |
|
MON$STATEMENTS почему NULL-ы (Обсуждаем серверные таймауты)
|
|||
---|---|---|---|
#18+
Dimitry SibiryakovhvladПоток на коннект - это последнее, что я буду рассматривать. А зря, поскольку это простейшийПростейший вариант мы уже имеем сейчас. Dimitry SibiryakovhvladНу и подумай ещё о том, что 100 потоков, сидящих в select - это 100 вызовов ядра и 200 переключений контекста (если ты понимаешь, о чём я). Это переключения в один конец. Вызовы не вернутся, пока не будет необходимости.Не, ты меня не понимаешь. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.10.2013, 15:22 |
|
MON$STATEMENTS почему NULL-ы (Обсуждаем серверные таймауты)
|
|||
---|---|---|---|
#18+
Симонов ДенисЕвгений Болтик, завязывай с флудом. Если хочешь чего спросить лучше создай отдельный топик. Обещаю не издеваться как прошлый раз. По скайпу мне общаться некогда. Я ещё и работаю. Сюда пишу в перерывах и чтобы мозги отвлечь. Лучше тогда в почту тут начнется длинный офф сначала непонимания меня и т.д. Моя почта не скрыта. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.10.2013, 15:42 |
|
MON$STATEMENTS почему NULL-ы (Обсуждаем серверные таймауты)
|
|||
---|---|---|---|
#18+
hvladПростейший вариант мы уже имеем сейчас. Правильно. И поскольку он не работает так как хочется, время рассмотреть простейший среди оставшихся. hvladНе, ты меня не понимаешь. Естественно не понимаю: твои намёки слишком мудрёны. Насколько я знаю, потоки, висящие в функциях ожидания, шедулером ОСи игнорируются и никаких переключений между контекстами не происходит. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
15.10.2013, 15:42 |
|
MON$STATEMENTS почему NULL-ы (Обсуждаем серверные таймауты)
|
|||
---|---|---|---|
#18+
Dimitry SibiryakovЕстественно не понимаюНадоело. Если есть что по таймаутам, не трогая реализацию, давай. Остальное - без меня. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.10.2013, 16:09 |
|
MON$STATEMENTS почему NULL-ы (Обсуждаем серверные таймауты)
|
|||
---|---|---|---|
#18+
... |
|||
:
Нравится:
Не нравится:
|
|||
15.10.2013, 16:13 |
|
MON$STATEMENTS почему NULL-ы (Обсуждаем серверные таймауты)
|
|||
---|---|---|---|
#18+
Про таймаут на запрос. Он может указываться для всех в database.conf или непосредственно в вызове stsm.execute(sql, 10000), где 10000 необязательный параметр таймаута в секундах. Точный вызов API не помню поэтому извиняйте если что не так. Других мест вроде как придумать не могу. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.10.2013, 16:32 |
|
MON$STATEMENTS почему NULL-ы (Обсуждаем серверные таймауты)
|
|||
---|---|---|---|
#18+
Таймауты нужны, как минимум на длительность транзакции и время выполнения запроса. Но не должны ли они относиться к БД, а не к серверу? Ведь необходимое (допустимое) время реакции для для разных БД может быть разным. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.10.2013, 20:32 |
|
MON$STATEMENTS почему NULL-ы (Обсуждаем серверные таймауты)
|
|||
---|---|---|---|
#18+
Alex Truhin, на какой-то конференции Корпоративные базы данных (увы, не нашел, было лет 5 назад точно), Бартунов из PostgreSQL или кто-то еще на тему таймаутов делал специальный доклад. Рассказывали, насколько сложно в многопользовательской среде соблюдать эти самые таймауты, и для каких военных применений они позарез нужны. У нас, пока, есть проблема вообще со срубанием длительного запроса, от Execute до первого Fetch. В том числе и в InterBase (насколько я в курсе), где в tmp$statements можно отрубать запросы (т.е. функционала по срубанию запросов, транзакций и коннектов там поболее есть через tmp$, чем у Firebird в mon$, как минимум потому, что у IB есть только SuperServer). Поэтому особо на тему "ах, что же делать при большой нагрузке с таймаутами запросов" предлагаю просто не париться. Если задано, что запрос не должен выполняться более 5 минут, значит амба, эти 5 минут должны работать при любых условиях. Что касается таймаута транзакции, то я уже говорил, что такой таймаут нужен только по неактивности в транзакции. Я считаю, что никто не имеет права срубать транзакцию, если она длится 5 часов, и каждую минуту в ней выполняются какие-то действия. Если и вводить для этого таймаут, то исключением должна быть read read_committed, разумеется. Впрочем, реализацию такого рода таймаута я ожидаю в последнюю очередь. Таймаут коннекта - по вкусу. Он и так сейчас есть, в виде keepalive. И насколько я знаю, разработчики с ним борются методическими запросами типа select * from rdb$database. В общем, по таймаутам я в первую очередь послушал бы админов, отделенных от разработчиков, и всех, у кого legacy applications с никаким управлением транзакциями и коннектами. Впрочем, их мнение я тут и излагаю. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.10.2013, 04:13 |
|
MON$STATEMENTS почему NULL-ы (Обсуждаем серверные таймауты)
|
|||
---|---|---|---|
#18+
kdvТаймаут коннекта - по вкусу. Он и так сейчас есть, в виде keepalive. И насколько я знаю, разработчики с ним борются методическими запросами типа select * from rdb$database.Кто с кем борется? У нас кипалайв зажат до примерно 2-3 минут, коннекты в большинстве своем висят весь рабочий день, никто ни с кем бороться не собирается. Со слишком длительными коннектами обращаемся просто, в 23.30 все срубаются принудительно, далее сервер переходит в "ночной режим", чтобы "человеческие" юзеры не мешали. Как по мне так таймаут на коннект если и нужен, то с самым низким приоритетом. Таймаут на транзакцию должен иметь возможность зависеть от параметров "чтение-запись","снапшот-ридкоммитед-консистенси", приоритет между "конфиг сервера" и "передано разработчиком" должен иметь рычаги настройки (например параметрт Priority_level database server developer или Priority_level developer database server ), чем завершать коммитом или роллбеком тоже самое, по-умолчанию роллбек. Самый интересный, безусловно таймаут на оператор, лично я бы им пользовался. Приоритезация по аналогии с транзакциями, абзацем выше. Как вариант для разработчика возможность (опционально) передать таймауты в параметрах транзакции отдельно для самой транзакции , отдельно для стейтментов внутри оной. Вариант подглядеть у постгресовцав не лишен смысла. ;) Как минимум с доками/презентациями ознакомиться стОит! ... |
|||
:
Нравится:
Не нравится:
|
|||
16.10.2013, 08:39 |
|
MON$STATEMENTS почему NULL-ы (Обсуждаем серверные таймауты)
|
|||
---|---|---|---|
#18+
По поводу таймаутов на коннекты и транзакции я пожалуй соглашусь с Владом. Т.е. время должно отсчитываться от последней активности. А вот по поводу запросов вопрос спорный. С одной стороны для SELECT можно смотреть на время последнего фетча и от него отсчитывать время неактивности. С другой - для операторов DML, как мне кажется, всё таки важно начинать отсчёт от начала этого оператора. Не уверен что эти параметры есть одно и то же. Добавлю к сказанному, что если введут таймауты на подключения, транзакции и запросы, то эти таймауты по идее должны отображаться в MON$ таблицах, так же в них должно отображаться время неактивности. По поводу мониторинга у меня ещё одна хотелка. Нужна отдельная таблица мониторинга в которой была бы видна вся конфигурации как на уровне сервера, так и на уровне базы данных. Особенно важно это на хостингах, когда файл конфигурации скрыт от конечного разработчика, а ему нужно как то оценить выделяемые ресурсы. <имя параметра> <значение> <уровень>, где <тип конфигурации> - на уровне сервера, на уровне БД, на уровне подключения ... |
|||
:
Нравится:
Не нравится:
|
|||
16.10.2013, 09:32 |
|
MON$STATEMENTS почему NULL-ы (Обсуждаем серверные таймауты)
|
|||
---|---|---|---|
#18+
Симонов ДенисА вот по поводу запросов вопрос спорный. С одной стороны для SELECT можно смотреть на время последнего фетча и от него отсчитывать время неактивности может, наоборот, активности? Насколько я понял, в этой ветке обсуждаем таймаут неактивности для коннектов и транзакций и таймаут активности для запросов. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.10.2013, 09:36 |
|
MON$STATEMENTS почему NULL-ы (Обсуждаем серверные таймауты)
|
|||
---|---|---|---|
#18+
dimitr, hvladСимонов Денисотсчёт таймера должен вестись от начала транзакции и не зависеть от того сколько там фетчей сделаноА давай подумаем немного: вот есть запрос, возвращающий резалтсет. Вот его жизненный цикл: 1. execute 2. fetch ... N. fetch Ты предлагаешь ставить таймер в момент (1) и, например, если 10 записей было успешно сфетчено, а 11-я не успела, то обламывать такой запрос. Так ? А не будет ли правильнее сбрасывать и снова ставить таймер после каждого фетча ? Представь себе запрос, который выдаёт по 1-ой записи в секунду (может сетка медленная, а может записи трудно вычисляются). И ты предлагаешь его остановить после X записей, при таймауте в X секунд ? Даже если он вполне себе может выдать все 10X записей в том же темпе ? Если это качается только транзакций/коннектов. Тогда мой вопрос снят. Если же же нет, то он остаётся в силе. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.10.2013, 09:41 |
|
|
start [/forum/topic.php?fid=40&msg=38428192&tid=1561806]: |
0ms |
get settings: |
11ms |
get forum list: |
14ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
34ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
63ms |
get tp. blocked users: |
1ms |
others: | 278ms |
total: | 419ms |
0 / 0 |