Недавно я получил новую машину Dell Optiplex 7090, i9-10900, 64 ГБ RAM
. Я попытался установить Ubuntu 20.04 (сервер, не использующий графический интерфейс, поэтому только серверную версию), но после первого экрана, где вы выбираете установку Ubuntu дисплей гаснет / теряет сигнал. Я предполагаю, что оборудование слишком новое для 20.04.
Я установил 20.10 (или, может быть, 21.04), и он установился нормально, без проблем, плавно, как и ожидалось. Однако после выполнения базовой настройки в течение 15 минут или около того мое SSH-соединение стало медленным / оборвалось. Во время расследования я заметил значительную потерю пакетов - это выглядело как конфликт IP-адресов в сети. Я проверил и изменил IP, но без разницы.
Он использует бортовую локальную сеть Гбит, подключенную непосредственно к маршрутизатору. Я поменял местами сетевой кабель с другим моим компьютером рядом с ним, и у него не было проблем (это означало, что он также использовал другой порт на маршрутизаторе) ). Я попытался установить статический IP-адрес Я попытался переустановить с нуля, пробовал разные версии Ubuntu 20.04 / 21.04 / 21.10 (где я сейчас использую). Я пробовал CentOS 8 - все работало нормально, без потери сетевых пакетов, но я предпочитаю использовать Ubuntu, поэтому хочу, чтобы он работал.
В конце концов, я понял, что если я вставлю определенную карту памяти USB в передний порт USB3, потеря пакетов прекратится и сетевое соединение станет стабильным. На вашем месте я бы тоже не поверил, но обещаю, что это сделает сетевое соединение стабильным. Я даже не могу понять, как это может иметь значение. Но это сохранялось при различных переустановках. Я устанавливаю Ubuntu с USB-накопителя, удаляю его, использую около 15 минут, а затем начинается потеря пакетов. Затем я подключаю USB-накопитель, и теперь он на 100% стабилен (включая пинг в течение ночи).
Так что я в недоумении, хотел бы я это выяснить, если у кого-нибудь есть идеи / советы, которые стоит попробовать?
lspci -v
00:00.0 Host bridge: Intel Corporation Device 9b33 (rev 05)
Subsystem: Dell Device 0a52
Flags: bus master, fast devsel, latency 0
Capabilities: <access denied>
Kernel driver in use: skl_uncore
00:02.0 VGA compatible controller: Intel Corporation CometLake-S GT2 [UHD Graphics 630] (rev 05) (prog-if 00 [VGA controller])
Subsystem: Dell CometLake-S GT2 [UHD Graphics 630]
Flags: bus master, fast devsel, latency 0, IRQ 148
Memory at 6000000000 (64-bit, non-prefetchable) [size=16M]
Memory at 4000000000 (64-bit, prefetchable) [size=256M]
I/O ports at 3000 [size=64]
Expansion ROM at 000c0000 [virtual] [disabled] [size=128K]
Capabilities: <access denied>
Kernel driver in use: i915
Kernel modules: i915
00:14.0 USB controller: Intel Corporation Tiger Lake-H USB 3.2 Gen 2x1 xHCI Host Controller (rev 11) (prog-if 30 [XHCI])
Subsystem: Dell Tiger Lake-H USB 3.2 Gen 2x1 xHCI Host Controller
Flags: bus master, medium devsel, latency 0, IRQ 125
Memory at 6001100000 (64-bit, non-prefetchable) [size=64K]
Capabilities: <access denied>
Kernel driver in use: xhci_hcd
Kernel modules: xhci_pci
00:14.2 RAM memory: Intel Corporation Tiger Lake-H Shared SRAM (rev 11)
Subsystem: Dell Tiger Lake-H Shared SRAM
Flags: fast devsel
Memory at 6001114000 (64-bit, non-prefetchable) [disabled] [size=16K]
Memory at 600111b000 (64-bit, non-prefetchable) [disabled] [size=4K]
Capabilities: <access denied>
00:15.0 Serial bus controller [0c80]: Intel Corporation Tiger Lake-H Serial IO I2C Controller #0 (rev 11)
Subsystem: Dell Tiger Lake-H Serial IO I2C Controller
Flags: bus master, fast devsel, latency 0, IRQ 27
Memory at 4010000000 (64-bit, non-prefetchable) [virtual] [size=4K]
Capabilities: <access denied>
Kernel driver in use: intel-lpss
Kernel modules: intel_lpss_pci
00:16.0 Communication controller: Intel Corporation Tiger Lake-H Management Engine Interface (rev 11)
Subsystem: Dell Tiger Lake-H Management Engine Interface
Flags: bus master, fast devsel, latency 0, IRQ 149
Memory at 6001119000 (64-bit, non-prefetchable) [size=4K]
Capabilities: <access denied>
Kernel driver in use: mei_me
Kernel modules: mei_me
00:17.0 SATA controller: Intel Corporation Device 43d2 (rev 11) (prog-if 01 [AHCI 1.0])
Subsystem: Dell Device 0a52
Flags: bus master, 66MHz, medium devsel, latency 0, IRQ 127
Memory at 6e920000 (32-bit, non-prefetchable) [size=8K]
Memory at 6e924000 (32-bit, non-prefetchable) [size=256]
I/O ports at 3080 [size=8]
I/O ports at 3088 [size=4]
I/O ports at 3060 [size=32]
Memory at 6e923000 (32-bit, non-prefetchable) [size=2K]
Capabilities: <access denied>
Kernel driver in use: ahci
Kernel modules: ahci
00:1b.0 PCI bridge: Intel Corporation Device 43c4 (rev 11) (prog-if 00 [Normal decode])
Flags: bus master, fast devsel, latency 0, IRQ 122
Bus: primary=00, secondary=01, subordinate=01, sec-latency=0
I/O behind bridge: [disabled]
Memory behind bridge: 6e800000-6e8fffff [size=1M]
Prefetchable memory behind bridge: [disabled]
Capabilities: <access denied>
Kernel driver in use: pcieport
00:1c.0 PCI bridge: Intel Corporation Device 43bd (rev 11) (prog-if 00 [Normal decode])
Flags: bus master, fast devsel, latency 0, IRQ 123
Bus: primary=00, secondary=02, subordinate=03, sec-latency=0
I/O behind bridge: [disabled]
Memory behind bridge: [disabled]
Prefetchable memory behind bridge: [disabled]
Capabilities: <access denied>
Kernel driver in use: pcieport
00:1f.0 ISA bridge: Intel Corporation Device 4384 (rev 11)
Subsystem: Dell Device 0a52
Flags: bus master, fast devsel, latency 0
00:1f.3 Audio device: Intel Corporation Device f0c8 (rev 11)
Subsystem: Dell Device 0a52
Flags: bus master, fast devsel, latency 64, IRQ 150
Memory at 6001110000 (64-bit, non-prefetchable) [size=16K]
Memory at 6001000000 (64-bit, non-prefetchable) [size=1M]
Capabilities: <access denied>
Kernel driver in use: snd_hda_intel
Kernel modules: snd_hda_intel
00:1f.4 SMBus: Intel Corporation Tiger Lake-H SMBus Controller (rev 11)
Subsystem: Dell Tiger Lake-H SMBus Controller
Flags: medium devsel, IRQ 16
Memory at 6001118000 (64-bit, non-prefetchable) [size=256]
I/O ports at efa0 [size=32]
Kernel driver in use: i801_smbus
Kernel modules: i2c_i801
00:1f.5 Serial bus controller [0c80]: Intel Corporation Tiger Lake-H SPI Controller (rev 11)
Subsystem: Dell Tiger Lake-H SPI Controller
Flags: fast devsel
Memory at 6e922000 (32-bit, non-prefetchable) [size=4K]
00:1f.6 Ethernet controller: Intel Corporation Ethernet Connection (14) I219-LM (rev 11)
Subsystem: Dell Ethernet Connection (14) I219-LM
Flags: bus master, fast devsel, latency 0, IRQ 124
Memory at 6e900000 (32-bit, non-prefetchable) [size=128K]
Capabilities: <access denied>
Kernel driver in use: e1000e
Kernel modules: e1000e
01:00.0 Non-Volatile memory controller: Samsung Electronics Co Ltd NVMe SSD Controller PM9A1/980PRO (prog-if 02 [NVM Express])
Subsystem: Samsung Electronics Co Ltd NVMe SSD Controller PM9A1/980PRO
Flags: bus master, fast devsel, latency 0, IRQ 16, NUMA node 0
Memory at 6e800000 (64-bit, non-prefetchable) [size=16K]
Capabilities: <access denied>
Kernel driver in use: nvme
Kernel modules: nvme
02:00.0 PCI bridge: Texas Instruments XIO2001 PCI Express-to-PCI Bridge (prog-if 00 [Normal decode])
Flags: bus master, fast devsel, latency 0
Bus: primary=02, secondary=03, subordinate=03, sec-latency=0
I/O behind bridge: [disabled]
Memory behind bridge: [disabled]
Prefetchable memory behind bridge: [disabled]
Capabilities: <access denied>
По умолчанию установлено значение MTU, равное 1500, и его можно использовать в большинстве ситуаций. Тем не менее, некоторым сетям требуется что-то меньшее, например 1492, и они не сообщают об этом в рамках первоначального согласования. Было бы неплохо провести некоторое тестирование, чтобы увидеть, является ли установка MTU причиной чрезмерной потери пакетов.
Вот как:
Если вы внесли какие-либо изменения в файл /etc/dhcp/dhclient.conf
, удалите их и перезагрузите сервер.
Используйте ping
для проверки потери пакетов при изменении настройки MTU:
ping -c 4 -M do -s 1472 151.101.193.69
Определения:
Параметр | Определение |
---|---|
-c 4 |
Счетчик ⇢ Количество итераций |
-M do |
Установить стратегию обнаружения MTU пути ⇢ do не допускает фрагментацию ни на каком уровне |
-s 1472 |
Размер пакета в битах (1472 + 28 служебных данных = 1500) |
151.101.193.69 |
IP-адрес для AskUbuntu. Не стесняйтесь использовать любой адрес, но избегайте сервисов, принадлежащих Google, поскольку они не всегда будут отвечать на запросы ping. |
Вы можете увидеть следующий вывод:
ping -c 4 -M do -s 1472 151.101.193.69
PING 151.101.193.69 (151.101.193.69) 1472 (1500) байтов данных. {{ 1}} Начиная с 192.168.0.1 icmp_seq = 1 Требуется фрагмент и установлен DF (mtu = 1454)
ping: local error: message too long, mtu = 1454
ping: local error: message too long, mtu = 1454 {{ 1}} ping: local error: message too long, mtu = 1454
--- 151.101.193.69 статистика ping ---
4 пакета передано, 0 получено, +4 ошибки, 100% потеря пакетов, время 3074 мс
Поиграйте со значением -s
, пока не обнаружите отсутствие фрагментации и слишком длинное сообщение
. Например:
ping -c 4 -M do -s 1200 151.101.193.69
PING 151.101.193.69 (151.101.193.69) 1200 (1228) байт данных.
1208 байт из 151.101 .193.69: icmp_seq = 1 ttl = 59 time = 5.52 ms
1208 байтов из 151.101.193.69: icmp_seq = 2 ttl = 59 time = 5.72 ms
1208 байтов из 151.101.193.69: icmp_seq = 3 ttl = 59 time = 5,64 мс
1208 байт из 151.101.193.69: icmp_seq = 4 ttl = 59 time = 5,68 мс
--- 151.101.193.69 статистика пинга ---
4 пакета передано, 4 получено, потеря пакетов 0%, время 3005 мс
rtt min / avg / max / mdev = 5,517 / 5,640 / 5,720 / 0,076 мс
Для В этом примере я обнаружил, что 1200
, что составляет MTU 1228
, приводит к нулевой потере пакетов.
Примечание: В идеале вы должны начать с 1472
и постепенно спускаться вниз с шагом 10 или около того. Если значение MTU слишком низкое, ваша скорость передачи данных пострадает.
Установите соответствующее значение MTU для вашей сети в файле /etc/dhcp/dhclient.conf
:
default interface-mtu 1228;
supersede interface-mtu 1228; { {1}}
Примечание. Не забудьте изменить 1228
на соответствующий размер MTU для вашей сети.
Если у вас несколько интерфейсов, вы можете указать, какие из них должны иметь какое значение MTU:
interface "enp0s31f6" {
default interface-mtu 1228;
заменить interface- mtu 1228;
}
Перезапустите сеть и убедитесь, что интерфейс включен:
sudo service network restart
sudo ifup enp0s31f6
Verify значение MTU:
sudo ifconfig | grep mtu
Что может дать вам что-то вроде:
docker0: flags = 4163 mtu 1500
enp0s31f6: flags = 4163 mtu 1228
lo: flags = 73 mtu 65536
veth43316c1: flags = 4163 mtu 1500 {{1 }} veth80786dc: flags = 4163 mtu 1500
vethf40bd74: flags = 4163 mtu 1500
С этим, надеюсь, потеря пакетов останется в прошлом