Как диагностировать узкое место на сервере Ubuntu на базе Intel Atom?

2660
Jon Cage

У меня дома небольшой медиа-сервер с программным RAID-массивом и гигабитным каналом связи с остальной частью моей сети.

По какой-то причине, я получаю только ~ 10 МБ / с при копировании на / с сервера.

Я использую программный RAID5 (mdadm) на 4 дисках по 1 ТБ. Вдобавок к этому я затем использую LVM, чтобы дать мне огромный пул дискового пространства, который затем разделяется на несколько разделов, размер которых можно изменять по мере необходимости. Я предполагаю, что это, скорее всего, причина, но я хотел бы знать наверняка, в чем причина.

Итак, как я могу измерить пропускную способность сети (рабочий стол Windows 7 <-> сервер Ubuntu) и производительность жесткого диска, чтобы попытаться определить, где может быть мое узкое место?

[Редактировать] Если кому-то интересно, материнская плата - системная плата Intel D945GCLF2 для настольных ПК . Так что это процессор серии 300 Atom с набором микросхем Intel® 945GC Express

[Edit2] Я чувствую себя таким дураком! Я только что проверил свой рабочий стол, и у меня была подключена более медленная из двух встроенных сетевых плат, так что сервер, вероятно, здесь не виноват. Передавая копию Ubuntu с сервера, я получаю ~ 35-40 МБ / с в соответствии с Windows 7. Я проведу эти тесты HD, когда у меня будет возможность (хотя бы для полноты).

1
Программный RAID с процессором Atom ... Не смотрите дальше. Особенно RAID5, который делает расчет четности. Кроме того, я предполагаю, что ваша сеть имеет скорость 100 Мбит / с, что дает максимальную пропускную способность 12 Мбит / с, поэтому 10 Мбит / с это хорошо =) Antoine Benkemoun 14 лет назад 4
У Джона есть гигабитная связь. lajuette 14 лет назад 0
@lajuette - наличие компонентов gbit не всегда достаточно, вам нужно убедиться, что каждое звено в цепочке согласовало соединение gbit и не откатилось к более медленной скорости соединения из-за странной несовместимости, неисправности кабеля или случайной случайности. David Spillett 14 лет назад 0
Это не ответ, а скорее рекомендация для исправления. Кажется, самое простое решение - добавить аппаратную карту RAID. Это снимет накладные расходы ввода-вывода с вашего ограниченного ЦП, и если вы получите тот с разумным кешем (вы должны!), Вы увидите дополнительные преимущества от этого. Кажется, на данный момент ваш самый простой способ подключи и работай. Кроме того, вы получите выгоду от включения Jumbo Frames, если все ваш комплект поддерживает его. 14 лет назад 0

4 ответа на вопрос

4
lajuette

Как сказал Антуан: процессор Atom и SW RAID - плохая идея. Для измерения пропускной способности ваших дисков вы можете использовать hdparm.

Посмотрите на это: http://www.cyberciti.biz/tips/how-fast-is-linux-sata-hard-disk.html

Вы должны измерять свои дисковые устройства и ваши рейд-устройства отдельно. Таким образом, вы можете увидеть, если диски медленные (сломаны?) Или медленный RAID. Также обратите внимание на использование вашего процессора (например, с top) при измерении или доступе к вашему RAID ome другим способом.

Если это не узкое место, проверьте, использует ли ваша ссылка GBEthernet свою полную емкость. Посмотрите на вывод ifconfig. Моя выглядит следующим образом (Mac OS X 10.6, в Ubuntu она должна выглядеть примерно так):

en0: flags=8863<UP,BROADCAST,SMART,RUNNING,SIMPLEX,MULTICAST> mtu 1500 ether 64:b9:e8:bf:8f:b4  inet 192.168.0.5 netmask 0xffffff00 broadcast 192.168.0.255 media: autoselect (1000baseT <full-duplex,flow-control>) status: active 

2-я строка снизу: 1000baseT означает: ГБ Ethernet!

[править] Я нашел эту статью: http://www.performancewiki.com/diskio-monitoring.html Он рекомендует sarи iostatдля мониторинга дискового ввода-вывода.

Звучит как хороший совет - я попробую ваши предложения. Jon Cage 14 лет назад 0
Я заинтересован в ваших результатах. Если Атом (который между прочим?) Способен делать такие вещи, я хочу попробовать это дома. Я управляю медиацентром на плате ION. lajuette 14 лет назад 0
@lajuette - Atom должен хорошо работать в качестве основного файлового сервера, если вы это имеете в виду. Я не тестировал один с сетевой картой Gbit, но, как показывают результаты Джона, он способен показывать скорости 10 Мбит с массивом RAID5 и теоретически должен быть способен значительно быстрее. Однажды я провел несколько тестов на своем нетбуке, чтобы увидеть, как Atom будет работать в качестве VPN-сервера, и он может увеличить / уменьшить ~ 85-90% возможностей 100-битной линии при использовании OpenVPN в качестве безопасного транспортного уровня, у вашей платы ION, вероятно, есть более способный чип из семейства Atom, так что может показаться еще лучше. David Spillett 14 лет назад 0
2
David Spillett

Несколько вещей для проверки:

  • убедитесь, что сетевой адаптер на самом деле в Гбит больше, а не на 10 Мбит ethtool eth0(замените его eth0на идентификатор устройства соответствующего сетевого адаптера, если он другой), найдите показание «скорость» для текущего режима
  • убедитесь, что Windows в настоящее время использует свою карту в режиме Gbit тоже
  • проверьте, какая нагрузка на ЦП и ввод / вывод на сервер накладывается во время передачи - если вы видите (в topили аналогичном) одно ядро ​​в состоянии ожидания ввода / вывода, близком к 100%, то ваши диски являются узким местом, если вы видите высокую «системный» ЦП использует затем ЦП в узком месте (это может быть смесь двух для записи из-за падения производительности RAID 5 «запись -> чтение + чтение + запись + запись» на четырех дисках и вычислений четности, выполняемых CPU, если ни показания системы, ни IO не являются высокими, то, скорее всего, узким местом является сеть.
  • тестирование производительности массового чтения исключительно на сервере (для тестирования производительности необработанного ввода-вывода независимо от сети): catбольшой файл, чтобы /dev/nullувидеть, как далеко это заходит ( echo 3 > /proc/sys/vm/drop_cachesсначала сделайте так, чтобы вы знали, что ввод-вывод действительно работает на дисках, а не из памяти, и если он установлен, используйте pvвместо cat, поскольку он дает полезную скорость + показания прогресса), наблюдая за загрузкой CPU + IO, как это происходит тоже
  • проверить производительность массовой записи с cat /dev/zero > /some/file/on/the/array(или pv /dev/zero > /some/file/on/the/array), наблюдая за использованием процессора, как это происходит тоже.
  • протестируйте пропускную способность сети bluk, независимо от производительности диска / массива, между машинами с netcat и pv - на машине с Win7 nc -l -p 123 > NULи на сервере, а затем выполните, pv /dev/zero | nc 1.2.3.4 123где 1.2.3.4 - это адрес окна Windows (вы можете закончить, добавив исключение брандмауэра для nc).

Поскольку вы видите фиксированную скорость ~ 10 Мбайт / с, я бы заподозрил сначала проблему с сетью, а не узкое место на дисках или процессоре - но RAID5 на процессоре Atom может быть одним из узких мест, поэтому вы можете рассмотреть RAID1 + 0 или RAID10 вместо этого (если ваш массив RAID5 имеет 3 с лишним запаса, то драйвер RAID10 для Linux с 3 + запасными должен обеспечивать аналогичную избыточность (возможен отказ любого отдельного диска), но с более высокой производительностью (запись-> запись * 2, а не запись-> read + paritycalc + write * 2), в режиме с тремя дисками драйвер RAID10 делает нечто похожее на то, что контроллеры IBM называют RAID-1E, см. http://en.wikipedia.org/wiki/Non-standard_RAID_levels#Linux_MD_RAID_10 ).

редактировать:

В список выше добавлена ​​дополнительная вещь для тестирования и другие мелкие детали

~ 10MByte показалось мне подозрительно близким к 100MBit-ссылке. Я попробую ваши предложения, когда у меня будет шанс - спасибо! Jon Cage 14 лет назад 0
1
Dan Andreatta

Прежде всего, вы используете SMB / CIFS, который не очень быстрый протокол (для справки он определенно медленнее, чем NFS).

Во-вторых, это зависит от того, какую нагрузку вы тестируете. Это в основном последовательное или случайное? Если это в основном случайный ввод / вывод, то, вероятно, 10 МБ / с в порядке. Реально от сетевой карты GB можно ожидать 30-50 МБ / с от CIFS (но, как я уже сказал, может быть выше или ниже, в зависимости от рабочей нагрузки).

Вы также можете проверить этот другой ответ из serverfault для настройки производительности CIFS.

Быстрый поиск показал эту страницу с оценками производительности CIFS . Вы можете найти это полезным.

Наконец, вы можете проверить производительность сети с помощью iperf (он может быть скомпилирован и для Windows, и вы можете найти его где-нибудь предварительно скомпилированным)

Я передавал большие файлы данных, поэтому большие последовательные записи / чтения. Jon Cage 14 лет назад 0
@Jon: Кроме того, что я не советую вам тестировать саму сеть и проверять загрузку процессора на файловом сервере, я могу лишь направить вас на официальную страницу производительности Samba http://www.samba.org/samba/docs/man/Samba. -HOWTO-Collection / speed.html 14 лет назад 0
0
Jon Cage

Оказывается, это был настольный компьютер, который я использовал; он работал на скорости 100 Мбит. Спасибо за все советы, хотя - может быть очень полезным для оценки производительности и повышения общей скорости моей системы!

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