powered by simpleCommunicator - 2.0.59     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Caché, Ensemble, DeepSee, MiniM, IRIS, GT.M [игнор отключен] [закрыт для гостей] / Понижение приоритета при чтение глобалов
26 сообщений из 26, показаны все 2 страниц
Понижение приоритета при чтение глобалов
    #35769143
=Dimon=
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
При обходе дерева глобалов Cache' нагружает процессор до 100%, так что остальные пользователи и процессы тормозят. Как можно установить процессу приоритет при чтении глобалов, либо вообще где-то глобально в Cache' выставить такой приоритет
...
Рейтинг: 0 / 0
Понижение приоритета при чтение глобалов
    #35769315
newbie'
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Для NT, текущий приоритет процесса:
Код: plaintext
s p=$zu( 60 , 2 )
новый приоритет:
Код: plaintext
s np=$zu( 60 , 0 ,p)

и

тынц
...
Рейтинг: 0 / 0
Понижение приоритета при чтение глобалов
    #35769322
Sergei Obrastsov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Странно это. Не должно быть такой загрузки проца.
Можно взглянуть на код?
...
Рейтинг: 0 / 0
Понижение приоритета при чтение глобалов
    #35769426
Блок А.Н.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Действительно странно. Более вероятно, что просел бы диск.
...
Рейтинг: 0 / 0
Понижение приоритета при чтение глобалов
    #35769803
Фотография ну я
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если бы просел диск, то этот процесс стал бы тормозить )))
Если в основном работает процессор - значит процесс ходит по кешу.
Можно по коду расставить притормаживание, например раз в 10 итераций выполнять
h 0.01
Процесс периодически будет отдавать процессор другим процессам,
но и он сам будет работать чуть медленнее.
...
Рейтинг: 0 / 0
Понижение приоритета при чтение глобалов
    #35770035
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ну янапример раз в 10 итераций выполнять
Код: plaintext
h  0 . 01 

Чет вспомнилость...
Еще в МСМовскую бытность клиент пожаловался мне де очень долго выполняется операция "Выставление счета"... Оно мол и понятно - там много всякой информации и это раз в месяц... Но все же.
Начал я просматривать код программок... И то там, то там стал наталкиваться на
Код: plaintext
h  1 

Фигасе! Подумал я! И давай поиском по (уже) всем программкам кипа искать эту комманду - список меня потряс! Убрал все ненужные.
Дай думаю поищу и
Код: plaintext
h  2 
Ну так... Чисто из интереса... Было валом и таких!

Так я дошел и до
Код: plaintext
h  5 

Больше вроде небыло.

После моих "преобразований" клиент ликовал! А я прослыт там просто волшебником.
...
Рейтинг: 0 / 0
Понижение приоритета при чтение глобалов
    #35770129
Фотография ну я
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Надо было таймаут приуменьшать раз в месяц, тогда бы клиент ликовал каждый месяц. )))
...
Рейтинг: 0 / 0
Понижение приоритета при чтение глобалов
    #35770145
Фотография ну я
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
krvsaНачал я просматривать код программок... И то там, то там стал наталкиваться на
Код: plaintext
h  1 

Фигасе! Подумал я! И давай поиском по (уже) всем программкам кипа искать эту комманду - список меня потряс! Убрал все ненужные.
Кстати, как определили, какие нужные, а какие нет?
...
Рейтинг: 0 / 0
Понижение приоритета при чтение глобалов
    #35770848
=Dimon=
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код такой

testGlobal
f i=1:1:100000 { s ^a(i,i,i,i,i,i)=i}
s key = $Q(^a)
while key '="" {
s key = $Q(^a)
}

Хотел бы чтоб процессы в Каше сами ресурсы процессора разграничивали.
Пробовал использовать d SET^%PRIO("LOW,BATCH") ничего не изменилось.
...
Рейтинг: 0 / 0
Понижение приоритета при чтение глобалов
    #35770934
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ну якак определили, какие нужные, а какие нет?
Примерно так:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
 // ненужный
 s uz=""
 f  s uz=$o(@data@(uz)) q:uz=""  d
 . // тут какие-то вычисления
 . h  1 
 // нужный
 w /CUP(y,x),"Информация обработана."
 h  1 

Это примерные примеры конечно...
...
Рейтинг: 0 / 0
Понижение приоритета при чтение глобалов
    #35770938
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
=Dimon=Пробовал использовать d SET^%PRIO("LOW,BATCH") ничего не изменилось.
Наш опыт показывает обратное...
Управление другим процессам отдается. Но с некоторой паузой чтоли... Т.е. процесс некой массовой обработки таки мешает тем, кто ведет ручной ввод информации.
...
Рейтинг: 0 / 0
Понижение приоритета при чтение глобалов
    #35770940
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
=Dimon= , напомни какая у тебя версия Кащея?
...
Рейтинг: 0 / 0
Понижение приоритета при чтение глобалов
    #35771271
=Dimon=
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
krvsa,
Cache' 5.2.3
...
Рейтинг: 0 / 0
Понижение приоритета при чтение глобалов
    #35771288
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Даже старше той, с которой мы "попали" в эту проблему...

Нам пришлось в срочном порядке ставить понищение приоритетов в процедуре прохода по картотеке. Пользователи роптали вначале, а потом толи привыкли... Толи умощнение серверов "понизило" эту проблему... То ли переход на новую версию Кащея...
Одним словом сейчас на это не жалуются
----------
Cache for Windows (x86-32) 2007.1.3 (Build 607) Wed Oct 17 2007 02:12:09 EDT
...
Рейтинг: 0 / 0
Понижение приоритета при чтение глобалов
    #35771348
=Dimon=
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
h не помогло.
...
Рейтинг: 0 / 0
Понижение приоритета при чтение глобалов
    #35771369
Alexey Maslov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
=Dimon=Код такойКакой же это обход глобала, господа? Это скорее задачка типа "найдите 3 ошибки в коде".
...
Рейтинг: 0 / 0
Понижение приоритета при чтение глобалов
    #35771435
=Dimon=
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alexey Maslov,

Код такой

testGlobal
f i=1:1:100000 { s ^a(i,i,i,i,i,i)=i}
s key = $Q(^a)
while key '="" {
s key = $Q(@key)
}
...
Рейтинг: 0 / 0
Понижение приоритета при чтение глобалов
    #35771467
Фотография ну я
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
=Dimon=while key '="" {
s key = $Q(^a)
}
Может, тут нужно как-то key изменять?
...
Рейтинг: 0 / 0
Понижение приоритета при чтение глобалов
    #35771471
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Где остальные 2 ошибки?
----------
Cache for Windows (x86-32) 2007.1.3 (Build 607) Wed Oct 17 2007 02:12:09 EDT
...
Рейтинг: 0 / 0
Понижение приоритета при чтение глобалов
    #35771484
Фотография ну я
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
=Dimon=Alexey Maslov,

Код такой

testGlobal
f i=1:1:100000 { s ^a(i,i,i,i,i,i)=i}
s key = $Q(^a)
while key '="" {
s key = $Q(@key)
}

Код отрабатывает моментом. Проблема-то в чем? Где тут что тормозит?
...
Рейтинг: 0 / 0
Понижение приоритета при чтение глобалов
    #35771609
Sergei Obrastsov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
=Dimon=
f i=1:1:100000 { s ^a(i,i,i,i,i,i)=i}
s key = $Q(^a)
while key '="" {
s key = $Q(@key)
}
Это истинный код или "по мотивам"? Потому как непонятно
использование $Query при известной структуре массива.
Конечно он будет жрать ресурсы. Тут надо не приоритеты понижать,
а код приводить к нормальному виду.
...
Рейтинг: 0 / 0
Понижение приоритета при чтение глобалов
    #35771612
Sergei Obrastsov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ну я=Dimon=Alexey Maslov,

Код такой

testGlobal
f i=1:1:100000 { s ^a(i,i,i,i,i,i)=i}
s key = $Q(^a)
while key '="" {
s key = $Q(@key)
}

Код отрабатывает моментом. Проблема-то в чем? Где тут что тормозит?
Ясно что тормозит - малый кэш. Поэтому все упирается в диск.
...
Рейтинг: 0 / 0
Понижение приоритета при чтение глобалов
    #35771860
Alexey Maslov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
При малом кэше все уперлось бы в Disk I/O, а не в CPU. Когда глобал весь в кэше, ожиданиe Disk I/O отсутствует, вот и имеем 100% CPU (точнее, одного из CPU/ядер, если их несколько). Правда, чтобы увидеть эти 100%, мне пришлось немного переделать код, увеличив глобал (с 4 до 40 Мб) и кол-во сканирований (с 1 до 10):
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
tpri
	d tg( 1 )
	d tg( 0 ,"NORMAL,BATCH")
	d tg( 0 ,"NORMAL,NOBATCH")
	d tg( 0 ,"LOW,BATCH")
	d tg( 0 ,"LOW,NOBATCH")
	d tg( 0 ,"HIGH,BATCH")
	d tg( 0 ,"HIGH,NOBATCH")
	q
tg(full,p)
 if $g(full) k ^a f i= 1 : 1 : 1000000  s ^a(i,i,i,i,i,i)=i
 if '$d(p) q
 d SET^%PRIO(p)
 s t0=$zh 
 f i=1:1:10 {
  s key = $Q(^a)
  while key '="" {
 	s key = $Q(@key)
  }	
 }
 w !,p,? 25 ,"run time: "_($zh-t0)
 q	
Отклонения при различных значениях p оказались в пределах погрешности. Правда, на загруженной системе не гонял, нет времени сейчас на это.
...
Рейтинг: 0 / 0
Понижение приоритета при чтение глобалов
    #35772878
=Dimon=
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alexey Maslov,

В Вашем случае возможно проблем и не возникло, т.к. вы программу выполняете последовательно. А запустите из терминала 2 таких задачи с выводом значения глобалов на экран и увидите задержки и загрузка процессора на 100%, что другие процессы не могут данные читать/писать.
...
Рейтинг: 0 / 0
Понижение приоритета при чтение глобалов
    #35773119
Sergei Obrastsov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
=Dimon=Alexey Maslov,

В Вашем случае возможно проблем и не возникло, т.к. вы программу выполняете последовательно. А запустите из терминала 2 таких задачи с выводом значения глобалов на экран и увидите задержки и загрузка процессора на 100%, что другие процессы не могут данные читать/писать.
Может вы все-таки объясните смысл этой задачи?
На многозадачный тест она никак не тянет, поскольку реализована именно
для последовательного выполнения. Так зачем она нужна-то?

=Dimon=Alexey Maslov,При малом кэше все уперлось бы в Disk I/O, а не в CPU. Когда глобал весь в кэше, ожиданиe Disk I/O отсутствует, вот и имеем 100% CPU (точнее, одного из CPU/ядер, если их несколько).
Поясняю: при последовательном чтении массива кэш обновляется постоянно, то есть
смысла в нем просто нет. Все последующие задачи в кэше ничего не находят и лезут
на диск, который пытается снова писать в кэш и т.д.
...
Рейтинг: 0 / 0
Понижение приоритета при чтение глобалов
    #35773556
Alexey Maslov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Sergei Obrastsovпри последовательном чтении массива кэш обновляется постоянноТопикстартер упомянул "100% CPU", а это как раз и говорит о [почти полном] отсутствии Disk I/O у данного процесса. В Cache, как известно, "много читателей - один писатель (демон записи)", поэтому дисковый I/O каждого процесса попадает именно в его статистику.
То, что процесс, активно что-то обрабатывающий и берущий почти все данные из кэша, может стать настоящей бедой для интерактивных польз-лей Каше, в общем-то, давно известно. Происходит это потому, что при конкуренции за LRU-кэш у такого процесса всегда есть преимущество. Панацеи от этого нет, но можно:
- не иметь таких процессов больше, чем (Nядер - m), где m определяется экспериментально :)
- переходить в Linux, где весь File Disk I/O кэшируется еще и Linux'ом; в сложных случаях наличие такого "вторичного кэша" может оказаться благом;
- кстати, в Linux'е хорошо видно, что у batch-процесса Cache nice value всего-навсего 2. Т.е. приоритет normal = 19, а low = 17. Можно попробовать запускать фоновые процессы внешним вызовом nice с бОльшими значениями nice value.
...
Рейтинг: 0 / 0
26 сообщений из 26, показаны все 2 страниц
Форумы / Caché, Ensemble, DeepSee, MiniM, IRIS, GT.M [игнор отключен] [закрыт для гостей] / Понижение приоритета при чтение глобалов
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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