Автор Гілка: Динамічне кешування диску  (Прочитано 2697 раз)

Відсутній borman

  • Графоман
  • ****
  • дописів: 416
  • Карма: +0/-0
  • Debianizer
Як відомо, ядро Linux завантажує деякі дані з диску в пам'ять для пришвидшення доступу до них. Чи є можливість гнучкого керування цим процесом (встановлення ліміту пам'яті, політики звільнення пам'яті при виникненні необхідності виділити її процесам користувача, тощо)?
dd if=/dev/zero of=/dev/null

Відсутній hse

  • Графоман
  • ****
  • дописів: 473
  • Карма: +0/-0
  • Gentoo Linux
Re: Динамічне кешування диску
« Відповідей #1 : 2005-09-05 21:03:34 »
На скільки мені відомо то нема і бути не може. Ядро нікому не дозволить ритись в пам'яті яку воно виділяє процесам. Єдиний менеджер пам'яті це менеджер ядра і на скільки мені відомо в ньому є один оптимізатор, він має тумблер: вкл. для посиленого управління кешем (робоча станція); викл. для серверного ядра. А от цей тумблер, який слідкує за політикою роботи з кешем пам'яті є десь в .config :)
бушократія - цинічний помаранчевий геноцид, витравлювання Української Нації, плюс мікрософтизація всієї країни.

Відсутній hse

  • Графоман
  • ****
  • дописів: 473
  • Карма: +0/-0
  • Gentoo Linux
Re: Динамічне кешування диску
« Відповідей #2 : 2005-09-15 11:08:29 »
make menuconfig
....
Processor type and features  --->
.....
Preemption Model (Preemptible Kernel (Low-Latency Desktop))
[*] Preempt The Big Kernel Lock
....
При такій конфігурації ядро має максимально інтенсивно працювати з кешем пам'яті.
бушократія - цинічний помаранчевий геноцид, витравлювання Української Нації, плюс мікрософтизація всієї країни.

Відсутній afterstep

  • Новачок
  • *
  • дописів: 3
  • Карма: +0/-0
  • I Love YaBB 2!
Re: Динамічне кешування диску
« Відповідей #3 : 2005-09-17 16:53:47 »
man sysctl
або, для попереднього ознайомлення зі списком параметрів ядра, що їх динамічно можна міняти
sysctl -a
і, взагалі кажучи, не розумію6 навіщо потрібно руками рухати кеш...

Відсутній Паша

  • Кореспондент
  • ***
  • дописів: 142
  • Карма: +0/-0
  • хайо!
Re: Динамічне кешування диску
« Відповідей #4 : 2005-09-21 13:14:28 »
В susy9.1 є така фіча для кдє. Вона показує вільну пам"ять. Одним кольором - пам"ять процесів, іншим - пам"ять зайняту кешем, ще іншим -  використання swap. Так от коли щось ресурсомістке робити (пр. make bzImage) кеш сам майже повністю зменшується до нуля. А потім поступово збільшується.
 Я так зрозумів разподілом пам"яті ядро само займається і без моєї допомоги. Якщо є вільна пам"ять - кеш збільшується, якщо нема - диск синхронізується. Простіше кажучи система сама себе оптимізує.
Мені цікаво, навіщо намагатися обмежети розмір кеша. На мій погляд це ні до чого позитивного не призведе.
debian

Відсутній UA_Igor

  • Кореспондент
  • ***
  • дописів: 106
  • Карма: +0/-0
Re: Динамічне кешування диску
« Відповідей #5 : 2005-09-22 01:53:52 »
Може спробувати поковирятись з hdparm

Відсутній hse

  • Графоман
  • ****
  • дописів: 473
  • Карма: +0/-0
  • Gentoo Linux
Re: Динамічне кешування диску
« Відповідей #6 : 2005-09-22 15:55:29 »
Може спробувати поковирятись з hdparm
hdparm - тюнить жорсткий диск, а не оперативку. Хоча деякі мають по 8 Mb памяті для кешу от її і поковиряйте hdparm-ом. ;)
бушократія - цинічний помаранчевий геноцид, витравлювання Української Нації, плюс мікрософтизація всієї країни.

Відсутній Володимир Лісівка

  • Адміністратор ЩОДО
  • Видавець
  • *****
  • дописів: 3820
  • Карма: +11/-0
  • Програміст
Re: Динамічне кешування диску
« Відповідей #7 : 2005-09-22 20:55:40 »
make menuconfig
....
Processor type and features  --->
.....
Preemption Model (Preemptible Kernel (Low-Latency Desktop))
[*] Preempt The Big Kernel Lock
....
При такій конфігурації ядро має максимально інтенсивно працювати з кешем пам'яті.
Це не впливає на кеш а впливає на планувальник процесів. Цей параметр означає, що якщо навіть якась підсистема ядра поставила блок на все ядро, то планувальник все-одно може перервати роботу цієї системи.
« Змінено: 2005-09-22 20:55:52 від lvm »
[Fedora Linux]

Відсутній Володимир Лісівка

  • Адміністратор ЩОДО
  • Видавець
  • *****
  • дописів: 3820
  • Карма: +11/-0
  • Програміст
Re: Динамічне кешування диску
« Відповідей #8 : 2005-09-22 20:58:54 »
Як відомо, ядро Linux завантажує деякі дані з диску в пам'ять для пришвидшення доступу до них. Чи є можливість гнучкого керування цим процесом (встановлення ліміту пам'яті, політики звільнення пам'яті при виникненні необхідності виділити її процесам користувача, тощо)?
Башівський ulimit може обмежити кількість пам'яті для користувацьких процесів, які з нього запускаються.
Цитата
bash-2.05$ help ulimit
ulimit: ulimit [-SHacdflmnpstuv] [limit]
    Ulimit provides control over the resources available to processes
    started by the shell, on systems that allow such control.  If an
    option is given, it is interpreted as follows:

        -S      use the `soft' resource limit
        -H      use the `hard' resource limit
        -a      all current limits are reported
        -c      the maximum size of core files created
        -d      the maximum size of a process's data segment
        -f      the maximum size of files created by the shell
        -l      the maximum size a process may lock into memory
        -m      the maximum resident set size
        -n      the maximum number of open file descriptors
        -p      the pipe buffer size
        -s      the maximum stack size
        -t      the maximum amount of cpu time in seconds
        -u      the maximum number of user processes
        -v      the size of virtual memory

    If LIMIT is given, it is the new value of the specified resource.
    Otherwise, the current value of the specified resource is printed.
    If no option is given, then -f is assumed.  Values are in 1024-byte
    increments, except for -t, which is in seconds, -p, which is in
    increments of 512 bytes, and -u, which is an unscaled number of
    processes.
[Fedora Linux]

Відсутній hse

  • Графоман
  • ****
  • дописів: 473
  • Карма: +0/-0
  • Gentoo Linux
Re: Динамічне кешування диску
« Відповідей #9 : 2005-09-22 21:11:13 »
make menuconfig
....
Processor type and features  --->
.....
Preemption Model (Preemptible Kernel (Low-Latency Desktop))
[*] Preempt The Big Kernel Lock
....
При такій конфігурації ядро має максимально інтенсивно працювати з кешем пам'яті.
Це не впливає на кеш а впливає на планувальник процесів. Цей параметр означає, що якщо навіть якась підсистема ядра поставила блок на все ядро, то планувальник все-одно може перервати роботу цієї системи.
Мені здається що не безпосередньо впливає. Користувацькі програми агресивніше захоплюватимуть пам'ять. І сам графік використання пам'яті стає більш "строкатий" ніж з серверною оптимізацією. Хоча останнє дуже сильно залежить і від програм які юзались в той день.
бушократія - цинічний помаранчевий геноцид, витравлювання Української Нації, плюс мікрософтизація всієї країни.