С Новым годом! Форум программистов, компьютерный форум, киберфорум
PostgreSQL
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.55/11: Рейтинг темы: голосов - 11, средняя оценка - 4.55
0 / 0 / 0
Регистрация: 27.03.2017
Сообщений: 14

Timing запроса при разном подключении

22.06.2018, 20:04. Показов 2383. Ответов 16
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый вечер!
PostgreSQL 9.1.4
ОС Linux

Первый вариант:
1) подключение через "Psql -U postgres db"
2) включаю \Timing
3) считываю большую таблицу.
время выполнения в районе 400 Ms

Второй вариант:
1) подключение через "Psql -U postgres -h 192.122.122.122 db". Это айпи этой же машины, по сути если указывать локалхост тоже самое.
2) включаю \Timing
3) считываю большую таблицу.
время выполнения в районе 4000 Ms

В чем проблема из-за добавления хоста(-h) при подключении? сервер на другой машине с таким же таймингом выполнения запроса. Очень долгое выполнение запроса из-за этого, в 10 раз!!! сетевая карта на 100мбит отрабатывает всю свою скорость.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
22.06.2018, 20:04
Ответы с готовыми решениями:

Сделать так чтобы при подключении нулевого порта выполнялся один цикл кода а при подключении другого - другой
Как сделать так чтобы при подключении нулевого порта выполнялся один цикл кода, а при подключении другого другой. И вообще возможно ли это...

div, изменение размера при масштабируемости браузера + разные размеры при разном разрешении
есть див, у него стиль background-image:url(head.jpg); background-repeat:no-repeat; height:10%; width:34%; background-size: 100%...

Размер таблицы при разном тексте
<table width=100 bgcolor=FFFFFF><tr><td> тут оч много текста, тут оч много текста, тут оч много текста, тут оч много текста, и так...

16
1263 / 977 / 384
Регистрация: 02.09.2012
Сообщений: 3,020
22.06.2018, 23:50
Вы уверены, что вы все правильно измеряли??
Больше похоже на то, что второй вариант получает данные именно через сеть, а не через локальные сокеты (unix или ip).
Через сеть, по-моему, все закономерно: для 100 Мбит/с сети теоретический предел скорости 12,5 Мбайт/с (=100/8), в реалии еще меньше (10-11 Мбайт/с). Поэтому, если у вас большая таблица, например 100 МБайт, то для ее передачи клиенту через сеть потребуется не меньше 10 секунд.
0
0 / 0 / 0
Регистрация: 27.03.2017
Сообщений: 14
23.06.2018, 08:42  [ТС]
Больше похоже на то, что второй вариант получает данные именно через сеть, а не через локальные сокеты (unix или ip).
ставил localhost, 127.0.0.1, айпи машины, айпи другой машины - получается всегда идет именно через сеть, а не локальные сокеты?
Как можно узнать размер(в байтах) результата вывода запроса(к примеру все той же таблицы)? Все таки заполнять таблицу только начинаю, а уже такие проблемы с отликом на запрос, неужели дело только в сетевой карте?

Добавлено через 16 минут
"SELECT pg_size_pretty( pg_relation_size( 'testtable1' ) );"

нашел, буду проверять размер таблицы и скорость передачи
0
1263 / 977 / 384
Регистрация: 02.09.2012
Сообщений: 3,020
25.06.2018, 13:38
127.0.0.1/8 или localhost не может через сеть идти.
Значит у вас в чем-то другом причина: cgroup политики, виртуалки, контейнеры...... не знаю, что еще может регулировать доступ к ресурсам. Проверяйте также ввод-вывод: где лежат файлы базы, что за диск, что за нагрузка. Может на сервер еще что-то навешано.
0
0 / 0 / 0
Регистрация: 27.03.2017
Сообщений: 14
25.06.2018, 22:14  [ТС]
Политика вся отключена. Сервер ничем не нагружен, даже работа через root.
Задумался над размером MTU и возможности его изменить, есть ли он в постгресе??
Размер таблицы 87мб -замерил

Добавлено через 6 часов 42 минуты
grgdvo, если есть возможность у вас протестировать подобное подключение и замер времени - был бы очень признателен. А то всю голову уже сломал в поисках проблемы
0
1263 / 977 / 384
Регистрация: 02.09.2012
Сообщений: 3,020
25.06.2018, 22:51
Лучший ответ Сообщение было отмечено Psyjke как решение

Решение

Bash
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
user@host ~ $ psql test
psql (10.3)
Введите "help", чтобы получить справку.
 
test=> \conninfo
Вы подключены к базе данных "test" как пользователь "user" через сокет в "/run/postgresql", порт "5432".
test=> \dt+
                     Список отношений
 Схема  |  Имя   |   Тип   | Владелец | Размер | Описание 
--------+--------+---------+----------+--------+----------
 public | table1 | таблица | user     | 73 MB  | 
(1 строка)
 
test=> SELECT pg_size_pretty(pg_relation_size('table1'));
 pg_size_pretty 
----------------
 73 MB
(1 строка)
 
test=> \timing
Секундомер включён.
test=> select * from table1;
Время: 530,613 мс
Добавлено через 5 минут
Цитата Сообщение от Psyjke Посмотреть сообщение
3) считываю большую таблицу.
Что за запрос используется??
Покажите EXPLAIN (ANALYZE, BUFFERS) SELECT .....
0
0 / 0 / 0
Регистрация: 27.03.2017
Сообщений: 14
26.06.2018, 09:03  [ТС]
test=> \conninfo
Вы подключены к базе данных "test" как пользователь "user" через сокет в "/run/postgresql", порт "5432".
test=> \dt+
Это подключение у вас без указания хоста, по примеру 1 как я писал. Для меня это время вывода приемлемо.
А вот как у вас будет если подключиться через хост? «psql -h 127.0.0.1 test . Или указать айпи машины(сервера).

Запрос самый простой.
Select * from table;
Explain показал:
Seq Scan on table (const=0.00..16787.87 rows=673887 width=134) (actual time=0.003..35.712 rows=673887 loops=1(
Buffers: shared hit=10049
Total runtime: 53.777 ms
0
1263 / 977 / 384
Регистрация: 02.09.2012
Сообщений: 3,020
26.06.2018, 16:13
Лучший ответ Сообщение было отмечено Psyjke как решение

Решение

Примерно такой же результат (старая таблица не сохранилась, сгенерил новую)

Bash
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
user@host ~ $ psql -h 127.0.0.1 test
psql (10.3)
Введите "help", чтобы получить справку.
 
test=> \conninfo
Вы подключены к базе данных "test" как пользователь "user" (сервер "127.0.0.1", порт "5432").
test=> \dt+
                     Список отношений
 Схема  |  Имя   |   Тип   | Владелец | Размер | Описание 
--------+--------+---------+----------+--------+----------
 public | table1 | таблица | user     | 65 MB  | 
(1 строка)
test=> \timing
Секундомер включён.
test=> select * from table1;
Время: 540,655 мс
Разумеется, если увеличивать размер таблицы, то время ее получения будет расти примерно пропорционально размеру таблицы, при этом одинаково и через TCP/IP и через unix domain сокеты.

Мониторте активность процессов (sysstat вам в помощь). Попробуйте определить, чем они у вас заняты.
0
0 / 0 / 0
Регистрация: 27.03.2017
Сообщений: 14
26.06.2018, 16:18  [ТС]
grgdvo, огромное спасибо! Наглядно вижу, что у вас нет разницы по времени. И спасибо за Советы, начну мониторить, буду ставить сниффер так же. Видимо что-то придётся перенастраивать, хотя линукс и постгресс настроены по дефолту и таких проблем не должно было быть.
0
1263 / 977 / 384
Регистрация: 02.09.2012
Сообщений: 3,020
26.06.2018, 23:29
Что за система у вас, какой Linux??
0
0 / 0 / 0
Регистрация: 27.03.2017
Сообщений: 14
27.06.2018, 09:23  [ТС]
grgdvo, astra Linux 1.3. Основана на Debian 8
0
1263 / 977 / 384
Регистрация: 02.09.2012
Сообщений: 3,020
27.06.2018, 15:01
Лучший ответ Сообщение было отмечено Psyjke как решение

Решение

Ну Astra Linux - это отдельный разговор. Разработчик мог внести какие угодно изменения в работу и ядра и системных сервисов. Судя по сайту, 1.3 - это special edition. Во-первых очень старая, во вторых у special edition что-то накручено по части безопасности и защиты системы. Может это вносит тормоза в работу postgresql?? В общем я бы начал с того, что поставить более свежую версию и попробовать, может это известный баг и его могли исправить. Во-вторых искать по документации и обратиться к спецам по этой системы с вопросом тормзов. Вероятно так, вы найдете ответ быстрее.
0
0 / 0 / 0
Регистрация: 27.03.2017
Сообщений: 14
27.06.2018, 18:46  [ТС]
grgdvo, благодарю за отзывчивость! Буду копать, писать разработчикам

Добавлено через 3 часа 41 минуту
grgdvo, проблема в ssl шифровании. При отключении - скорость нормализуется, но клиенты на других машинах надо как то настраивать по своему, запросы на сервер(где отключил ssl) ещё увеличиваются по времени в 3 раза, до 7000 мс.
0
1263 / 977 / 384
Регистрация: 02.09.2012
Сообщений: 3,020
28.06.2018, 02:36
Весь доступ клиентов к серверу регулируется в pg_hba.conf. Там должно быть написано кому и как разрешено подключаться. Покажите pg_hba.conf
0
0 / 0 / 0
Регистрация: 27.03.2017
Сообщений: 14
28.06.2018, 09:26  [ТС]
grgdvo, там все просто.
Local all all trust

IPv4
Host all all 127.0.0.1/24 trust

IPv6
Host all all 192.122.122.100/24 trust

Но при смене host на hostnossl - время запроса сокращается до оптимального. Но с других машин подключения и запрос увеличивается в несколько раз до 7000 мс. Видимо с той стороны надо что то настроить
0
1263 / 977 / 384
Регистрация: 02.09.2012
Сообщений: 3,020
28.06.2018, 14:47
Цитата Сообщение от Psyjke Посмотреть сообщение
Но при смене host на hostnossl - время запроса сокращается до оптимального. Но с других машин подключения и запрос увеличивается в несколько раз до 7000 мс. Видимо с той стороны надо что то настроить
Почему вы вторую строчку называете IPv6 ??
Это все тоже IPv4 только уже непосредственно относящийся к локальной сети, а не к петлевому интерфейсу (127.0.0.1/8).
Проверьте сначала пропускную способность сети простым копированием файла, сколько дает (тулза netperf, не знаю, есть в АстраЛинукс или нет)? Потому можно уже оценить размер таблицы и прикинуть скорость передачи результатов запроса.
0
0 / 0 / 0
Регистрация: 27.03.2017
Сообщений: 14
08.07.2018, 16:30  [ТС]
grgdvo, скорость проверил, даже перевел сеть на гигабит. Свое отрабатывает, а запросы все равно долго выводит.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
08.07.2018, 16:30
Помогаю со студенческими работами здесь

При разном разрешении появляется горизонтальная прокрутка
Народ помогите пожалуйста разобраться. У меня При маленьком разрешении появляется горизонтальная прокрутка. На широком мониторе все...

Изменение Caption при разном значении MediaPlayer
Зравствуйте! Я новичок,скажите пожалучста как можно сделать так,что бы например если MediaPLay играет музыку то Button.Caption:=вкл а...

При разном разрешении текст отображается по-разному
на мониторах 1024х768, 1366х768 все выглядит красиво и ровно. А на мониторе 1600х768 как будто line-height становится меньше. Как решить...

Авторасчёт тенденции при разном количестве элементов
Добрый день! Товарищи, помогите, автоматизировать расчёт Тенденции - как то не выходит у меня. Смысл в том, что будут подставляться...

Разные css файлы при разном разрешение
Хочу сделать чтобы подключались разные файлы при разном разрешение экрана. Чтобы сайт полностю отображался на ноуте. Суть такая: по ширине...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
17
Ответ Создать тему
Новые блоги и статьи
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/ O1rJuneU_ls https:/ / vkvideo. ru/ video-115721503_456239114
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR ВВЕДЕНИЕ Введу сокращения: аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
Модель микоризы: классовый агентный подход 2
anaschu 06.01.2026
репозиторий https:/ / github. com/ shumilovas/ fungi ветка по-частям. коммит Create переделка под биомассу. txt вход sc, но sm считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
Расчёт токов в цепи постоянного тока
igorrr37 05.01.2026
/ * Дана цепь постоянного тока с сопротивлениями и напряжениями. Надо найти токи в ветвях. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа и решает её. Последовательность действий:. . .
Новый CodeBlocs. Версия 25.03
palva 04.01.2026
Оказывается, недавно вышла новая версия CodeBlocks за номером 25. 03. Когда-то давно я возился с только что вышедшей тогда версией 20. 03. С тех пор я давно снёс всё с компьютера и забыл. Теперь. . .
Модель микоризы: классовый агентный подход
anaschu 02.01.2026
Раньше это было два гриба и бактерия. Теперь три гриба, растение. И на уровне агентов добавится между грибами или бактериями взаимодействий. До того я пробовал подход через многомерные массивы,. . .
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru