«hdparm -S» не работает на внешних жестких дисках. Как избежать остановки вращения?

  1. Я тебя поправлю! Самое дорогое - это cpu cache .
  2. Поскольку это дисковый кеш , он используется при любом доступе к файлам.
  3. Плохие новости: это сложно и неприятно.
  4. Хорошие новости: в наше время не стоит слишком об этом беспокоиться. 8 ГБ ОЗУ достаточно для настольной системы общего назначения.

1. Я тебя поправлю! Самое дорогое - это cpu cache .

ЦП имеет небольшой банк быстрой внутренней ОЗУ.Данные из основной памяти, к которой часто обращаются, автоматически копируются в этот кэш ЦП.

Как объяснялось в другом месте, free показывает дисковый кеш . Кэш ЦП не отображается. Дисковый кеш делает то же самое, за исключением дисковых блоков. Он хранится в основной памяти и управляется операционной системой.

Итак, у нас есть три разных уровня памяти! Это описывается как «иерархия памяти». Основная память, которую мы используем для дискового кеша, на самом деле быстрее и дороже на байт - если мы сравним ее с диском.

2. Поскольку это дисковый кеш , он используется при любом доступе к файлам.

Таким образом, его можно использовать без загрузки каких-либо новых программ, просто используя их. Например, когда вы посещаете веб-сайты, они копируются на диск (еще одна стратегия кэширования!)

Когда я сказал, что «часто используемые» данные кэшируются, я солгал. Проще и эффективнее всего кэшировать все ...

Дисковый кеш будет увеличиваться до тех пор, пока у вас не останется свободной памяти ...

Когда вам понадобится больше памяти, некоторые блоки будут вытеснены из дискового кеша, чтобы освободить место . Это выселение контролируется политикой, направленной на максимальное повышение эффективности. Например. «LRU»: удалить блок «Наименее недавно использованный».

3. Плохие новости: это сложно и противно.

Windows была разработана с учетом этих проблем; если вы попытались открыть слишком много приложений, это должно остановить вас и пожаловаться, что позволит вам примерно узнать, сколько приложений вы можете держать открытыми за один раз.

В Linux ожидаемое поведение заключается в том, что вы начинаете заполнять своп, и система внезапно становится слишком медленной для восстановления.Или, если у вас нет свопа, то же самое может произойти, когда кэш программного кода и другие такие важные файлы будут вытеснены. Если вам каким-то образом удастся добиться достаточного прогресса, несмотря на это, чтобы исчерпать память для страниц, которые не поддерживаются диском, убийца Out Of Memory начнет уничтожать процессы, которые он не любит восстанавливать память.

Вы все еще можете приблизительно узнать, сколько - это слишком много. Вам просто нужно выполнить жесткую перезагрузку, чтобы восстановиться :).

Вы можете сконфигурировать его так, чтобы предотвратить «чрезмерную фиксацию», и оставить свопинг отключенным или очень маленьким. Это самое близкое к Windows. Однако большая часть кода Linux разработана с учетом «чрезмерной фиксации». Если у вас много оперативной памяти, это не тоже большая проблема. И дисковый кеш по-прежнему будет действовать как менее опасный вид чрезмерной нагрузки; вам не обязательно в конечном итоге понадобится много оперативной памяти, от которой вы никогда не получите никаких преимуществ.

На практике ... некоторые люди предпочитают работать без свопа / с очень маленьким свопом, и это нормально. Но отключение чрезмерной фиксации не является обычным явлением. Так что это не рекомендация, и если вы включите ее, вы окажетесь в другом мире. Например. Если вы спросите о проблеме, и она фактически отключает чрезмерное усердие, не многие люди будут иметь опыт, чтобы распознать ее.

4. Хорошие новости: в наше время не стоит слишком об этом беспокоиться. 8 ГБ ОЗУ достаточно для настольной системы общего назначения.

4 ГБ сейчас работают одинаково хорошо и недорого. Это просто ограничение, если вы хотите запустить на больше , чем одну систему, то есть виртуальную машину.Сейчас я обычно использую 4 ГБ. Я не могу вспомнить, когда в последний раз у меня была проблема с нехваткой памяти. Мой опыт работы с этим основан на старых системах с гораздо меньшим объемом памяти.

sysctls, упомянутые в другом ответе, не не ограничивают дисковый кеш. Они ограничивают количество "грязного" дискового кеша. Это относится к блокам кеша, в которые программа записала данные, которые еще не были синхронизированы с диском. Этот тип кэширования описывается как «кэш обратной записи».


Тем не менее. Чтобы получить приблизительное представление об% использования, я бы

  1. учел в ваших расчетах общее количество «использованных» и «баффов / кешей», чтобы получить исчерпывающее представление.
  2. Измерьте при новой загрузке, чтобы исключить старые кэшированные файлы. Или новый вход после запуска sync; эхо 3 | sudo tee / proc / sys / vm / drop_caches . Я ожидаю, что последнее даст немного меньший результат Спорно, что из них более реалистично. Очевидно, что отбрасывание кешей - более искусственный тест, но если отброшенные файлы действительно необходимы для вашей рабочей нагрузки, они все равно будут прочитаны обратно.
  3. Это сделано в предположении, что вы не останетесь с массивными файлами данных в дисковом кэше, когда вы не будете возражать, если они не подходят, и будете довольны простой производительностью диска для них. То, что может случиться, если вы измеряете после воспроизведения видеофайла. В этом случае будет сложнее. Если полный видеофайл умещается в памяти, вы можете просто вычесть его размер из буфера / кеша.

Вы можете убедиться, что X объема памяти достаточно для вашей рабочей нагрузки, например загрузив ядро ​​с параметром mem = X . Например, mem = 256M , если вы хотите протестировать 32-разрядное программное обеспечение на том же объеме ОЗУ, что и исходная модель Raspberry PI A.

0
07.03.2019, 15:27
0 ответов

Теги

Похожие вопросы