Прежде кратко скажу о задачах, которые должен выполнять сервер.
Итак, на первом месте файлообмен. Личные предпочтения тут не отличаются разнообразием. В основном это музыка несколько специфических жанров: восточная классика и другая этническая. Всё это в lossless качестве. Особенность жанра такова, что подавляющее большинство записей приобрести легальными способами либо вообще невозможно (маленький тираж дисков давно распродан), либо практически невыполнимо (например, записи некоторых исполнителей у нас в стране не продаются, в on-line магазинах тоже их нет). Остаётся два варианта: торренты и e2k. Требования к программам для торрентов и e2k – возможность работать без графического интерфейса и иметь клиент для удалённого управления.
Для торрентов выбор пал на Transmission. Эта программа сочетает в себе широкий набор функций и отличается разнообразием клиентов для управления по сети. На сервере работает transmission-daemon. В качестве клиента для управления transmisson-remote-gui. Очень удобная связка! Практически нет ограничений на использования различных ОС – remote-gui прекрасно работает как на linux, так и в windows и macOS. Transmisson-remote-gui назначен обработчиком файлов *.torrent в браузере. Кроме этого, большим удобством является возможность задать расположение скачиваемого файла на сервере. Таким образом загрузка происходит не в какой-то один каталог, а в любой по желанию.
Для e2k установил aMule. Здесь также пришлось пересобрать пакет: разделил демон и GUI-клиент, написал скрипт для запуска. С последней стабильной версией 2.2.6 обнаружилась сложность – демон amuled динамически линковался с библиотеками wxGTK, что приводило к зависимости от XWindow. В релиз-кандидате следующей версии 2.3.1 этот недостаток устранён.
Из других сервисов на сервере крутятся apache, mysql, ftp, nfs. Кроме собственно загрузки файлов сервер предоставляет к ним доступ по nfs для медиаплейера WD TV Live. Использование отдельного медиаплейера мне кажется более разумным решением, чем если бы в качестве воспроизводящего устройства использовался сам сервер. Этому есть несколько причин. Во-первых вопрос размещения. Сервер можно разместить в любом удобном месте, где он никому не мешает. Тогда как при расположении вблизи от телевизора возникла бы вторая проблема – шум. Третья проблема – производительность. Всё же отдельное узкоспециализированное устройство справляется с проигрыванием тяжёлого HD-видео лучше, чем Atom. С другой стороны всё попытки решить проблемы совмещения в одном устройстве неизбежно привели бы к значительному росту цены решения, превысив стоимость сервера и медиаплейра вместе взятых. Нужно помнить, что воспроизведение медиа требуется несколько часов в сутки, а сервер работает непрерывно.
Главный вопрос: хватает ли производительности Atom для выше перечисленных задач? На мой взгляд, вполне! Если не пытаться превратить машинку в универсальный мультимедиа-комбайн с транскодированием и воспроизведением видео, то загрузка процессора не превысит 25%. За исключением передачи файлов по NFS или SMB со скоростями близкими к гигабитной. В этом случае загрузка может расти до 70%. Например, если нужно скопировать большой объём информации на рабочий компьютер. Однако такой вариант встречается не часто.
В завершении рассказа приведу некоторые тесты производительности.
Скорость жесткого диска (WDC WD6400BPVT):
# hdparm -t /dev/sda /dev/sda: Timing buffered disk reads: 234 MB in 3.01 seconds = 77.64 MB/sec
Скорость сети с помощью утилиты iperf:
Реальная пропускная способность сетевого интерфейса.
% iperf -c 192.168.1.225 ------------------------------------------------------------ Client connecting to 192.168.1.225, TCP port 5001 TCP window size: 64.0 KByte (default) ------------------------------------------------------------ [ 3] local 192.168.1.10 port 38750 connected with 192.168.1.225 port 5001 [ ID] Interval Transfer Bandwidth [ 3] 0.0-10.0 sec 1.10 GBytes 942 Mbits/sec
Скорость сети в loopback:
Можно оценить какую максимальную скорость может обеспечить платформа (процессор, чипсет, память).
% iperf -c 127.0.0.1 ------------------------------------------------------------ Client connecting to 127.0.0.1, TCP port 5001 TCP window size: 64.0 KByte (default) ------------------------------------------------------------ [ 3] local 127.0.0.1 port 60136 connected with 127.0.0.1 port 5001 [ ID] Interval Transfer Bandwidth [ 3] 0.0-10.0 sec 3.50 GBytes 3.00 Gbits/sec
Дело пишет автор, вот такие целевые статьи интересно почитать.
- Войдите на сайт для отправки комментариев
- cсылка
⏏