Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Sybase ASA, ASE, IQ [игнор отключен] [закрыт для гостей] / как kill неактивные соединения ? / 6 сообщений из 6, страница 1 из 1
25.12.2006, 10:22
    #34221823
pionersurg
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как kill неактивные соединения ?
подскажите пожалуйста как можно в Sybase ASE12.5.3 можно отследить коннект, который ничего не делает ?

необходимо периодически прибивать неактивные коннекты, т.к. число соединений ограничено лицензий на ПО, а user некоторые держат лицензию и ничего не делают...
...
Рейтинг: 0 / 0
25.12.2006, 11:23
    #34221977
komrad
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как kill неактивные соединения ?
pionersurgподскажите пожалуйста как можно в Sybase ASE12.5.3 можно отследить коннект, который ничего не делает ?

необходимо периодически прибивать неактивные коннекты, т.к. число соединений ограничено лицензий на ПО, а user некоторые держат лицензию и ничего не делают...

брать дельту (разницу) по CPU & IO и при нуле килять :
select spid, suser_name(suid),cpu,physical_io from master..sysprocesses

надо только аккуратно оценить корректное время неактивности пользователей...
...
Рейтинг: 0 / 0
25.12.2006, 11:47
    #34222051
MasterZiv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как kill неактивные соединения ?
pionersurg пишет:

> необходимо периодически прибивать неактивные коннекты, т.к. число
> соединений ограничено лицензий на ПО, а user некоторые держат лицензию и
> ничего не делают...

Вообще говоря, идеально было бы организовывать работу приложений так,
чтобы они разрывали сами соединение, когда им оно уже не нужно.
Но на самом деле такой режим работы конечно плох, есть некоторые
особенности и вообще установка соединения -- довольно долгая операция.

А так - соединение ничего не делает, если у него статус AWAITING COMMAND.
В таком случае его можно убивать. При этом надо быть уверенным, что
оно не держит открытой транзакции, но это никак в принципе не проверить.
Только косвенно по наличию блокировок в master..syslogs.

Posted via ActualForum NNTP Server 1.3
...
Рейтинг: 0 / 0
25.12.2006, 11:52
    #34222068
MasterZiv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как kill неактивные соединения ?
komrad пишет:

> брать дельту (разницу) по CPU & IO и при нуле килять :
> select spid, suser_name(suid),cpu,physical_io from master..sysprocesses

Дельту чего с чем ? Я не понял, например. И потом,
CPU & IO сбрасываются периодически, насколько я помню, по окончании транзакции.
И у них будет там по нулям, но это не значит, что соединение ничего не
делает. Да и вообще , по идее, каунтеры эти могут быть по нулям, но соединение
может что-то делать. Например, висеть на аларме (waitfor delay).
Posted via ActualForum NNTP Server 1.3
...
Рейтинг: 0 / 0
25.12.2006, 12:38
    #34222247
komrad
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как kill неактивные соединения ?
MasterZiv
komrad пишет:

> брать дельту (разницу) по CPU & IO и при нуле килять :
> select spid, suser_name(suid),cpu,physical_io from master..sysprocesses

Дельту чего с чем ? Я не понял, например. И потом,
CPU & IO сбрасываются периодически, насколько я помню, по окончании транзакции.
И у них будет там по нулям, но это не значит, что соединение ничего не
делает. Да и вообще , по идее, каунтеры эти могут быть по нулям, но соединение
может что-то делать. Например, висеть на аларме (waitfor delay).
Posted via ActualForum NNTP Server 1.3

имел ввиду следующее - берутся два среза по sysprocesses и сравниваются значения CPU & IO первого и второго. Если разницы нет, то с большой вероятностью юзер ничего не делал.

ценное уточнение от MasterZiv - обращать внимание на AWAITING COMMAND

MasterZiv
CPU & IO сбрасываются периодически, насколько я помню, по окончании транзакции.

с какой стати? ;)
...
Рейтинг: 0 / 0
25.12.2006, 14:39
    #34222718
MasterZiv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как kill неактивные соединения ?
komrad
имел ввиду следующее - берутся два среза по sysprocesses и сравниваются значения CPU & IO первого и второго. Если разницы нет, то с большой вероятностью юзер ничего не делал.


По моим представлениям эта величина вообще будет прыгать случайно. И судить по ней будет просто не о чем.

На счет того, когда сбрасываются эти счетчики :

cpu int Cumulative CPU time for process in ticks

physical_io int Number of disk reads and writes for current command.

Про physical_io сказано вообще явно , для текущей комманды (оператора SQL).
И кстати, это только physical IO, его вообще может не быть у комманды (будет только
logical IO). Так что это вообще не показатель того, что процесс что-то делает.

Про CPU (когде оно сбрасывается) я не нашел что-то в доках ничего, но
я помню что он не накапливался никогда в соединении. Т.е. он обычно
всегда показывается как что-то около нуля. Ну да это легко проверить - запустить
2- 3 комманды и посмотреть, растет ли CPU.

Да, когда будете убивать, не забудьте отфильтровать системные процессы .... Репликация там, хаускипер и т.п.
...
Рейтинг: 0 / 0
Форумы / Sybase ASA, ASE, IQ [игнор отключен] [закрыт для гостей] / как kill неактивные соединения ? / 6 сообщений из 6, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]