Как полностью использовать оперативную память для увеличения общей производительности системы

18

У меня низкопрофильная машина, но с большим количеством оперативной памяти, 4 Гб, которая действительно является объемом памяти, который я, вероятно, никогда не буду использовать, даже половину, поскольку я просто использую эту машину для кодирования и просмотра веб-страниц.

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

user1717079
источник
1
Свободная оперативная память уже должна использоваться для кэширования, что является поведением по умолчанию. Тем не менее, данные все равно должны быть сначала прочитаны с относительно медленного жесткого диска, и единственный способ ускорить это - использовать более быстрый или ssd. Извините, сегодня нет магии. PS: Ubuntu использует ureadaheadдля профилирования процесса загрузки и сделать его максимально быстрым.
независимо от того, что
2
Кроме того, 4 ГБ не так много на современной машине. Современные веб-сайты полны сложного javascript и содержат много данных, которые могут заставить веб-браузер довольно быстро потреблять память. Я много раз видел, как Firefox приближался к нескольким ГБ постоянной памяти.
Добей
В моем опыте @dobey javascript требует больше процессора, чем оперативной памяти.
user1717079

Ответы:

11

Вам следует установить Preload, которая будет предварительно загружать программное обеспечение, которое вы используете чаще всего в вашей оперативной памяти (оно узнает, какое программное обеспечение предварительно загружать самостоятельно). Это очень легко настроить:

sudo apt-get install preload

Возможно, вам не нужно его трогать, но если вы хотите, вы можете отредактировать параметры в /etc/preload.conf

Ugo
источник
я также заметил существование этой утилиты prelink, я попробую это, спасибо.
user1717079
2
@ user1717079 - Имейте в виду, что предварительная загрузка не ускорит время загрузки, и большая часть кэширования уже должна выполняться в ОЗУ.
Шона
1
Предварительная загрузка не ускорит ни процессы загрузки, ни процессы кэширования, поскольку они сильно зависят от скорости жесткого диска.
независимо от того, что
пока мы говорим о предварительной ссылке, предварительная ссылка не дает заметного прироста
Колин Ян Кинг,
@ColinIanKing Я буду счастлив, если только это может дать мне небольшое преимущество с точки зрения производительности, время загрузки не так уж и плохо, проблема в том, что он обычно отстает или требует слишком много времени для загрузки новой программы. Я собираюсь использовать preload и prelink в течение нескольких дней, давайте посмотрим, изменится ли ситуация
user1717079
10

Вы можете добавить следующую строку, /etc/fstabчтобы смонтировать /tmpкаталог в оперативную память.

tmpfs / tmp tmpfs по умолчанию, noatime, nodiratime, mode = 1777 0 0

Это можно сделать и с другими каталогами. Например, когда вы компилируете свой код, вы можете поместить папку, в которой объектные файлы размещены и связаны в ОЗУ.

Но обратите внимание. Данные в папках, которые подключены таким образом, будут потеряны при любом отключении. Запомни.

Кроме того, насколько мне известно, есть много других полезных ресурсов, доступных по этой теме. Например, эта тема .

cauon
источник
спасибо, но виртуальный диск - это немного другое, но я ценю ваш совет, потому что он будет полезен позже. Моя большая проблема сейчас заключается в том, как быстрее запускать мои приложения, а не в том, как сделать мой файловый элемент быстрее.
user1717079
Да, но я считаю, что стоит упомянуть, потому что у вас есть 4 ГБ ОЗУ, и использование папок ОЗУ улучшит ваши возможности просмотра, если вы скажете Firefox использовать их для кеша и прочего.
cauon
6

Что такое ОЗУ?

ОЗУ, или оперативная память, представляет собой тип системы хранения, известный как энергозависимое хранилище . То есть он хранит данные только тогда, когда у него есть сила. Другими словами, любые изменения, которые вы вносите в него, если вы не записываете его на постоянное запоминающее устройство, будут потеряны в любой момент, когда ОЗУ теряет питание.

Что такое жесткий диск?

Жесткие диски или дисководы (или жесткие диски) представляют собой другой тип системы хранения, известный как постоянное хранилище . Это означает, что данные остаются даже без питания. CD, DVD, гибкие диски и USB-накопители также подпадают под эту категорию.

Что происходит при загрузке, записи в кэш или запуске новых программ?

Чтобы поддерживать вашу систему между перезагрузками, ОС должна записать то, что у нее есть в ОЗУ, в постоянное запоминающее устройство, обычно на основной жесткий диск. И наоборот, чтобы восстановить эту информацию или запустить приложения, он должен загрузить эти данные в ОЗУ из устройства хранения. Это даже случается с живыми компакт-дисками, хотя все работает в памяти, сначала нужно прочитать все с компакт-диска (или USB-накопителя). Это также происходит даже с теми инструментами / идеями, которые предложили cauon и Ugo, потому что в тот или иной момент данные должны считываться или записываться на диск для сохранения между загрузками (в частности, Preload не улучшит время загрузки ).

Если у вас быстрая оперативная память, то ваше узкое место будет где-то в процессе чтения / записи на диск, обычно либо в скорости передачи данных, либо в скорости диска.

Что я могу сделать, чтобы улучшить скорость этих операций?

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

Получите более быстрое соединение. Параллельные соединения ATA (PATA, серая лента в старых машинах) будут медленнее, чем соединения SATA (Serial ATA, более новые, меньшие кабели). Если вы можете и не сделали этого, обновитесь до диска SATA. Если вы идете по маршруту USB-накопителя (обрисован в общих чертах ниже), то убедитесь, что вы используете USB 2.0 (или, что еще лучше, по скорости, 3.0) накопитель и порт. Устройства и порты USB будут синхронизироваться со скоростью более медленной вещи, поэтому даже если у вас есть порт 3.0, если устройство имеет 2.0, вы получите только 2.0 скорости.

Получите более быстрое устройство хранения. Жесткие диски на основе пластин измеряются в оборотах в минуту и ​​обычно бывают трех скоростей - 5400 об / мин, 7200 об / мин и 10k об / мин. Если у вас накопитель 5400 об / мин, обновите его как минимум до 7200. Кроме того, твердотельные накопители (включая флэш-накопители USB) работают быстрее, чем жесткие диски. Если вы можете себе это позволить, перейдите на твердотельный накопитель. Кроме того, вы можете установить Ubuntu на USB-накопитель и запустить его оттуда (однако имейте в виду, что такая настройка будет ограничена скоростью вашего USB-порта, поэтому убедитесь, что вы используете как минимум порт USB 2.0 и водить машину).

Shauna
источник
1

попробуйте zram (однажды названный compcache), это сжатый обмен в памяти!

пакет для Ubuntu 12.10 - zram-config, не нужно загружаться.

swapon -s покажет что-то вроде:

Filename                                Type            Size    Used    Priority
/dev/sda2                               partition       1023860 0       -1
/dev/sdc4                               partition       976892  0       -2
/dev/zram0                              partition       761876  0       5
/dev/zram1                              partition       761876  0       5
/dev/zram2                              partition       761876  0       5
/dev/zram3                              partition       761876  0       5

У меня есть 6 ГБ оперативной памяти и 4-ядерный процессор, так что по одному обмену на каждое ядро, используя в общей сложности половину оперативной памяти! (по уважительной причине)

Прочитайте, что говорят о compcache и zram!

хорошо, если не zram используются, загрузитесь или попробуйте, IYKWYAD (если вы знаете, что делаете), поменяйте их местами, чтобы увидеть, что zram заполнены и улучшить общую производительность.

Водолей Сила
источник
Кстати, в моей текущей настройке каждый из моих свопов zram (для каждого ядра) имеет 250 МБ, так что в общей сложности 1 ГБ для 4 ядер. Я обнаружил, что это работает лучше, чем позволяет zram использовать половину (3 ГБ) моей общей памяти, я думаю, это потому, что он будет меньше переключаться на жесткие диски / ssd, если я позволю некоторым приложениям, требующим памяти, использовать больше реальной памяти. Я также закрываю многие другие приложения, требующие памяти, которые на самом деле не нужны для постоянной работы.
Водолей Power