Как я могу настроить свой рабочий стол Linux, чтобы быть более отзывчивым?


30

У меня есть опыт, что Linux работает нормально, пока не исчерпана физическая память. Как только пространство подкачки используется, производительность сильно ухудшается, и графический интерфейс перестает отвечать на запросы.

Эта проблема не ограничивается конкретным дистрибутивом или рабочим столом, потому что я пробовал несколько (и проблема остается).

Что я могу сделать по этому поводу?


Это известная проблема с ядром Linux ... Я полагаю, что я читал, что недавно было исправление для исправления. Ищите ссылку на это ...
ксенотеррацид

1
Эта статья и эта о phoronix - вот о чем я думал ... я думаю.
ксенотеррацид

в основном, в этих статьях говорится о патчах, выходящих в 2.6.36, поэтому, когда они выйдут, получите их (если только вы не
решитесь

Сколько у вас оперативной памяти? Какие программы вы запускаете, которые так голодны? ВМ? JVM?
Чепанг

У меня 8 ГБ оперативной памяти, и виновниками являются обычные приложения (веб-браузеры, такие как Firefox и Chrome, почтовые клиенты, такие как Thunderbird, и клиенты IRC.
txwikinger

Ответы:


15

Я предлагаю прочитать SwapFAQ , в частности параметр swapiness .


3
+1, своп это лейкопластырь, который мы надеемся не использовать ...
Эйвери Пейн

1
Я тщательно опробовал различные настройки для подкачки, но безуспешно. Я также заметил, что мнения о значении подмены вообще не едины. Для настольных компьютеров некоторые рекомендуют 10, другие 100, что означает, что они предлагают полный противоположный эффект.
txwikinger

1
После дальнейших тестов я рекомендую не использовать ни swapiness 100, ни 0. Оба создали ситуации, в которых настольный компьютер пришел в бешенство обмена, которое даже останавливало часы панели в течение более 20 минут.
txwikinger

11

Некоторые указатели:

  1. Не запускайте так много программ с графическим интерфейсом одновременно.
  2. Убедитесь, что все программы, работающие в фоновом режиме, которые вам не нужны, например, Apache, остановлены.
  3. Используйте дистрибутив, нацеленный на ситуации с нехваткой памяти (например, для нетбука)
  4. Купи больше памяти.
  5. Купите более быстрый HD (или SSD) для вашего раздела подкачки. :)


2
с современными твердотельными накопителями вся система, вероятно, устареет и будет готова к замене задолго до того, как твердотельный накопитель умрет. это действительно не стоит беспокоиться об этих днях. Резервное копирование, конечно, все еще необходимо, потому что диск - SSD или механический - может умереть в любое время.
cas

4

Купить больше памяти? :)

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


3
У меня уже максимальная оперативная память. Я хотел бы знать некоторые настройки, которые делают обмен более эффективным, чем он есть.
txwikinger

1
Я обнаружил, что отключение подкачки полностью заставляет систему реагировать быстрее. Приложения получают уведомление от ядра о том, что у них нет памяти, и отвечают соответствующим образом.
cjac

3
@cjac: Обычно это не так. Вы можете настроить ядро ​​для этого, но по умолчанию оно будет перегружено (предоставьте памяти вашего приложения, чего нет в вашей системе). Как только приложение коснется памяти и ядро ​​не сможет найти, убийца нехватки памяти завершит один или несколько процессов.
Кристоф Провост

@txwikinger причина медленной перестановки в том, что скорости оперативной памяти намного выше, чем у жестких дисков. Время поиска ОЗУ измеряется в наносекундах (10 ^ -9). Время поиска жесткого диска измеряется в миллисекундах (10 ^ -3). Это на шесть порядков, другими словами, оперативная память в миллион раз быстрее, чем подкачка. Ваш вопрос похож на вопрос, как заставить велосипед двигаться так же быстро, как самолет Конкорда. Ты не можешь
Багамат

1
@bahamat. Вы констатируете очевидное, но это не проблема. Проблема в том, что обмен происходит очень неэффективно, и, следовательно, создает что-то в направлении проблемы философа.
txwikinger

2

Попробуйте изменить значения переменных ядра 'vm.swappiness' и 'vm.page-cluster' на более подходящие значения.

  1. Запустите эмулятор терминала.
  2. cd /etc/sysctl.d/
  3. sudo echo "vm.swappiness = 0" > 60-memory-management.conf
  4. sudo echo "vm.page-cluster = 1" >> 60-memory-management.conf
  5. sudo chmod 644 60-memory-management.conf
  6. Перезагружать.

Проверьте, используются ли новые значения с:

  1. cat /proc/sys/vm/swappiness
  2. cat /proc/sys/vm/page-cluster

1

Замена в любом случае сильно снизит производительность, поэтому лучше всего этого избежать. Это может показаться глупым, но один из вариантов - не настраивать раздел подкачки. Я уже некоторое время работаю без свопов на всех своих системах:

  • 1 ГБ на нетбуке достаточно для просмотра веб-страниц, прослушивания музыки и других легких вещей.
  • 4 ГБ на моем рабочем столе достаточно для всего вышеперечисленного, а также для разработки (даже в Eclipse) и базового редактирования изображений.

Если вы делаете что-то, что действительно интенсивно использует память (Gimp с большими изображениями, 3D-моделирование, САПР), то вам, вероятно, стоит приобрести немного оперативной памяти.


Да. Я медленно прихожу к тому же выводу. Мне кажется, что способ перестановки ядра Linux не очень эффективен для рабочих столов (на серверах все это работает нормально). Следовательно, возможно, следует рекомендовать отключить все пространство подкачки на рабочих столах. Btw. Я использую 8 ГБ ОЗУ :)
txwikinger

1
@txwikinger: могу я спросить, почему на серверах все нормально?
phunehehe

1

Вы можете попробовать compcache , если сможете понять, как настроить его в своем дистрибутиве. Например, в Ubuntu вы можете включить его, отредактировав /etc/initramfs-tools/initramfs.conf и отредактировав строку «COMPCACHE_SIZE».

Я не думаю, что мой раздел на диске был затронут один раз, так как я включил compcache. Вот моя текущая статистика свопинга:

% swapon -s
Filename                                Type            Size    Used    Priority
/dev/ramzswap0                          partition       1028084 69504   100
/dev/sda5                               partition       3148668 0       -1

Обратите внимание, что используется устройство compcache (ramzswap0), а устройство на диске (sda5) - нет.


0

Купите более быструю оперативную память и убедитесь, что ваша система использует все это. Какой процессор и архитектуру вы используете?


Как это настроить систему Linux? Смена или улучшение оборудования здесь не проблема.
txwikinger

Вполне возможно, что ваша установка Linux не использует все доступное оборудование. Это проблема с производительностью, и в предыдущем комментарии вы указали, что у вас ограничен максимальный объем ОЗУ. Не зная больше деталей о вашей конфигурации, легкий путь - лучшее оборудование.
Майк Х

1
«Система Linux» состоит из аппаратного и программного обеспечения. Добавление памяти - это «подстройка» системы.
cjac

Linux - это программное обеспечение, работающее на оборудовании. Аппаратные средства не включены в Linux: p
txwikinger

1
Я думаю, что больше оперативной памяти больше подходит, чем быстрее ... Скорость ОЗУ обычно ограничивается Mobo тоже ...
xenoterracide

0

Я запускаю апплет System Monitor в док-станции на правой стороне моего экрана. Каждый раз, когда система чувствует себя вялой, я смотрю на счетчики. Если что-то работает с пропускной способностью выше 10%, это указывает на то, что процесс выходит из-под контроля.

Если вы нажмете на системный монитор, вы сможете погрузиться в процессы, которые потребляют ресурсы в вашей системе.

http://www.colliertech.org/~cjac/tmp/screenies/system_monitor.png


1
Большинство системных мониторов просто тянут медленную систему, а не кота Шредингера. Без увеличения памяти он должен исправить утечки памяти или обрезать ненужные программы, которые работают.
jjclarkson

0

Несколько лет назад для обмена обычно использовался выделенный диск, в то время как он подключался к собственной шине IDE / ATA - обмен данными на одном и том же диске просто не имел смысла с точки зрения производительности.

Этот трюк сработал десять лет назад, но с быстродействием дисков теперь вы действительно не должны видеть такого беспокойного снижения производительности, если только вы не поменяете библиотеку конгресса, иначе я буду обеспокоен состоянием вашего диска - вы проверяли это в последнее время?

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


Во многих случаях использование настольных компьютеров не дает такой возможности, поскольку они являются ноутбуками или нетбуками, которые не поддерживают второй диск.
txwikinger

@txwikinger, очевидно, верно, но я рассмотрел название вопроса, которое гласит «рабочий стол», иначе я бы не предложил этого, если бы ноутбук был специально упомянут :-)
инвертировать

Ну, я имел в виду десктоп, чтобы отличать его от серверов, где, как мне кажется, обмен работает достаточно хорошо. :)
txwikinger

0

Установите вторую систему Linux в своей сети с достаточным объемом оперативной памяти, NFS смонтируйте ее в своей основной системе и поместите в нее файл подкачки.


1
С гигабитным Ethernet это будет намного медленнее, чем у SSD среднего уровня, и я не уверен, что вы сможете достичь скорости жесткого диска 7200 об / мин. Может быть, с Firewire вы можете достичь скорости локального обмена. Но было бы эффективнее просто добавить оперативную память.
Жиль "ТАК - перестань быть злым"

0

Одним из способов является использование оптимизированного ядра .


Пожалуйста, не просто размещайте ссылки; включите некоторый контекст, чтобы, если сайт, на который вы ссылаетесь, вышел из строя, здесь было достаточно информации, чтобы сделать ответ осмысленным.
Джейсонвриан

0

За многолетний опыт могу сказать, что не так уж много нужно откорректировать

Но то, что я сделал недавно, очень помогло.

1

Я перешел с Ubuntu на Arch Linux, с Unity / Gnome на рабочий стол xfce.

Ubuntu смертельно медленный, отовсюду. загрузка / графика .. медленно.

2

Я купил твердотельный накопитель Intel (80 г) и установил на нем свою корневую систему.

Моя арка Linux + XFCE4 + docky + conky, загружается за 10 секунд (автоматический вход в систему с помощью lxdm), все приложения, установленные на SSD, например Matlab, запускаются намного быстрее.

Деньги того стоят.

3

Сделайте ваш / tmp в другом месте, я использую для этого ограниченный размер ramdisk, чтобы предотвратить зашифрованность корневой файловой системы

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.