Доступ к диску Linux замедляет систему

Моя система замедляется, даже когда загрузка ЦП составляет меньше чем 100%, и я думаю, что она делает это, потому что она пишет в раздел подкачки. Да, мой раздел подкачки находится на другом диске, чем моя ОС. Я помню этот тип проблемы замедления из Windows с помощью дисков ATA. Это было решено при помощи режима DMA. Я не уверен, используют ли мои диски режим DMA. Они - диски SATA, таким образом, я предположил, что они. Это - вывод от hdparm

/dev/sda:
 multcount     =  0 (off)
 IO_support    =  1 (32-bit)
 readonly      =  0 (off)
 readahead     = 256 (on)
 geometry      = 182401/255/63, sectors = 2930277168, start = 0

ev/sdb:
 multcount     =  0 (off)
 IO_support    =  1 (32-bit)
 readonly      =  0 (off)
 readahead     = 256 (on)
 geometry      = 30401/255/63, sectors = 488397168, start = 0

В прошлый раз, когда я видел, этот тип поведения замедления был из Windows 3.1!

Вывод от hdparm-i/dev/sda/dev/sdb является этим:

/dev/sda:

 Model=ST31500541AS, FwRev=CC34, SerialNo=6XW0N2LJ
 Config={ HardSect NotMFM HdSw>15uSec Fixed DTR>10Mbs RotSpdTol>.5% }
 RawCHS=16383/16/63, TrkSize=0, SectSize=0, ECCbytes=4
 BuffType=unknown, BuffSize=0kB, MaxMultSect=16, MultSect=off
 CurCHS=16383/16/63, CurSects=16514064, LBA=yes, LBAsects=2930277168
 IORDY=on/off, tPIO={min:120,w/IORDY:120}, tDMA={min:120,rec:120}
 PIO modes:  pio0 pio1 pio2 pio3 pio4 
 DMA modes:  mdma0 mdma1 mdma2 
 UDMA modes: udma0 udma1 udma2 udma3 udma4 udma5 *udma6 
 AdvancedPM=yes: unknown setting WriteCache=enabled
 Drive conforms to: unknown:  ATA/ATAPI-4,5,6,7

 * signifies the current active mode


/dev/sdb:

 Model=HDT722525DLA380, FwRev=V44OA96A, SerialNo=VDB41BT4EUH03C
 Config={ HardSect NotMFM HdSw>15uSec Fixed DTR>10Mbs }
 RawCHS=16383/16/63, TrkSize=0, SectSize=0, ECCbytes=52
 BuffType=DualPortCache, BuffSize=7674kB, MaxMultSect=16, MultSect=off
 CurCHS=16383/16/63, CurSects=16514064, LBA=yes, LBAsects=488397168
 IORDY=on/off, tPIO={min:240,w/IORDY:120}, tDMA={min:120,rec:120}
 PIO modes:  pio0 pio1 pio2 pio3 pio4 
 DMA modes:  mdma0 mdma1 mdma2 
 UDMA modes: udma0 udma1 udma2 udma3 udma4 udma5 *udma6 
 AdvancedPM=yes: disabled (255) WriteCache=enabled
 Drive conforms to: ATA/ATAPI-7 T13 1532D revision 1:  ATA/ATAPI-2,3,4,5,6,7

 * signifies the current active mode

Когда система замедляется, это - вывод от свободного:

             total       used       free     shared    buffers     cached
Mem:       3538356    3057180     481176          0       8588     280412
-/+ buffers/cache:    2768180     770176
Swap:      5124692    1563140    3561552
6
задан 15.08.2010, 00:15

1 ответ

Вы не задали вопрос. Я предполагаю, что Вы означали спрашивать, “почему моя система является медленной” или, “как я могу сделать ее быстрее”, оба из которых слишком неопределенны, чтобы быть соответствующими. Я собираюсь частично рассмотреть менее амбициозный вопрос, “Как я могу исследовать свое узкое место производительности”.

По-видимому, существует большая активность диска, когда Ваша система безразлична. Мой ответ основан на этом.

RAM и подкачка

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

Интерпретация вывода free

Можно получить снимок того, сколько памяти система использует с командой free. Это показывает что-то вроде этого:

             total       used       free     shared    buffers     cached
Mem:       3538356    3057180     481176          0       8588     280412
-/+ buffers/cache:    2768180     770176
Swap:      5124692    1563140    3561552
  • Mem, total число (здесь 3538356, который составляет приблизительно 3.3 ГБ) является суммой RAM, доступной процессам (это исключает память, используемую видеокартой или ядром).

    (Люди с 64-разрядным ядром могут пропустить этот абзац.) Из-за сложностей в x86 архитектуре, существует несколько путей к ядру для доступа к RAM. В эти дни, на практике, можно выбрать между двумя режимами: режим PAE, который позволяет ядру использовать до 64 ГБ RAM; и режим non-PAE, который только позволяет ядру использовать приблизительно 3 ГБ. Причина non-PAE режим существует, состоит в том, что режим PAE имеет использование памяти наверху, которое только стоит стоимости, если у Вас действительно есть больше чем 3 ГБ RAM. Соответствующие пользователи Ubuntu должны прочитать страницу PAE в Wiki Ubuntu.

  • Mem, free изобразите шоу, сколько памяти не используется ни для чего. Это является обычно довольно маленьким (скажите, 10–50MB в системе multi-GB-RAM), если RAM не недогружена, или система только что загрузилась. Здесь число довольно высоко (450 МБ), это, вероятно, потому что использование приложения о так большой памяти было недавно закрыто. Не волнуйтесь, это скоро заполнится.

  • Строка направляется -/+ buffers/cache шоу, сколько памяти используется процессами, в противоположность дисковому кэшу. Здесь, мы видим, что существует только приблизительно 730 МБ, доступных для кэша. Это составляет только 20% RAM, это не очень. Наличие большого количества RAM, используемой для дискового кэша, важно для хранения системы быстро реагирующей.

  • Последняя строка указывает, сколько подкачки используется. Нормально иметь некоторую используемую подкачку, даже если RAM не полна. Linux копирует память для свопинга профилактически, когда диск является бездействующим, в случае, если память была необходима в более позднее время, когда диск не мог бы быть бездействующим.

    Linux часто перемещает память процесса для свопинга для создания места для дискового кэша. Это - поведение нормальной системы, и пытающийся снизиться оно может привести к Вашей системе, являющейся медленнее. Существует настраиваемая установка для того, сколько Linux должен подкачать, названный vm.swapiness; если Вы экспериментируете с ним, несомненно, попытаются увеличить swapiness, а также уменьшить его.

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

Таким образом, что использует всю эту память?

Анализ использования памяти труден. Для каждого процесса можно иметь размеры, сколько адресного пространства он выделяет; Вы можете (пробовать к) мера, сколько памяти она активно использует в установленный срок; необходимо отслеживать поддержанную файлом память (например, код, загруженный из исполняемого файла процесса и библиотек) и non-file-backed память (стопка и "куча" процесса). И конечно существенный объем памяти совместно используется процессами, таким образом, не имеет так большого смысла говорить о том, сколько памяти данный процесс использует.

Можно получить изображение использования памяти с инструментами командной строки как top и htop, или с любым количеством графических системных мониторов и метров производительности. Для htop, если Вы интересуетесь использованием памяти, включаете, “скрывают потоки ядра”, и “скрывают опции” потоков пространства пользователя в Установке/Параметрах экрана.

В дисплее top или htop, соответствующие столбцы VIRT и RES. VIRT указывает, сколько адресного пространства процесс выделил, включая общую и allocated-but-not-used память; не волнуйтесь слишком много об этом. RES указывает, сколько RAM (т.е. не считающий подкачку) процесс в настоящее время использует.

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

Скорость диска

От прошлого опыта Вы подозреваете, что Ваш диск не использует самый быстрый доступный режим доступа. Но Linux не является Windows (который особенно в былые времена часто требовал сторонних драйверов). Установка дистрибутива Linux почти всегда дает Вам самые быстрые режимы доступа для всех периферийных устройств, которые, как известно, не вызывают потеря данных или катастрофические отказы. (Видеодрайверы являются своего рода исключением.)

Можно подтвердить режим DMA, используемый системой с hdparm -i. Например, Ваши диски оба шоу UDMA modes: … *udma6, подразумевать, что они используют самый быстрый доступный режим. (Как правило UDMA быстрее, чем DMA быстрее, чем PIO; и для числовой части, выше быстрее.)

Можно измерить необработанную пропускную способность диска с hdparm -t. Число сам по себе непосредственно не дает информацию о том, насколько быстро реагирующий Ваша система будет, но может быть полезно сравнить скорость двух дисков, или двух режимов доступа на том же диске.

Иногда BIOS Вашего компьютера позволяет Вам выбрать между различными рабочими режимами для Ваших дисков. Когда первые диски SATA вышли, много операционных систем (таких как Windows и Linux) не шли с подходящими драйверами. Таким образом, BIOS шли с опцией использовать режим эмуляции PATA, который был в принципе медленнее, но более совместимым. В то время диски не были достаточно быстры для насыщения SATA соединения так или иначе, но в эти дни они могли бы. Совместимую установку часто называют “IDE” или “ATAPI”, в то время как более быструю установку обычно называют “AHCI”.

Ошибки диска

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

Для наблюдения, если это верно, посмотрите в журналах ядра, обычно в /var/log/kern.log. Если Вы видите строки как

end_request: I/O error, dev sda, sector 123456789
ata3.00: error: { UNC }

удостоверьтесь, что Ваши резервные копии актуальны и сразу заменяют Ваш диск. Обратите внимание, что строки выше являются примерами только, существует большое разнообразие в сообщениях об ошибках.

Можно получить отчет о здоровье диска с УМНЫМИ контрольными инструментами.

16
ответ дан 07.12.2019, 15:30

Я всегда мультизагружаю все свои нетбуки и ноутбуки: Ubuntu 32 и Win7-32. Один жесткий диск. Кэш, временный файл и разделы подкачки должны быть на самом быстром диске около первых кластеров диска. Скорости Ввода - вывода являются самыми быстрыми там.

Ubuntu, поскольку я использую его, редко, кажется, использует диск подкачки. 4 ГБ RAM SODIMM DDR3, так подкачка на 4 ГБ, используются для ОБОИХ разделов начальной загрузки Ubuntu. Оба моих варианта Ubuntu находятся в Расширенном разделе. Все 3 Операционных системы используют тот же раздел ДАННЫХ, также в Расширенном разделе. Этот раздел Данных СЖАТ ДО MS ДО-NTFS. NTFS-3G, используемый на Linux, не сжат как раздел. На медленном, маломощном ноутбуке ('зеленые') жесткие диски чтение-запись I-O является медленным, таким образом, сжатие в небольшие кластеры быстрее. Microsoft утверждает, что дополнительные циклы CPU (формат ZIP) незначительны.

ATM у меня есть терабайт жесткий диск в моем ноутбуке Acer 5740; I3 ЦП, так очень медленная графика. Первоначально довольно новый ноутбук имел Win7-64bit, но слишком много программ и аппаратных средств доставляют неприятности с 64 битами. Также GPU жует в 4 ГБ RAM как 'память черепка', так 32 бита, или 32-PAE Linux в порядке.

1
ответ дан 07.12.2019, 15:30

Теги

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