|
|
|
Разная скорость выполнения запросов на серверах
|
|||
|---|---|---|---|
|
#18+
Доброе утро. Выполняю select на сервере(A) запрос тратит времени 200ms. Выполняю select на сервере(B) запрос тратит времени 3000ms. Количество данных одинаково. Почему может быть такая разница во времени выполнения запросов? Конфигурация базы данных на серверах одинаковая. Скорость работы дисков на сервере(B) выше чем на (A), но скорость выполнения запросов ниже. Оперативной памяти серверам выделено одинаково. Проц. сервера(А) 3.3ГГц 8 ядер, Проц. сервера(B) 2.8ГГц 4 ядер, при выполнении запросов загрузка на серверах не более 15%. ОС Windows. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.04.2015, 10:04 |
|
||
|
Разная скорость выполнения запросов на серверах
|
|||
|---|---|---|---|
|
#18+
d-e-larin, Приведите сам запрос и EXPLAIN (ANALYZE on, COSTS on, BUFFERS on, TIMING on ) запроса на обоих серверах ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.04.2015, 11:22 |
|
||
|
Разная скорость выполнения запросов на серверах
|
|||
|---|---|---|---|
|
#18+
сервер A "Seq Scan on sms (cost=0.00..916.56 rows=8556 width=492) (actual time=0.004..3.156 rows=8654 loops=1)" " Buffers: shared hit=831" "Total runtime: 4.153 ms" сервер B "Seq Scan on sms (cost=0.00..620.80 rows=8680 width=492) (actual time=0.014..18.801 rows=8644 loops=1)" " Buffers: shared hit=534" "Total runtime: 34.857 ms" ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.04.2015, 11:38 |
|
||
|
Разная скорость выполнения запросов на серверах
|
|||
|---|---|---|---|
|
#18+
d-e-larin, вижу 3ms и 18ms. Где 200ms и 3000ms? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.04.2015, 11:42 |
|
||
|
Разная скорость выполнения запросов на серверах
|
|||
|---|---|---|---|
|
#18+
Это другой более легкий запрос. Факт в том что все запросы даже простейшие на сервере B выполняются дольше. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.04.2015, 12:13 |
|
||
|
Разная скорость выполнения запросов на серверах
|
|||
|---|---|---|---|
|
#18+
d-e-larin, Покажите для статистики и запросы где отличия в 15 раз (200ms и 3000ms) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.04.2015, 12:24 |
|
||
|
Разная скорость выполнения запросов на серверах
|
|||
|---|---|---|---|
|
#18+
d-e-larin, d-e-larinсервер A "Seq Scan on sms (cost=0.00..916.56 rows=8556 width=492) (actual time=0.004..3.156 rows=8654 loops=1)" " Buffers: shared hit=831" "Total runtime: 4.153 ms" Пожалуйста приводите не огрызок, а полный текст всего, что выводит команда explain (COSTS, BUFFERS, TIMING, ANALYZE, VERBOSE) select .... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.04.2015, 12:31 |
|
||
|
Разная скорость выполнения запросов на серверах
|
|||
|---|---|---|---|
|
#18+
авторПожалуйста приводите не огрызок, а полный текст всего, что выводит команда Это был полный текст того что выводит команда авторexplain (COSTS, BUFFERS, TIMING, ANALYZE, VERBOSE) Вот результат выполнения, только тут добавил параметр VERBOSE как вы указали в примере. сервер А "Seq Scan on public.sms (cost=0.00..916.56 rows=8556 width=492) (actual time=0.008..3.782 rows=8655 loops=1)" " Output: id, date, text, modify_date, address_source_from, address_source_to, semantic_id, order_num_a_day, operator, md5_hash, is_copy, is_alarm, is_acquainted_alarm, is_parsed" " Buffers: shared hit=831" "Total runtime: 4.851 ms" сервер В "Seq Scan on public.sms (cost=0.00..620.80 rows=8680 width=492) (actual time=0.013..17.437 rows=8646 loops=1)" " Output: id, date, text, modify_date, address_source_from, address_source_to, semantic_id, order_num_a_day, operator, md5_hash, is_copy, is_alarm, is_acquainted_alarm, is_parsed" " Buffers: shared hit=534" "Total runtime: 32.486 ms" ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.04.2015, 12:45 |
|
||
|
Разная скорость выполнения запросов на серверах
|
|||
|---|---|---|---|
|
#18+
авторСкорость работы дисков на сервере(B) выше чем на (A), но скорость выполнения запросов ниже. Различия в конфигах постгреса. Фоновые процессы, порождающие IO или влияющие на кеширование: windows и raid контроллер делает patrol read, иные настройки кеша на контроллере, протухший BBU в результате чего кеш свободен от write-back и используется на опережающее чтение. Диск забит, таблица расположена на "дальнем" конце дисков, где линейнас скорость чтения ниже. Можно продолжать бесконечно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.04.2015, 13:04 |
|
||
|
Разная скорость выполнения запросов на серверах
|
|||
|---|---|---|---|
|
#18+
d-e-larin, сервер A d-e-larin" Buffers: shared hit=831" сервер B d-e-larin" Buffers: shared hit=534" из того, что видно по плану - у вас по разному используется кэширование данных. здесь нужно сравнить настройки серверов. Пропустите через компаратор файлики postgresql.conf - должны быть различия интересует именно раздел: # - Memory - Какая версия postgreSQL используется? судя по результатам, хоть и незначительно, но таблички все же отличаются сервер A d-e-larinrows=8655 сервер B d-e-larinrows=8646 высокая стоимость получения данных на сервере B d-e-larinactual time=0.013..17.437 по сравнению с сервером А d-e-larinactual time=0.008..3.782 показывает, что производительность серверов все же сильно не одинакова :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.04.2015, 13:21 |
|
||
|
Разная скорость выполнения запросов на серверах
|
|||
|---|---|---|---|
|
#18+
авторКакая версия postgreSQL используется? PostgreSQL 9.3.5, 64-bit авторПропустите через компаратор файлики postgresql.conf - должны быть различия Конфиги одинаковые 100%. копировался с сревера А на сервер B. авторсудя по результатам, хоть и незначительно, но таблички все же отличаются Сервер B поднимался из бэкапа сервера А. Сервер В не является зеркалом первого, он нужен для того чтобы развернуть похожую систему в другом месте. И да на первом сервере могут отличаться немного данные так как с ним работают люди, но это максимум пару 10 записей. авторФоновые процессы, порождающие IO или влияющие на кеширование: windows и raid контроллер делает patrol read, иные настройки кеша на контроллере, протухший BBU в результате чего кеш свободен от write-back и используется на опережающее чтение. Диск забит, таблица расположена на "дальнем" конце дисков, где линейнас скорость чтения ниже. Сервер А это виртуальная машина расположенная на одном серваке и с ней соседствует еще одна виртуалка. Сервер В это виртуальная машина которая находится в цоде о устройстве и настройках которого мы не знаем. Сторона предоставляющая нам виртуальный сервер В показывает тесты проведенные утилитой Atto benchmark и по результатам там скорость чтения/записи куда лучше чем на сервере А. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.04.2015, 14:25 |
|
||
|
Разная скорость выполнения запросов на серверах
|
|||
|---|---|---|---|
|
#18+
d-e-larin, d-e-larinСервер B поднимался из бэкапа сервера А. попробуйте пересобрать статистику по таблицам - VACUUM ANALYZE <таблица>; еще посмотрите на распределение времени выполнения одного и того же запроса при его последовательных подряд выполнениях 1-й..., 2-й..., 3-й..., и т.д. по идее 1-й будет самым долгим, а с каждым последующим (до 2 или 3) будет все быстрее. сервер подкачает в буфер все (по возможности) данные и таким образом исключит работу дисков из работы. d-e-larinСервер В это виртуальная машина которая находится в цоде о устройстве и настройках которого мы не знаем. Виртуальная машина - черный ящик. Всегда можно ожидать каких-либо нюансов в работе. Так как настройки postgresql одинаковы, а результаты простейших запросов так разнятся, то здесь сообщество мало чем сможет помочь. Вам нужно связываться с ЦОД и просить предоставить вам полную информацию об оборудовании ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.04.2015, 15:36 |
|
||
|
Разная скорость выполнения запросов на серверах
|
|||
|---|---|---|---|
|
#18+
d-e-larin, авторСервер А это виртуальная машина расположенная на одном серваке и с ней соседствует еще одна виртуалка. Сервер В это виртуальная машина которая находится в цоде о устройстве и настройках которого мы не знаем. Сторона предоставляющая нам виртуальный сервер В показывает тесты проведенные утилитой Atto benchmark и по результатам там скорость чтения/записи куда лучше чем на сервере А. C дисков у вас ничего не читается. Просто производительность 1 виртуального CPU ядра на B в 6 раз ниже чем на А. Возьмите CPU benchmark какой либо и сравните. (Альтернатива - сервере B просто сильно нагружен по процессору и тогда надо смотреть на графики загрузки CPU). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.04.2015, 15:43 |
|
||
|
|

start [/forum/topic.php?fid=53&fpage=112&tid=1998071]: |
0ms |
get settings: |
7ms |
get forum list: |
13ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
53ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
42ms |
get tp. blocked users: |
1ms |
| others: | 208ms |
| total: | 338ms |

| 0 / 0 |
