Соединение между двумя компьютерами Ubuntu с использованием Samba очень медленное

Я получил кроссоверный кабель Cat5e для очень быстрого обмена файлами между моим ПК и ноутбуком, но скорость передачи составляет 1,3 МБ. Используя USB 2.0, я гораздо быстрее помещаю файлы на внешний жесткий диск. Это не может быть правдой, не так ли? Оба компьютера работают с 12.04 64bit.

0
задан 2 April 2013 в 19:52

2 ответа

При чтении вопроса я сначала думал: почему самба? это - очень неэффективный путь к передаче файлов.

Бит искуплений:

протокол CIFS "ест" много Вашей пропускной способности. Это - худший сценарий случая, много маленьких файлов. Если это имеет место затем, что это - нормальная скорость. (маленький что-то менее чем 10 МБ),

если это имеет место, вот то, почему:

Все это зависит от Вашего транспортного уровня. Вы сравнили протокол Ethernet+CIFS с USB2+NTFS (ИЛИ FAT32) протокол.

В первую очередь, у нас есть два отличных способа управления Вашими файлами здесь. Первый один (CIFS) на уровне файла, и второй (NTFS) является блочным уровнем.

В точке зрения производительности это означает, что CIFS имеет меньше производительности, потому что это должно использовать некоторого менеджера по блочному уровню для работы правильно (если Ubuntu установлена со значениями по умолчанию, это идет через EXT4).

Заключение: На системном уровне CIFS должен пройти через большее количество слоев, чем Жесткий диск USB2 (и именно поэтому, с той же доступной пропускной способностью, у Вас никогда не будет той же скорости),

Затем о "партии небольшого эффекта файлов": Как я сказал вначале, CIFS плохо разработан. Для каждого файла или папки, CIFS должен сделать больше чем 10 связи (это варьируется в зависимости от circumpstances) между этими двумя ПК. Давайте предположим, что у Вас есть 5 000 файлов 1 КБ, каждый и задержка между двумя ПК имеют 1 мс. Это означает, что Ваша скорость передачи продлится: 5 000 файлов * 1 мс * 10 = 50 000 мс или 50 секунд, ведьма подразумевает, что Ваша скорость: секунды на 5 000 КБ / 50 = 500KB/sec

Теперь в реальном случае задержка составляет меньше чем 1 мс, и Вы используете файлы более чем 1 КБ. Более реалистический путь был бы (для файлов 1 МБ):

5 000 файлов * 0,1 мс * (10 + (2*1048576/1500)) = 704 051 мс или 705 секунд так 7MB/sec

1500 является максимальными данными по умолчанию, которые можно отправить (MTU). Таким образом, Ваши файлы являются cutted кратными числами 1500.

Конечно, это - теория и должно быть рассмотрено как идеал, и не берет в соображении доступную пропускную способность (1 Гбит/с, 100 Мбит/с, и т.д.)

В Вашем конкретном случае:

у Вас есть чрезвычайно медленный результат. Я надеюсь, что можно объяснить это через объяснения, данные вначале.

Если не необходимо проверить на некоторые проблемы на сетевом уровне одной из человечности.

В первую очередь, проверьте результат ifconfig и на (откройте терминал и введите ifconfig). Здесь является моим:

eth0      Link encap:Ethernet  HWaddr 00:15:c5:5f:9e:be
          inet addr:192.168.0.14  Bcast:192.168.0.255  Mask:255.255.255.0
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:4392375 errors:0 dropped:0 overruns:0 frame:0
          TX packets:3493073 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:4910280244 (4.9 GB)  TX bytes:757387998 (757.3 MB)
          Interrupt:16

lo        Link encap:Local Loopback
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:16436  Metric:1
          RX packets:629 errors:0 dropped:0 overruns:0 frame:0
          TX packets:629 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:39732 (39.7 KB)  TX bytes:39732 (39.7 KB)

Мой интерфейс по умолчанию является eth0. Необходимо заботиться об "ошибках, отброшенных, переполниться и коллизии", которые остаются в 0.

Если не случай и Вы не коснулись MTU интерфейса (1500 является значением по умолчанию), затем, Вы можете иметь

  • проблема или с кабелем или с интерфейсом одной или обеих машин. (главным образом, если ошибка или отброшенный отличается из 0),
  • проблема с Вашей интерфейсной конфигурацией в обеих машинах

Поскольку первый пытается изменить Ваш кабель Для второго, полагая, что это - eth0, и не больше, чем eth0 соединен, введите это:

  • Машина A: sudo ifconfig eth0 172.16.10.1
  • Машина B: sudo ifconfig eth0 172.16.10.2

затем получите доступ к своим долям при помощи IP каждой машины вместо имен (например, 172.16.10.2, когда Вы будете на машине A),

Можно также поместить стероиды на самбу (настраивающий smb.conf или разрешающий крупные кадры). Но я советую Вам не делать так, потому что это скроет и не зафиксирует Вашу проблему производительности. (можно пойти быстрее, но все еще движение медленнее, чем Вы должно),

Может быть много других вещей. Это - постоянный клиент. обновите меня нуждающийся в большей информации.

2
ответ дан 2 April 2013 в 19:52

Если на обоих ваших компьютерах есть гига-Ethernet, вы можете включить Jumbo-frames.

Вот краткое как:

http://www.linuxplanet.org/blogs/?cat=5074

0
ответ дан 2 April 2013 в 19:52

Другие вопросы по тегам:

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