powered by simpleCommunicator - 2.0.50     © 2025 Programmizd 02
Форумы / Caché, Ensemble, DeepSee, MiniM, IRIS, GT.M [игнор отключен] [закрыт для гостей] / Растет БД CACHETEMP
43 сообщений из 43, показаны все 2 страниц
Растет БД CACHETEMP
    #38026189
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Один (!) из клиентов жалуется на то, что у него растет БД CACHETEMP...
С чем такое может быть связано?

Поскольку наше ПО у всех одинаково и никто пока на такое не жаловался...
----------
Cache for Windows (x86-32) 2009.1.3 (Build 704_0_9104) Mon Mar 8 2010 19:31:10 EST
Cache for Windows (x86-64) 2010.2.3 (Build 702) Tue Feb 15 2011 14:20:27 EST
Cache for Windows (x86-64) 2012.1.1 (Build 602) Wed Mar 7 2012 22:36:34 EST
...
Рейтинг: 0 / 0
Растет БД CACHETEMP
    #38026271
ser_shu
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
krvsa,
Cachetemp всегда растёт после старта Cache.
Вопрос - на что жалуется - 1 TB или больше чем у соседей.
Проще всего - посмотреть какие глобалы какого объёма внутри cachetemp.
...
Рейтинг: 0 / 0
Растет БД CACHETEMP
    #38026284
Фотография П.С.М.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ser_shuCachetemp всегда растёт после старта Cache.
Да это-то понятно, тут проблема, как я понял, почему не очищается (после перезапуска системы).
...
Рейтинг: 0 / 0
Растет БД CACHETEMP
    #38026290
Фотография DAiMor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Самое простое что приводит к росту CacheTemp - это то что глобалы не чистятся после того как становятся не нужны
при старте по умолчанию вроде 240мб

Ниже код, который позволит посчитать размеры глобалов, и размеры подузлов, что лучше может помочь найти проблемное место
/// Анализ размера глобала, с анализом размера его подузлов, на указанную вложенность
/// все необходимые параметры будут запршены при запуске
ClassMethod GlobalSize() [ PublicList = (big, DatabaseBlockSize, blksiz, cc, Bytes, Count, gls, lev) ]
{
  s $zt="err"
  do {
    s dir=$$getval("Путь к БД",$zu(12,""))
    w !
    s db=##class(SYS.Database).%OpenId(dir)    
    i '$isobject(db) s dir=""
  } while dir=""
  do {
    s glb=$$getval("Имя глобала","")
    s glb=$tr(glb,"^")
    i glb'="",'$d(@("^|""^^"_dir_"""|"_glb)) s glb=""
  } while glb=""
  s gls=$$getval("Собирать в буфер (будет очищен)","^gls")
  do {
    s lev=$$getval("Глубина расчета","2")
    i $zstrip(lev,"*N")'="" s lev=""
  } while lev=""
  k @gls
  w !
  s Directory=dir /// Папка с БД
  s Name=glb      /// Глобал 
  s rc=$zu(167,6,7,Directory,Name)
  s x=$zu(49,Directory)
  s DatabaseBlockSize=+$p(x,",",$$$blksizpiece) ;размер блока
  /// начальный блок с глобалом
  s PointerBlock=$p(rc,"^",4)
  
  o 63:"^^"_Directory 
  s blk=PointerBlock
  s (Bytes,Count)=0
  s blksiz=DatabaseBlockSize
  s big='(blksiz=$$$2k)
  d ..getsize(blk)
  w !,"Блоков = ",Count
  w !,"Занимаемое место = ",Bytes
  q
err  
  w !,$ze
  q  
getval(mess, def)
  w !,mess_": "_def_" => "
  r res
  i res="" s res=def
  q res
}

/// рекурсивный обход блоков
ClassMethod getsize(blk, haslong = 0) [ Internal, PublicList = (big, DatabaseBlockSize, blksiz, cc, Bytes, Count, gls, lev) ]
{
  q:'blk  
  v blk
  #; тип блока
  s type=$case(DatabaseBlockSize,$$$2k:$$$type2k,:$$$type) 
  w:type'=8 !,$i(cc),?10,blk,?20,type,?30,haslong
  i type=8 {
    #; Блок с данными
    s bts=$$$offsetval(big) // размер блока
    s blkcnt=0
    i haslong {
      #; составной большой блок данных, данные в нескольких блоках
      f j=1:1 {
        s x=$v(j*2,-6) 
        q:x=""  
        s gl=$v(j*2+1,-5)
        i $a(x)=$$$gdviewbiguni(big)!($a(x)=$$$gdviewbigcompact(big))!($a(x)=$$$gdviewbigbin(big)) {
          s blkcnt=$p(x,",",2) 
          s Count=Count+blkcnt // общее количество блоков
          #; размеры блоков
          s bts=bts+((blkcnt-1)*$$$datasize(blksiz)+$p(x,",",3)) 
        }
      }
    } else {
      s blkcnt=1 // в обычном блоке он один
    }
    s t=$i(Count,blkcnt),t=$i(Bytes,bts) 
    try { s gl=$v(1,-5) } catch { s gl="" }
    d ..cnt(gl,bts,blkcnt)
  } elseif type'=1 {
    #; связующие блоки
    f i=1:1 {
      s x=$v(i*2-1,-6)
      q:x=""
      try { s gl=$v(i*2-1,-5) } catch { s gl="" }
      #; связанный с текущим блок
      s datablk=$v(i*2,-5)
      s haslong=0 
      i $p($v(i*2,-6),",",1) {
        s haslong=1
      }
      d ..getsize(datablk,haslong)
      v blk
    }
  }
  q
}

/// запись счетчиков в буфер
ClassMethod cnt(gl, bts, blkcnt = 1) [ Internal, PublicList = (gls, lev) ]
{
  #; считаем в буфере 
  f i=0:1:lev {
    s ind=""
    f j=0:1:i {
      s ind=ind_$lb($qs(gl,j))
    }
    s t=$i(@gls@(ind,"size"),bts)
    s t=$i(@gls@(ind,"cnt"),blkcnt)
  }
  q
}
...
Рейтинг: 0 / 0
Растет БД CACHETEMP
    #38026296
Фотография DAiMor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
П.С.М.ser_shuCachetemp всегда растёт после старта Cache.
Да это-то понятно, тут проблема, как я понял, почему не очищается (после перезапуска системы).
после перезапуска, CacheTemp чистится, но не уменьшается размер БД, такого он делать не умеет
можно сам файл CACHE.DAT удалить перед запуском, и при старте он его создаст автоматически
...
Рейтинг: 0 / 0
Растет БД CACHETEMP
    #38026315
servit
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Растет БД CACHETEMP
    #38026332
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
servit Было
Но ответа так и небыло...
...
Рейтинг: 0 / 0
Растет БД CACHETEMP
    #38026337
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DAiMorНиже код, который позволит посчитать размеры глобалов, и размеры подузлов, что лучше может помочь найти проблемное место
Наша клиентура не станет заниматься этим... Т.е. анализом чего-то у них происходящего.
...
Рейтинг: 0 / 0
Растет БД CACHETEMP
    #38026338
servit
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Растет БД CACHETEMP
    #38026339
Фотография DirksDR
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DAiMor,

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
USER>do ^GlobalSize
 
Путь к БД: c:\intersystems\cache\mgr\user\ =>
 
<CLASS DOES NOT EXIST>+7^GlobalSize *SYS.Database
USER>do ^GlobalSize
 
Путь к БД: c:\intersystems\cache\mgr\user\ => c:\intersystems\cache\mgr\user\
 
<CLASS DOES NOT EXIST>+7^GlobalSize *SYS.Database
USER>


Cache for Windows (x86-32) 2009.1.2 (Build 602.0_SU) Mon Oct 26 2009 15:39:14 EDT

откомпилировалось нормально (убрал слова "ClassMethod" и закоментировал PublicList-ы)...
версия Каши не та?
...
Рейтинг: 0 / 0
Растет БД CACHETEMP
    #38026340
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ser_shuВопрос - на что жалуется - 1 TB или больше чем у соседей.
Цитирую...
авторЗа день работы CACHETEMP вырос до 14Гб
Т.е. "больше чем у соседей".
...
Рейтинг: 0 / 0
Растет БД CACHETEMP
    #38026341
Фотография DAiMor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
krvsaDAiMorНиже код, который позволит посчитать размеры глобалов, и размеры подузлов, что лучше может помочь найти проблемное место
Наша клиентура не станет заниматься этим... Т.е. анализом чего-то у них происходящего.
я это знаю, и им незачем этим заниматься
там код простой, запустил собрал данные в глобал, глобал можно экспортировать и передать вам а вы уже можете его анализировать
вам все равно нужно понять кто не чистит данные раз растет БД, а без анализа данных это сделать бывает затруднительно
...
Рейтинг: 0 / 0
Растет БД CACHETEMP
    #38026431
Alexey Maslov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Можно попробовать "похоронить" проблему, перейдя на приватные глобалы процесса, т.е. с ^CacheTempXXX($Job,i1,...) на ^||XXX(i1,...). Если код написан аккуратно, это не должно быть очень сложно.
В случае затруднений предварительный анализ, предложенный DAiMor'ом, помог бы определить, с каких глобалов начинать.
...
Рейтинг: 0 / 0
Растет БД CACHETEMP
    #38026449
Фотография DAiMor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alexey MaslovМожно попробовать "похоронить" проблему, перейдя на приватные глобалы процесса, т.е. с ^CacheTempXXX($Job,i1,...) на ^||XXX(i1,...). Если код написан аккуратно, это не должно быть очень сложно.
В случае затруднений предварительный анализ, предложенный DAiMor'ом, помог бы определить, с каких глобалов начинать.

по поводу приватных глобалов, нужно быть тоже поосторожнее.
Уже не помним на какой версии (2008.1 или 2010.2.6), но были проблемы с ними, когда мы стали их использовать, у нас распух CacheTemp, и у нас не было никакой возможности понять куда ушло это место. и отследить размер приватного глобала не было возможности
...
Рейтинг: 0 / 0
Растет БД CACHETEMP
    #38026452
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DAiMorзапустил собрал данные в глобал, глобал можно экспортировать и передать вам а вы уже можете его анализировать
Ясно...
...
Рейтинг: 0 / 0
Растет БД CACHETEMP
    #38026473
servit
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
krvsa ,

Статистику по размеру глобалов пользователи могут собрать, выполнив запрос в Портале:call %SYS.GlobalQuery_Size('C:\InterSystems\Cache\mgr\cachetemp','','*',1,'',0)PS: уточните точный набор и формат параметров согласно документации Вашей версии СУБД.
...
Рейтинг: 0 / 0
Растет БД CACHETEMP
    #38026514
Alexey Maslov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
servit,

Спасибо за идею!
Запрос, конечно же, нормально работает через любую внешнюю odbc-утилиту типа WinSQL.

Но с каких пор (с какой версии) Портал стал поддерживать CALL ?
...
Рейтинг: 0 / 0
Растет БД CACHETEMP
    #38026526
Alexey Maslov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кстати, с поднятым FastFlag (Don't return 'Used' count, it would be zero. This is for faster operaton):call %SYS.GlobalQuery_Size('C:\InterSystems\Cache\mgr\cachetemp','','*',1,'', 1 )запрос выполняется практически мгновенно.
...
Рейтинг: 0 / 0
Растет БД CACHETEMP
    #38026555
Фотография DirksDR
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
servit,

Мне очень стыдно, но не могли бы Вы уточнить в каком месте портала выполнить этот код?
Я знаю только одно место, где можно выполнить код, это "Исполнить SQL запрос",
но здесь выдается ошибка
Код: sql
1.
ОШИБКА #5540: SQLCODE: -370 Сообщение: SQL выражение CALL не может использоваться для Процедуры '%SYS.GLOBALQUERY_SIZE'
...
Рейтинг: 0 / 0
Растет БД CACHETEMP
    #38026596
servit
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Раскрасил выше код пользователя DAiMor.

Если кому-то нужно помочь раскрасить свой код, воспользуйтесь кнопкой "Сообщить модератору" - я сделаю.
...
Рейтинг: 0 / 0
Растет БД CACHETEMP
    #38026613
Фотография DAiMor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
servitРаскрасил выше код пользователя DAiMor.
Если кому-то нужно помочь раскрасить свой код, воспользуйтесь кнопкой "Сообщить модератору" - я сделаю.
насколько я понимаю ты с помощью SyntaxColoring это делаешь ?
...
Рейтинг: 0 / 0
Растет БД CACHETEMP
    #38026614
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
servitуточните точный набор и формат параметров согласно документации Вашей версии СУБД.
Пока это сделать проблематично, т.к. местный специалист менят версии 2009 и 2012 то "туда", то "обратно"...
...
Рейтинг: 0 / 0
Растет БД CACHETEMP
    #38026626
servit
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DirksDR , Alexey Maslov ,

Это мне должно быть стыдно, что сразу не учёл этот момент.
Согласно текущей документации :The Management Portal SQL interface cannot execute a CALL statement. You can execute CALL from Dynamic SQL, Embedded SQL, or SQL Shell.
В Портале версии 2013.1.FT1 уже можно вызывать CALL.
...
Рейтинг: 0 / 0
Растет БД CACHETEMP
    #38026650
servit
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DAiMorнасколько я понимаю ты с помощью SyntaxColoring это делаешь ?В том числе.

Сейчас готовится публичный сервис по аналогии с http://highlight.hohli.com/ по раскраске кода для sql.ru и habrahabr.ru
Код уже написан, но в WRC должны кое-что доделать. Обещали сделать в версии 2013.2.
А до тех пор код могу раскрасить я "вручную".
...
Рейтинг: 0 / 0
Растет БД CACHETEMP
    #38026673
Alexey Maslov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В таком формате работает, начиная с Cache 2010.1.4 (более старые версии мне сейчас недоступны):call %SYS.GlobalQuery_Size('C:\InterSystems\Cache\mgr\cachetemp',,'*',1)Противоречий с более новыми версиями здесь, похоже, нет, главное 2-ой параметр (имя системы) именно пропустить, а не делать пустым, и задавать только первые 4 параметра.

krvsa , попробуй, может и в 2009.1 "проканает".
...
Рейтинг: 0 / 0
Растет БД CACHETEMP
    #38026714
servit
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
%SYS.GlobalQuery_Size() по крайней мере есть с версии 5.2 .
...
Рейтинг: 0 / 0
Растет БД CACHETEMP
    #38026723
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Подключил одного из специалистов на анализ и тесты... Создана ВРЦ...
Посмотрим, что из этого выйдет...
...
Рейтинг: 0 / 0
Растет БД CACHETEMP
    #38026822
Фотография DirksDR
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alexey MaslovВ таком формате работает, начиная с Cache 2010.1.4 (более старые версии мне сейчас недоступны):call %SYS.GlobalQuery_Size('C:\InterSystems\Cache\mgr\cachetemp',,'*',1)Противоречий с более новыми версиями здесь, похоже, нет, главное 2-ой параметр (имя системы) именно пропустить, а не делать пустым, и задавать только первые 4 параметра.

krvsa , попробуй, может и в 2009.1 "проканает".

В таком варианте проканало.
Cache for Windows (x86-32) 2009.1.2 (Build 602.0_SU) Mon Oct 26 2009 15:39:14 EDT
...
Рейтинг: 0 / 0
Растет БД CACHETEMP
    #38027848
ETurov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вобщем посоветовали воспользоваться программкой ^Buttons. В связи с этим вопрос у кого она есть? и кто может дать ссылочку на скачивание?
...
Рейтинг: 0 / 0
Растет БД CACHETEMP
    #38027918
servit
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ETurovВобщем посоветовали воспользоваться программкой ^Buttons. В связи с этим вопрос у кого она есть? и кто может дать ссылочку на скачивание?
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
USER>zn "%SYS"
 
%SYS>d ^Buttons
 
 
Diagnostic Report Build # 082 Evidence Logging Tool
 
This reporting tool provides the information required for InterSystems
Technical Support to analyze most issues. Please send the resulting file with
each and every new problem sent to Support.
 
This process will take approximately 5 minutes to complete. Please be patient.
 
Continue (Y)?
...
Рейтинг: 0 / 0
Растет БД CACHETEMP
    #38027959
Alexey Maslov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если Cache for Windows, рекомендуется ещё скачать с microsoft'а утилиты pslist.exe и psinfo.exe. Их следует положить в intersystems\cache\bin и заранее (до запуска Buttons) по одному разу запустить.
...
Рейтинг: 0 / 0
Растет БД CACHETEMP
    #38027968
servit
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Растет БД CACHETEMP
    #38028251
Alexey Maslov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
С какой-то версии Cache информация про ps*.exe стала не актуальна.
По крайней мере, в 2011.1.5 для получения списка процессов ОС ^Buttons обходится системной командой `tasklist -v`.
...
Рейтинг: 0 / 0
Растет БД CACHETEMP
    #38029496
doublefint
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
servitDAiMorнасколько я понимаю ты с помощью SyntaxColoring это делаешь ?В том числе.
Сейчас готовится публичный сервис по аналогии с http://highlight.hohli.com/ по раскраске кода для sql.ru и habrahabr.ru
Код уже написан, но в WRC должны кое-что доделать. Обещали сделать в версии 2013.2.
А до тех пор код могу раскрасить я "вручную".
Для хабры можно так: копируем из студии, вставляем сюда - нажимаем кнопку
...
Рейтинг: 0 / 0
Растет БД CACHETEMP
    #38029704
servit
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
doublefintДля хабры можно так: копируем из студии, вставляем сюда - нажимаем кнопкуНе нашёл там раскраску кода M/COS/CLS/CSP. Плохо искал?
...
Рейтинг: 0 / 0
Растет БД CACHETEMP
    #38029720
Фотография DAiMor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
servitdoublefintДля хабры можно так: копируем из студии, вставляем сюда - нажимаем кнопкуНе нашёл там раскраску кода M/COS/CLS/CSP. Плохо искал?
ключевой момент - "скопировать из студии"
фишка в том что студия при копировании отдает подсвеченный текст, для тех кто умеет понимать этот формат и полагаю раз сайт называется rtf2html, значит копирует в формате RTF
...
Рейтинг: 0 / 0
Растет БД CACHETEMP
    #38029732
servit
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DAiMor ,

Вы сами пробовали?
У меня Studio копирует лишь текст.
...
Рейтинг: 0 / 0
Растет БД CACHETEMP
    #38029757
Фотография DAiMor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
servit DAiMor ,

Вы сами пробовали?
У меня Studio копирует лишь текст.
да, конечно пробовал, копировал из 2010 студии
срабатывает и простое копирование в Word
на указанном сайте, в поле ввода в меню у меня есть 2 вида вставки, просто "вставить" и "вставить как обычный текст"
...
Рейтинг: 0 / 0
Растет БД CACHETEMP
    #38029760
servit
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Проблема локализована: баг в новой Студии (2013.1.FT1).

PS: воспользовался предложенным сервисом и нашёл, что не всегда корректно происходит конвертация.
...
Рейтинг: 0 / 0
Растет БД CACHETEMP
    #38029776
Фотография DAiMor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
servitПроблема локализована: баг в новой Студии (2013.1.FT1).

PS: воспользовался предложенным сервисом и нашёл, что не всегда корректно происходит конвертация.
круто сразу 2 бага в разных продуктах
...
Рейтинг: 0 / 0
Растет БД CACHETEMP
    #38030474
doublefint
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DAiMorзначит копирует в формате RTF
Это стандарт копипасты в Windows

servitПроблема локализована: баг в новой Студии (2013.1.FT1).
PS: воспользовался предложенным сервисом и нашёл, что не всегда корректно происходит конвертация.
Хм, для сервиса rtf2html сталкивался только с проблемой удаления табуляции (решается опцией в настройках Студии - табы заменить пробелами), и на некоторых участках кода выдает "Internal Server Error". В остальном свою задачу выполняет.
Кстати сделать свой такой сервис достаточно просто :)
...
Рейтинг: 0 / 0
Растет БД CACHETEMP
    #38115909
doublefint
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
servitПроблема локализована: баг в новой Студии (2013.1.FT1).
Уже 2013.1.FT3, копирование rtf не работает, видимо больше не будет такой возможности?
...
Рейтинг: 0 / 0
Растет БД CACHETEMP
    #38115922
servit
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
doublefint ,

Проверял на FT2 - у меня работало. Да и сейчас работает.
...
Рейтинг: 0 / 0
43 сообщений из 43, показаны все 2 страниц
Форумы / Caché, Ensemble, DeepSee, MiniM, IRIS, GT.M [игнор отключен] [закрыт для гостей] / Растет БД CACHETEMP
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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