скорость работы по сети

Работал сервер PostgreSQL 9.2 (в VPS) и всё было нормально. И в один прекрасный день вдруг резко упала скорость... только по сети.
ping до сервера пакетов не теряет. Файлы при перекачке летают. А вот запросы еле ползают.

Тест: база из одной таблицы. Делаю дамп. Вставка через
psql -f dump test_database
В дампе в формате вставки через COPY. Локально (коннект к порту) вставка делается за ~ секунду. По сети с удалённой машины примерну ту же секунду.
В дампе в формате вставки через INSERT. Локально за ~1-2 секунды. С удалённой машины 55 секунд.
Сам файл дампа на удалённую машину перекачивается за доли секунды, размер файла небольшой (235Kb).

Сделал прокси, чтобы коннект для базы выглядел как локальный. Всё равно - при вставке с удалённой машины 55 секунд, локально - 1 секунда.

Где копать?

Опции просмотра комментариев

Выберите предпочитаемый вами способ показа комментариев и нажмите "Сохранить настройки" для активации изменений.

Попробуйте замерить скорость

Попробуйте замерить скорость передачи данных по сети без PostgreSQL, например через FTP (скачивание, закачивание). Посмотрите ошибки на сетевом интерфейсе. Посмотрите режим работы сетевого интерфейса, например проблемы могут быть есть есть несогласованность работы сетевой карты и туда куда, она воткнута (свич full duplex 100Mbit, карта half duplex 10Mbit или наоборот)

Со скоростью всё ок

Спасибо за совет!

ftp нет, по scp скорость 3Mb/s. Ошибок на сетевом интерфейсе нет. Режим полный дуплекс, проблемы с дуплексом/полудуплексом нет.
Пинг с параметрами, например, ping -c 1000 -i 0.01 -s 1024 даёт
1000 packets transmitted, 1000 packets received, 0.0% packet loss
round-trip min/avg/max/stddev = 54.912/55.590/92.183/1.683 ms

Тогда всё, что ещё могу

Тогда всё, что ещё могу посоветовать:
1. Перезапустите PostgreSQL
2. Если не поможет, перезапустите VPS
Мне проблема видится в сетевой подсистеме ОС, а не в PostgreSQL

Перезапуск пробовали:(

И PostgreSQL, и весь сервер рестартовал. Ничего не изменилось:(
Как кажется, что-то простое и очевидное пропускаю, но что ещё проверить?

Тогда ищите что же изменилось

Тогда ищите что же изменилось с того момента, когда работало хорошо. Чудес не бывает, значит где-то что-то менялось!

Чудес не бывает

Конечно, чудес не бывает. Причина есть. Могли измениться настройки сервера, на котором VPS, могло что-то на сервере (хотя и не должно было).
Сформулирую вопрос по-другому: каким образом можно добиться такой странной работы?
Т.е. при отсутствии видимых проблем с сетью, локальная вставка быстро, удалённая - еле-еле. Не важно, как коннект к базе (удалённая через проброс порта выглядит как локальная, но всё равно еле-еле).
Как такого можно добиться? Возможно, это даст мне толчок, в каком хоть направлении копать...

трафик-шейпер поставить,

трафик-шейпер поставить, например. Т.е. зажать скорость по сети на определённом порту.
А насчёт локальной и удалённой вы не правы. Локальная вставка делается через сокет, а не через порт. Так что проброс порта в данном случае - это один леший удалённая. Так что как не крути TCP/IP подсистема барахлит.

tcp/ip

Забыл написать - локально, когда скорость нормальная, коннектился через
psql -h 127.0.0.1 (и внешний адрес тоже пробовал), так что тоже через порт. Так что для PostgreSQL коннект должен выглядеть одинаково.
Во время удалённой вставки же файлы перекачиваются с нормальной скоростью.
Выглядит так, как будто появляется задержка после каждой команды. И, похоже, проблема в tcp/ip подсистеме. Но вот увидеть её больше нигде не получается;(

Буду смотреть в сторону трафик-шейпера... и правда, всё в VPS, вдруг провайдер VPS зажал скорость не по 22 порту или что-нибудь в этом роде...
Спасибо!

Опции просмотра комментариев

Выберите предпочитаемый вами способ показа комментариев и нажмите "Сохранить настройки" для активации изменений.

Back to top

(С) Виктор Вислобоков, 2008-2023