1

У меня есть ebox 3350mx, который действует как домашний сервер без головы, предлагая различные локальные сервисы, такие как dnsmasq, atalkd, резервные копии машины времени, http, ssh и т.д.

Я установил FreeBSD 9.0. Основной hd (ada0) - это внешняя SD-карта. Характеристики: 512 МБ ОЗУ и процессор PMX-1000/Vortex86MX с тактовой частотой 1 ГГц.

Проблема в том, что он медленный при работе с ним. Я прошел через несколько модификаций, чтобы заставить его «работать» быстрее, но огромная боль - отсутствие гладкой подсказки оболочки.

Такие задачи, как перечисление каталогов, редактирование файлов с помощью vim, чтение файлов с помощью cat и т.д., Стали чрезвычайно раздражающими.

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

Мне удалось добиться некоторой скорости, остановив «sendmail»: я достиг 480 МБ свободной памяти с 12 МБ. Судя по всему, sendmail действовал странно, что замедляло работу машины.

Я выключил PAM и использовал DNS из sshd_config и остановил почти все службы. Даже пфлогд и пф. Большинство из них, кроме sendmail и sshd_config, сделали небольшую, но ощутимую разницу. Тем не менее, мой запрос на вход по-прежнему работает как сломанная машина. В первый раз, когда я запускаю «uptime», я получаю нормальный отклик, во второй раз, когда я запускаю команду - например, через 1 секунду - мне нужно подождать 15 секунд или нажать «enter», прежде чем я что-то получу на экране. Иногда, когда вы нажимаете «enter», работает, как если бы tty не доставлял, иногда, даже если это не работает, это похоже на то, что ввод-вывод не работает ... но я вообще не получаю ошибок ввода-вывода.

Я немного отчаялся, потому что я не знаю, откуда начать искать ... Пост на форумах FreeBSD предлагает некоторые результаты cmd, если вы хотите посмотреть.

Любые мысли о том, как превратить отзывчивость оболочки в «нормальный», приветствуются.

ОБНОВИТЬ:

Вот информация о диске:

[user@comodino ~]$ dmesg |grep -i ada
ada0 at ata2 bus 0 scbus0 target 0 lun 0
ada0: <SD RDC SD-IDE HOST CONTROLLER 01000000> ATA-6 device
ada0: 33.300MB/s transfers (UDMA2, PIO 512bytes)
ada0: 15399MB (31537152 512 byte sectors: 16H 63S/T 31286C)
ada0: Previously was known as ad4
Trying to mount root from ufs:/dev/ada0p2 [rw]...

Я тоже так думал, что это может быть ввод / вывод. Моя карта ADATA класса 16 ГБ 10.

Вот мой иостат:

[user@comodino ~]$ iostat
tty            ada0            pass0             cpu
tin  tout  KB/t tps  MB/s   KB/t tps  MB/s  us ni sy in id
  0     1 24.03   0  0.00   0.00   0  0.00   0  0  0  0 100

Сейчас я делаю тест с Бонни ++ (http://www.coker.com.au/bonnie++/). Я сообщу о результате как можно скорее. Спасибо за ответ Маноли :-)

обновление: вот результаты

[atma@comodino ~]$ bonnie++
Writing with putc()...done
Writing intelligently...done
Rewriting...done
Reading with getc()...done
Reading intelligently...done
start 'em...done...done...done...
Create files in sequential order...done.
Stat files in sequential order...done.
Delete files in sequential order...done.
Create files in random order...done.
Stat files in random order...done.
Delete files in random order...done.
Version 1.03e       ------Sequential Output------ --Sequential Input- --Random-
                    -Per Chr- --Block-- -Rewrite- -Per Chr- --Block-- --Seeks--
Machine            Size K/sec %CP K/sec %CP K/sec %CP K/sec %CP K/sec %CP  /sec %CP
comodino             1G  4156  24  4591   8  2993   7 14869  88 21277  27 100.8   2
                    ------Sequential Create------ --------Random Create--------
                    -Create-- --Read--- -Delete-- -Create-- --Read--- -Delete--
              files  /sec %CP  /sec %CP  /sec %CP  /sec %CP  /sec %CP  /sec %CP
             16  2804  58 10449  98  6559  88  2997  61 10711  99  4418  58    comodino,1G,4156,24,4591,8,2993,7,14869,88,21277,27,100.8,2,16,2804,58,10449,98,6559,88,2997,61,10711,99,4418,58

Теперь я должен расшифровать результаты :-P

2 ответа2

2

Где находятся /var и /tmp? В системах SD мне нравится отображать /tmp -> /var/tmp и делать /var RAM-диском. Следующие параметры в /etc/rc.conf автоматически установят 64 МБ /var при загрузке. Вам все еще нужно удалить /tmp и сделать из него символическую ссылку.

# SD Card boot, RAM-Disk /var
varmfs="YES"            # Set to YES to always create an mfs /var, NO to never
varsize="64m"           # Size of mfs /var if created
varmfs_flags=""         # Extra mount options for the mfs /var
populate_var="YES"      # Set to YES to always (re)populate /var, NO to never
cleanvar_enable="NO"    # Clean the /var directory
1

Вероятно, это не отзывчивость оболочки, а очень низкая пропускная способность диска. В качестве отправной точки проверьте dmesg, чтобы увидеть, какой режим передачи использует ваша SD-карта:

Вы ищете что-то вроде этого:

ada0: устройство ATA-8 SATA 2.x ada0: 150 000 МБ / с (SATA, UDMA5, PIO 8192 байта)

Вероятно, SD-карта или контроллер слишком медленные, SD-карты имеют разную скорость - так называемые классы скорости. В идеале вы должны использовать класс 6 или выше для диска ОС.

Однако есть несколько способов оптимизации, например, отключение ненужного ведения журнала и времени изменения файла (используйте noatime в опциях монтирования в fstab).

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .