|
|
|
SQL*Net message/data to/from client
|
|||
|---|---|---|---|
|
#18+
Добрый день всем гуру. Возник вот такой вопрос. Есть файлы, которые используют PLSExtproc для загрузки файлов на диск. Есть две базы, одна тестовая, другая основная. Сервера одинаковые, разница лишь в количестве ОЗУ, на тесте меньше. Так вот на тестовой схеме программисты подкрутили запросы и загрузка 200 файлов стала делаться быстро, примерно секунд 10. Такие манипуляции на основной схеме не увенчались успехом. 200 файлов грузятся очень медленно, причем возникаю вот такие ожидания SQL*Net message/data to/from client. В какую сторону смотреть? Пробовал создать файл protocol.ora, в котором прописал параметр tcp.nodelay = YES. Сказали, что стало работать медленнее, но это субъективное мнение. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.10.2017, 14:11 |
|
||
|
SQL*Net message/data to/from client
|
|||
|---|---|---|---|
|
#18+
Загрузка сети какая, какой delay между серверами загрузки и файловыми серверами и да автор... Есть файлы, которые используют PLSExtproc для загрузки файлов на диск ... переведи :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.10.2017, 14:59 |
|
||
|
SQL*Net message/data to/from client
|
|||
|---|---|---|---|
|
#18+
Если FROM CLIENT, тогда официант (SQL*NET) ждет пока клиент копается в меню (или хавает что официант принес) чтобы передать повару(базе) заказ (следующий заказ) клиента. A вот TO CLIENT это когда официант (SQL*NET) очень долго несет уже приготовленное поваром (базой) блюдо клиенту. SY. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.10.2017, 15:01 |
|
||
|
SQL*Net message/data to/from client
|
|||
|---|---|---|---|
|
#18+
Vadim Lejnin, Используется внешняя процедура. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.10.2017, 15:55 |
|
||
|
SQL*Net message/data to/from client
|
|||
|---|---|---|---|
|
#18+
Vadim LejninЗагрузка сети какая, какой delay между серверами загрузки и файловыми серверами А как этот delay померить? смотрел netstat -i пропусков пакетов нет. В сетевых технологиях не шибко силен... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.10.2017, 16:02 |
|
||
|
SQL*Net message/data to/from client
|
|||
|---|---|---|---|
|
#18+
Андрей Лунев, То что используется внешняя процедура я понял, вопрос, куда, как и откуда грузятся файлы. Судя по вашему сообщению, Вы внешней процедурой загружаете файлы с файловой системы в БД? Это так? Если да, Вопрос следующий: где физически находятся файлы для загрузки? случаем не на сетевом диске? ну и насколько загружена файловая система с которой Вы грузите файлы. нагрузку системы мониторили? Чем отличаются для данной подсистемы стенд и прод? Ожидания может возникнуть как из-за дисковых задержек (extproc уже передала по TNS порцию в базу, а следующая порция еще не считалась, так и из за задержек сети - чтение ведется с сетевого диска, задержки с передачей по TNS. Такая задержка может возникнуть при значительном ping delay и больших пакетах. Прочитай что такой BDP например тут: Oracle Net Services 12c Best Practices for Database Performance and Scalability - секция Network Acceleration Для передачи больших пакетов при большом delay ping, (тот же RMAN, STANDBY транспорт), обычно поднимают отдельный listener с увеличенным размером буфера для передачи. p.s. Принято более подробно описывать проблему: Что за ОС, точная версия СУБД, какие настройки TNS ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.10.2017, 16:27 |
|
||
|
SQL*Net message/data to/from client
|
|||
|---|---|---|---|
|
#18+
Андрей Лунев, ping remote_server ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.10.2017, 16:27 |
|
||
|
SQL*Net message/data to/from client
|
|||
|---|---|---|---|
|
#18+
... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.10.2017, 17:01 |
|
||
|
SQL*Net message/data to/from client
|
|||
|---|---|---|---|
|
#18+
Андрей Лунев, Покажи сырые трейсы ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.10.2017, 17:02 |
|
||
|
SQL*Net message/data to/from client
|
|||
|---|---|---|---|
|
#18+
Проблема решена. Добавил настройки в sqlnet.ora на стороне сервера и клиента. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.10.2017, 10:32 |
|
||
|
SQL*Net message/data to/from client
|
|||
|---|---|---|---|
|
#18+
Спасибо всем за помощь в решении задачи. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.10.2017, 10:32 |
|
||
|
SQL*Net message/data to/from client
|
|||
|---|---|---|---|
|
#18+
Андрей ЛуневПроблема решена. Добавил настройки в sqlnet.ora на стороне сервера и клиента. Андрей, в форуме принято раскрывать решение проблемы, чтобы, те кто словят аналогичную проблему могли самостоятельно ее решить ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.10.2017, 10:57 |
|
||
|
SQL*Net message/data to/from client
|
|||
|---|---|---|---|
|
#18+
Vadim LejninАндрей ЛуневПроблема решена. Добавил настройки в sqlnet.ora на стороне сервера и клиента. Андрей, в форуме принято раскрывать решение проблемы, чтобы, те кто словят аналогичную проблему могли самостоятельно ее решить Без проблем. Просто, часто вижу здесь, что пишут "спасибо за помощь, я все решил", а решения не написано. Вот и я по этому же так написал. А так мне не жалко, пользуйтесь, может кому-то действительно поможет. На стороне сервера и клиента в sqlnet.ora добавил вот эти строки: Код: plsql 1. 2. 3. Плюсом почитал вот эти вещи: https://docs.oracle.com/cd/B19306_01/network.102/b14212/performance.htm https://sites.google.com/site/embtdbo/wait-event-documentation/oracle-network-waits#TOC-SDU В listener.ora и tnsnames.ora не стал добавлять, потому что пришлось бы перезапускать листенер, чего не хотелось. Но можно было и так сделать, поэтому ограничился первым вариантом. Еще раз всем спасибо за помощь и направление в нужное русло... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.10.2017, 16:06 |
|
||
|
SQL*Net message/data to/from client
|
|||
|---|---|---|---|
|
#18+
Андрей ЛуневVadim Lejninпропущено... Андрей, в форуме принято раскрывать решение проблемы, чтобы, те кто словят аналогичную проблему могли самостоятельно ее решить Без проблем. Просто, часто вижу здесь, что пишут "спасибо за помощь, я все решил", а решения не написано. Вот и я по этому же так написал. А так мне не жалко, пользуйтесь, может кому-то действительно поможет. На стороне сервера и клиента в sqlnet.ora добавил вот эти строки: Код: plsql 1. 2. 3. ... В listener.ora и tnsnames.ora не стал добавлять, потому что пришлось бы перезапускать листенер, чего не хотелось. Но можно было и так сделать, поэтому ограничился первым вариантом. ... Андрей, все же крутить такие параметры для всех клиентов, не самые верное решение, бо это может вызвать задержки для задач, которые периодически обмениваются только маленькими, короткими пакетами, например Forms. Особенно, если они работают по медленным линиям. Плюс, при передаче больших данных с сервера на клиент, возникнет перегруз буферов TCP клиента, у которого не настроены большие буферы, что приведёт к ожиданиям сети при таких операциях. Более адекватным решением, КМК, было бы все же поднятие выделенного listener на другом порту и настройка специальных TNS Alias, только для тех соединений, которые требуют этого. Единственно, Вам нужно будет продумать, нужна ли динамическая регистрация служб на нем. Обычно, этого не требуется, для служебных целей как правило используются статическая регистрация, но в принципе это тоже можно настроить. Основной listener, при этом можно совсем не трогать, и работа с ним останется такой же, как и раньше. Дополнительно, два listener, позволят ограничить соединения от клиентов, например при создании standby, если остановить основной listener. Минус в том, что придётся контролировать ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.10.2017, 17:01 |
|
||
|
SQL*Net message/data to/from client
|
|||
|---|---|---|---|
|
#18+
Vadim LejninАндрей Луневпропущено... Без проблем. Просто, часто вижу здесь, что пишут "спасибо за помощь, я все решил", а решения не написано. Вот и я по этому же так написал. А так мне не жалко, пользуйтесь, может кому-то действительно поможет. На стороне сервера и клиента в sqlnet.ora добавил вот эти строки: Код: plsql 1. 2. 3. ... В listener.ora и tnsnames.ora не стал добавлять, потому что пришлось бы перезапускать листенер, чего не хотелось. Но можно было и так сделать, поэтому ограничился первым вариантом. ... Андрей, все же крутить такие параметры для всех клиентов, не самые верное решение, бо это может вызвать задержки для задач, которые периодически обмениваются только маленькими, короткими пакетами, например Forms. Особенно, если они работают по медленным линиям. Плюс, при передаче больших данных с сервера на клиент, возникнет перегруз буферов TCP клиента, у которого не настроены большие буферы, что приведёт к ожиданиям сети при таких операциях. Более адекватным решением, КМК, было бы все же поднятие выделенного listener на другом порту и настройка специальных TNS Alias, только для тех соединений, которые требуют этого. Единственно, Вам нужно будет продумать, нужна ли динамическая регистрация служб на нем. Обычно, этого не требуется, для служебных целей как правило используются статическая регистрация, но в принципе это тоже можно настроить. Основной listener, при этом можно совсем не трогать, и работа с ним останется такой же, как и раньше. Дополнительно, два listener, позволят ограничить соединения от клиентов, например при создании standby, если остановить основной listener. Минус в том, что придётся контролировать Спасибо, буду мониторить ситуацию, если будет такая необходимость буду делать, как Вы сказали. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.10.2017, 17:07 |
|
||
|
|

start [/forum/topic.php?fid=52&msg=39529918&tid=1885158]: |
0ms |
get settings: |
5ms |
get forum list: |
13ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
184ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
49ms |
get tp. blocked users: |
1ms |
| others: | 200ms |
| total: | 469ms |

| 0 / 0 |
