The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

форумы  помощь  поиск  регистрация  майллист  ВХОД  слежка  RSS
"Как настроить дисковый кэш в Linux?"
Вариант для распечатки Архивированная нить - только для чтения! 
Пред. тема | След. тема 
Форумы OpenNET: Виртуальная конференция (Public)
Изначальное сообщение [Проследить за развитием треда]

"Как настроить дисковый кэш в Linux?"
Сообщение от romat emailИскать по авторуВ закладки on 27-Май-03, 17:47  (MSK)
Hi ALL,
Собственно весь вопрос в сабдж.
Linux RH-7.3
По умолчанию он отъедает до 30% RAM под дисковый кэш.
Bсе остальное валится в своп.
Никакого уменьшения его(кэша) не наблюдается, т.е. при возникновении  потребности приложений буфер не уменьшается. Дисковые операции постоянны.
Интересует как ограничить размер дискового кэша?

free
             total       used       free     shared    buffers     cached
Mem:       2064756    2054120      10636          0       5508    1225656
-/+ buffers/cache:     822956    1241800
Swap:      2096440     117080    1979360


cat ./meminfo /dev/console
        total:    used:    free:  shared: buffers:  cached:
Mem:  2114310144 2101915648 12394496        0  5640192 1296486400
Swap: 2146754560 111058944 2035695616
MemTotal:      2064756 kB
MemFree:         12104 kB
MemShared:           0 kB
Buffers:          5508 kB
Cached:        1235612 kB
SwapCached:      30488 kB
Active:        1571044 kB
ActiveAnon:     725064 kB
ActiveCache:    845980 kB
Inact_dirty:    142648 kB
Inact_laundry:  102940 kB
Inact_clean:     40816 kB
Inact_target:   371488 kB
HighTotal:     1179584 kB
HighFree:         1024 kB
LowTotal:       885172 kB
LowFree:         11080 kB
SwapTotal:     2096440 kB
SwapFree:      1987984 kB

  Рекомендовать в FAQ | Cообщить модератору | Наверх

 Оглавление

Индекс форумов | Темы | Пред. тема | След. тема
Сообщения по теме

1. "Как настроить дисковый кэш в Linux?"
Сообщение от uldus Искать по авторуВ закладки on 27-Май-03, 23:27  (MSK)
>По умолчанию он отъедает до 30% RAM под дисковый кэш.

А почему вы так уверены, что дисковый кэш отъедает 30% RAM ? По приведенным данным этого не скажешь, и вообще дисковый кэш очень широкое понятие, это и кэш инод и кэш директорий и система буферизации. То что по free отображается как "cached" имеет к дисковому кэшу очень далекое отношение.

Примерно, данные о размере дискового кэша пожно получить анализируя содержимое /proc/sys/fs/, состояние кэша дикерторий просматривается через
/proc/sys/fs/dentry-state

  Рекомендовать в FAQ | Cообщить модератору | Наверх

2. "Как настроить дисковый кэш в Linux?"
Сообщение от romat emailИскать по авторуВ закладки on 28-Май-03, 12:16  (MSK)
>А почему вы так уверены, что дисковый кэш отъедает 30% RAM ?
>По приведенным данным этого не скажешь,
да может быть этот пример не совсем удачный,
но суть вопроса от этого не меняется:
-Как  уменьшить размер буферного кэша?
  Рекомендовать в FAQ | Cообщить модератору | Наверх

3. "Как настроить дисковый кэш в Linux?"
Сообщение от uldus Искать по авторуВ закладки on 28-Май-03, 13:09  (MSK)
>-Как  уменьшить размер буферного кэша?

Это делать крайне не рекомендуется, современные linux ядра 2.4 умеют динамически выделять память для буферизации, в зависимости от нагрузки на систему и объема свободной, неиспользуемой в данный момент, памяти.

Если всеже нетерпиться наступить на грабли (баланс соотношения размеров системных буферов нарушить легко): см. /proc/sys/vm и описание src/linux/Documentation/sysct/vm.txt
или раздел /proc/sys/vm  в src/linux/Documentation/filesystems/proc.txt

  Рекомендовать в FAQ | Cообщить модератору | Наверх

4. "Как настроить дисковый кэш в Linux?"
Сообщение от romat emailИскать по авторуВ закладки on 28-Май-03, 15:53  (MSK)
>>-Как  уменьшить размер буферного кэша?
>
>Это делать крайне не рекомендуется, современные linux ядра 2.4 умеют динамически выделять
>память для буферизации, в зависимости от нагрузки на систему и объема
>свободной, неиспользуемой в данный момент, памяти.

Да вот похоже, что не очень-то и умеет. Если /proc (соответственно free, top) не врет. А это он может см. shared. И это не единственный пример.

free
             total       used       free     shared    buffers     cached
Mem:       2064756    2047084      17672          0       8640    1721664
-/+ buffers/cache:     316780    1747976
Swap:      2096440      36012    2060428

ipcs -m

------ Shared Memory Segments --------
key        shmid      owner      perms      bytes      nattch     status
0xad7b3360 65536      oracle    640        831725568  86
0x00000000 32769      root      777        1205       2

Попробую объяснить, зачем это нужно (гарантировано уменьшить буфер).
На Linux работает СУБД Oracle.  Принцип работы этой СУБД полностью дублирует работу журналируемой фс и буфера фаловой системы. Отказатся от журн. ф.с. просто, а вот как уменьшить буфер(дисковый кэш), чтобы система попросту не дублировала работу Oracle?
Судя по free(см. выше), имеем дисковый кэш размерои в 300М! Если это правда, то он не нужен такой большой, т.к. в Oracle под это дело отводится часть Shared Memory, а именно 600М из 831725568.
  
Получается ситуация, когда  buffers/cache=316780Kb и не уменишается, а только увеличивается(до 700М!!!). А в это время другие процессы нуждаются в памяти! и дисковый кэш, похоже, не уменьшается(см. free) для того чтобы предоставить память процессам(как это говорится в документации), возможно это происходит из-за того что постоянно читаются\пишутся большие объемы данных в больше файлы. Как результат - свопинг(до 800М!).
  
Покрайней мере, поробую покопать в указанном направлении.
Спасибо за ответ. Может чего еще подскажите :)


  Рекомендовать в FAQ | Cообщить модератору | Наверх


Удалить

Индекс форумов | Темы | Пред. тема | След. тема
Пожалуйста, прежде чем написать сообщение, ознакомьтесь с данными рекомендациями.




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2025 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру