Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Помогите разобраться с кэшем
|
|||
|---|---|---|---|
|
#18+
ASA9.0.2.3182 Использую AWE кэш, в строке запуска указываю размер = 4096М. 1) Поясните что значит "Выделенное адресное пространство": I. 18/09 19:57:20. Выполняется на Windows 2003 Build 3790 Service Pack 1 I. 18/09 19:57:21. 4096000K памяти использовано для кэширования I. 18/09 19:57:21. Физическая память, выделенная для изображений: 4049712К I. 18/09 19:57:21. Выделенное адресное пространство: 1482464К I. 18/09 19:57:21. Использование страницы максимального размера 8192 байт В диспетчере задач видно, что выделяется 4Гига, а вот вопрос как использует их сервер? 2) И еще, как можно узнать содержимое кэша, как он используется? CacheRead не дает представления о том насколько эффективно используется кэш. Как узнать есть ли необходимость/возможность увеличивать/уменьшать размер кэша без практического влияния на производительность? Posted via ActualForum NNTP Server 1.3 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.09.2005, 22:33 |
|
||
|
Помогите разобраться с кэшем
|
|||
|---|---|---|---|
|
#18+
Код: plaintext 1. 2. 3. 4. эффективности. Т.е. сочетание "содержимое кэша, как он используется?" две разный разницы Вообще эффективность кеша оценивается очень просто- по процентному соотношению попадания в кеш для ASE - Cache hit ratio(параметр мониторирования) Если процент всегда высок( 98%-100% ), то наверное можно у него отнять памяти, если она нужна в другом месте. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.09.2005, 09:54 |
|
||
|
Помогите разобраться с кэшем
|
|||
|---|---|---|---|
|
#18+
Ладно, допустим с эффективностью использования кэша все понятно. Но что значит следующая строка?: "Выделенное адресное пространство: 1482464К" Откуда это число? Есть подозрения, что сервер не использует предоставленную ему память. Как проверить точно? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.09.2005, 18:14 |
|
||
|
Помогите разобраться с кэшем
|
|||
|---|---|---|---|
|
#18+
serg08 Вообще эффективность кеша оценивается очень просто- по процентному соотношению попадания в кеш для ASE - Cache hit ratio(параметр мониторирования) Если процент всегда высок( 98%-100% ), то наверное можно у него отнять памяти, если она нужна в другом месте. ;) да уж, понизим процент попадания в кэш - нехай сервер читает с диска, а то ему заняться видно нечем больше ;) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.09.2005, 19:20 |
|
||
|
Помогите разобраться с кэшем
|
|||
|---|---|---|---|
|
#18+
Можно вопрос к знатокам ASA : ASA может читать данные не через кэш ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.09.2005, 20:18 |
|
||
|
Помогите разобраться с кэшем
|
|||
|---|---|---|---|
|
#18+
MasterZivМожно вопрос к знатокам ASA : ASA может читать данные не через кэш ? Без понятия - по идее кэш страниц, кэш планов и кэш компилированных процедур сервер использует по собственному усмотрению, желанию и согласно рекомендациям оптимизатора. Можно конечно порыться в настройках сервера, но обычно все само собой работает нормально и пока необходимости пытаться где то что изменить стандартное поведение сервера, что навязать свои планы запросов не возникало. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.09.2005, 21:11 |
|
||
|
Помогите разобраться с кэшем
|
|||
|---|---|---|---|
|
#18+
Если есть желание, то по идее про кэш можно почитать здесь: http://www.ianywhere.com/developer/product_manuals/sqlanywhere/0902/en/html/dbugen9/00000206.htm ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.09.2005, 21:15 |
|
||
|
Помогите разобраться с кэшем
|
|||
|---|---|---|---|
|
#18+
UsersGuide это конечно хорошо. Но вся документация у меня и так есть. И естественно я плотно с ней ознакомился прежде чем сюда задавать вопросы. Есть такой момент, который мне жутко не нравится. Если перед каким-то здоровым запросом по паре таблиц сделать два банальных селекта select count(*)..., то этот запрос выполняется за 10-15 минут, а если не делать предварительного шаманства с select count(*), то запрос может выполнятся часами. В связи с чем возникает желание разобраться, почему сервер посчитал, что ему проще ненапрягаясь перерыть дисковым чтением 100 млн. таблицу за Х часов, чем потратить Х минут на чтение этой таблицы в кэш и разобраться с ней в памяти? Ну да ладно, с этим можно бороться обыкновенной избыточностью данных и дублировать нужные данные в двух таблицах. Либо, у меня появилась мысль, повлиять на оптимизатор установкой его политики не в "first row", а в "all row". Но почему при старте сервер говорит что выделено 1,5гига, а используется 4 - вот что необъяснимо... Прямо загадка какая-то. Posted via ActualForum NNTP Server 1.3 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.09.2005, 22:12 |
|
||
|
Помогите разобраться с кэшем
|
|||
|---|---|---|---|
|
#18+
Нууу . для начала optimization_goal и должно стоять в "All-Rows". Оно даже по умолчанию на новых БД создается и в Central предлагается, не понятно зачем был выбран "First-Row". Во вторых я вообще не понимаю, как это: авторВ связи с чем возникает желание разобраться, почему сервер посчитал, что ему проще ненапрягаясь перерыть дисковым чтением 100 млн. таблицу за Х часов, чем потратить Х минут на чтение этой таблицы в кэш и разобраться с ней в памяти? Почему перерыть диск чтением у сервера займет больше, чем возможно убить весь кэш ненужными данными для других сессий и в итоге все равно перерыть чтением весь диск ? Как это в кэш быстрее загрузится с винта, чем просто чтение с винта ? Моя не понимай :) Давайте уж рассказывайте, что за запросы выполняются по таблице со 100 млн. записей, сколько примерно возвращают, какие индексы, какой план запроса, где по нему затыки, какой кстати размер страницы в БД (многие ведь частенько поставят 32кб и радуются, думая, что это однозначно убыстрит сервер). Вполне возможно запрос можно переписать, где то не хватает индексов, статистика не соотвествует действительности ... в общем цепляйте план запросов сюда из ISQL в XML, тогда реально можно будет по нему посмотреть и сказать, что не так. P.S. А бороться за повышение производительности запросов путем повышения мощности сервера, доступной памяти и играми с настройками желательно после того, как все пути оптимизации были перепробованы и затык уже явно не лечится "мягкими" методами. К примеру у меня БД на 7 гб, с таблицами по 15 миллионов записей на ASA спокойно без напрягов выполняла достаточно сложные запросы с подзапросами на P4 с 512 RAM всего и под кэш было отдано всего 360 мб. А все потому, что по таблицам были созданы только наиболее оптимальные индексы, которые очень удачно использовались оптимизатором запросов. И такого в принципе небольшого размера кэша вполне хватало на все случаи жизни. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.09.2005, 23:40 |
|
||
|
Помогите разобраться с кэшем
|
|||
|---|---|---|---|
|
#18+
Наверное слабовато у меня с теорией!!!! Чего то я недопонимаю!! Код: plaintext 1. 2. 3. Код: plaintext 1. 2. 3. Код: plaintext 1. 2. Может кто нибудь знает программы которые читают данные(с диска или других средств хранения) не через оперативную память. Для сервера его область оперативной памяти -Кеши. Чего то я недопонимаю!! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.09.2005, 10:03 |
|
||
|
Помогите разобраться с кэшем
|
|||
|---|---|---|---|
|
#18+
1) optimization_goal точно никогда не крутил. Базу в свое время создавал в централе, данные переливал через полный unload/load из 6-й версии. Подозреваю, что эта опция переползла со старой базы, но проверить не могу, скрипт релоада завален обломками времени..) Просто сейчас стал смотреть настройки и бросилось в глаза что там стоит вот так, а не иначе. 2) Поднимать тему с пересечением больших объемов данных не хотел бы, т.к. тут это мы уже обсуждали. Но напомню, что производился один здоровый селект, такого вида: select a,b,olap_functions() from (select a,b,sum(c) from (select t1.a,t2.b,t1.c from t1 key join t2 where t1.d between '' and '' ) as vv() group by a,b ) as v() индекс по t1.d имеется. Понятное дело, что запрос слишком нехороший. Так вот, именно вот про этот запрос я говорил "проще ненапрягаясь перерыть дисковым чтением 100 млн. таблицу за Х часов, чем потратить Х минут на чтение этой таблицы в кэш и разобраться с ней в памяти". Оно и понятно, если вторая таблица в кэше, то сервер с диска тянет только первую(и вот тут-то и помогает дисковый кэш), и пробегаясь по ней делает все что надо, а если кэш пустой, то сервер поочередно читает то первую, то вторую таблицу. Возможно, кстати, на такое поведение и повлиял пункт 1. 3) Напомню, первоначальная тема топика связана с эффективностью использования кэша сервером АСА9, а также с административным функциями связаными с получением максимальной информации о кэше АСА и его использовании. О запросах давайте тут не будем, все равно проблему решаю конструктивно (перестройкой структуры). 4) По поводу чтения с диска через память. Да, диск всегда читается через память, но одно дело читать через один буфер размером 64К, другое дело читать через буфер 64К и складывать в сторонке в памяти, авось пригодится. И вот тут меня и интересует, складывает ли АСА что-то в "сторонке"? Что именно лежит сейчас в "сторонке"? Мне кажется странным что не сделан такой функционал, что тут сложного? Или это никому не нужно? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.09.2005, 11:59 |
|
||
|
Помогите разобраться с кэшем
|
|||
|---|---|---|---|
|
#18+
И все таки я хоть убей не понимаю, причем тут в данной ситуации кэш ? Запрос нужно или переписывать или через времянки оптимизировать. А пихать все, что читает сессия ASA в кэш не может - какой в этом смысл ? Одна сессия читает одно, другая в этот момент другое, третья вообще чего то из других таблиц делает - и что, им друг друга вытеснять непрерывно ? Кэш создан для того, чтобы обеспечивать доступ к наиболее часто востребованным страницам (данным) БД. Соотвествующе при запросе, который охватывает 100 лямов записей уже ежу понятно, что смысла чего то из считываемых данных пихать в кэш нет, в надежде, убивая все другое - авось другим сессиям, да пригодится. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.09.2005, 12:33 |
|
||
|
Помогите разобраться с кэшем
|
|||
|---|---|---|---|
|
#18+
А нет борьбы-то за кэш, то что юзают одни сессии нормально работает и с кэшом в 1гиг. Все остальное выделено под одну задачу. Я сомневаюсь, что что-то вытесняется из кэша. И проделав два(или даже один) шаманских селекта никак не влияет на работу других сессий, а на работу некоего запроса влияет принципиально(даже план не меняется)!!! И дело не в сессиях. К примеру, один сервер, одна сессия, почему АСА сам не может догадаться, что не нужно разрываться на две таблицы одновременно, а последовательно закачать сначала меньшую к себе в память(это на порядок быстрее), а потом последовательно бежать по второй, пересекать с данными из памяти и результат откладывать опять-таки в кэш? Даже если есть сессии которые что-то вытесняют из кэша, они не вытеснят такой объем никогда, у них потребности меньше в тыщи раз. Ему что, памяти жалко? А зачем тогда она ему нужна? Не хочет ее заполнять, а оставить на потом, типа авось пригодится? Я вот как раз не понимаю поведение сервера АСА. P.S.: По умолчанию, в АСА стоит как раз first-row. Только что проверил. Думаю, надо сначала попробывать с all-row, возможно это и объяснит желание сервера быстрее хоть что-нибудь выдать, вместо потратить меньшее время на всю выборку. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.09.2005, 12:55 |
|
||
|
Помогите разобраться с кэшем
|
|||
|---|---|---|---|
|
#18+
iLLer wrote: > P.S.: По умолчанию, в АСА стоит как раз first-row. Только что проверил. > Думаю, надо сначала попробывать с all-row, возможно это и объяснит > желание сервера быстрее хоть что-нибудь выдать, вместо потратить меньшее > время на всю выборку. Вообще говоря, смысл "first-row" именно в том, что ты описал, только в RTFM-е об этом написано более пространно и по-английски :). Posted via ActualForum NNTP Server 1.3 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.09.2005, 12:58 |
|
||
|
Помогите разобраться с кэшем
|
|||
|---|---|---|---|
|
#18+
iLLerА нет борьбы-то за кэш, то что юзают одни сессии нормально работает и с кэшом в 1гиг. Все остальное выделено под одну задачу. Я сомневаюсь, что что-то вытесняется из кэша. И проделав два(или даже один) шаманских селекта никак не влияет на работу других сессий, а на работу некоего запроса влияет принципиально(даже план не меняется)!!! И дело не в сессиях. К примеру, один сервер, одна сессия, почему АСА сам не может догадаться, что не нужно разрываться на две таблицы одновременно, а последовательно закачать сначала меньшую к себе в память(это на порядок быстрее), а потом последовательно бежать по второй, пересекать с данными из памяти и результат откладывать опять-таки в кэш? Даже если есть сессии которые что-то вытесняют из кэша, они не вытеснят такой объем никогда, у них потребности меньше в тыщи раз. Ему что, памяти жалко? А зачем тогда она ему нужна? Не хочет ее заполнять, а оставить на потом, типа авось пригодится? Я вот как раз не понимаю поведение сервера АСА. Если All-Rows не поможет, то еще попробуйте отключить коллекцию кэша параметром "-cc-" и посмотреть, что получиться. iLLerP.S.: По умолчанию, в АСА стоит как раз first-row. Только что проверил. Думаю, надо сначала попробывать с all-row, возможно это и объяснит желание сервера быстрее хоть что-нибудь выдать, вместо потратить меньшее время на всю выборку. В BOL черным по белому написано: Default all-rows ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.09.2005, 13:08 |
|
||
|
Помогите разобраться с кэшем
|
|||
|---|---|---|---|
|
#18+
Хм, что-то тут не чисто с этим optimization_goal. Сейчас настройку посмотрел, там теперь вообще стоит "Response-time". Возникает вопрос, сервер сам может выставлять эту опцию, в зависимости от каких-то внешних и внутренних факторов? Ведь никто ничего не трогал в базе со вчерашнего дня, а вчера было "first-row"! Только сервер перегружали и все. Будем разбираться дальше. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.09.2005, 13:47 |
|
||
|
Помогите разобраться с кэшем
|
|||
|---|---|---|---|
|
#18+
))) Это же одно и тоже, что first-row, что response-time. Вопрос снят. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.09.2005, 13:57 |
|
||
|
Помогите разобраться с кэшем
|
|||
|---|---|---|---|
|
#18+
Ха, поменяв опцию Optimization_goal на 'all-rows' вылечил проблему (как мне кажется). По крайней мере план изменился, и по нему видно, что сервер решил отбросить использование внешнего ключа. Вот она собака где порылась. P.S.: А еще кто-то говорит, что ASA это "несерьезная детская игрушка"...) Очень даже приличный сервер, надо только уметь готовить. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.09.2005, 15:24 |
|
||
|
Помогите разобраться с кэшем
|
|||
|---|---|---|---|
|
#18+
Ну я уже давал ссылочку насчет впечатления "детской игрушки": http://tinyurl.com/dzzu7 Действительно странно, что легкость в инсталяции, управлении, нулевое администорование и качественный оптимизатор многие воспринимают как "не стоящее внимание" по принципу "раз легко, значит не серьезно" ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.09.2005, 15:51 |
|
||
|
Помогите разобраться с кэшем
|
|||
|---|---|---|---|
|
#18+
serg08Наверное слабовато у меня с теорией!!!! Чего то я недопонимаю!! Код: plaintext 1. 2. 3. ну если данных нет в кэше, то откуда серверу их взять? с диска сессна в итоге - встаем в сторонку и ждем пока сервер начитает необходимые данные с диска и вернет нам право поработать ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.09.2005, 16:12 |
|
||
|
Помогите разобраться с кэшем
|
|||
|---|---|---|---|
|
#18+
serg08Наверное слабовато у меня с теорией!!!! Чего то я недопонимаю!! Код: plaintext 1. 2. 3. Код: plaintext 1. 2. 3. Код: plaintext 1. 2. область оперативной памяти -Кеши. Вот и я про то же. Но ASA я не знаю, поэтому и спрашиваю. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.09.2005, 21:28 |
|
||
|
|

start [/forum/topic.php?desktop=1&fid=55&tid=2013361]: |
0ms |
get settings: |
9ms |
get forum list: |
16ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
57ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
61ms |
get tp. blocked users: |
2ms |
| others: | 257ms |
| total: | 421ms |

| 0 / 0 |
