speedfire87 7 Опубликовано: 2010-10-06 13:54:59 Share Опубликовано: 2010-10-06 13:54:59 Поставил сутевушку Intel гигабитную, сервер двух ядерный amd 2.4 debian lanny в htop видно что использует одно ядро, как сетевушку заставить нагружать не одно ядро а 2 сразу, то есть использовать ресурс процессора равномерно. Ссылка на сообщение Поделиться на других сайтах
Prime 51 Опубліковано: 2010-10-06 14:25:42 Share Опубліковано: 2010-10-06 14:25:42 распределить irq cat /proc/interrupts? cho "f" > /proc/irq/ололо/smp_affinity IO-APIC пыщ-пыщь? Ссылка на сообщение Поделиться на других сайтах
madf 279 Опубліковано: 2010-10-06 14:37:15 Share Опубліковано: 2010-10-06 14:37:15 smp_affinity поможет пока в действие не вступит ksoftirqd. После этого жуткий перекос и лапки кверху. Собственно, то о чем я говорил в соседней теме. Ссылка на сообщение Поделиться на других сайтах
Prime 51 Опубліковано: 2010-10-06 14:37:47 Share Опубліковано: 2010-10-06 14:37:47 на фре проще с этим Ссылка на сообщение Поделиться на других сайтах
speedfire87 7 Опубліковано: 2010-10-06 14:41:34 Автор Share Опубліковано: 2010-10-06 14:41:34 распределить irq cat /proc/interrupts? cho "f" > /proc/irq/ололо/smp_affinity IO-APIC пыщ-пыщь? Чет не вьехал, пыщ-пыщь? что это? /ололо/ так же не понял nano /proc/irq/что именно выбрать?/smp_affinity 0/ 1/ 10/ 11/ 12/ 13/ 14/ 15/ 19/ 2/ 21/ 22/ 23/ 3/ 4/ 5/ 6/ 7/ 8/ 9/ cat /proc/interrupts CPU0 CPU1 0: 33 1 IO-APIC-edge timer 1: 0 2 IO-APIC-edge i8042 7: 1 0 IO-APIC-edge parport0 8: 0 1 IO-APIC-edge rtc0 9: 0 0 IO-APIC-fasteoi acpi 14: 0 0 IO-APIC-edge ide0 19: 51709 45412455 IO-APIC-fasteoi eth0 21: 872 82932 IO-APIC-fasteoi sata_nv, HDA Intel 22: 0 1 IO-APIC-fasteoi ehci_hcd:usb2, sata_nv 23: 0 1 IO-APIC-fasteoi ohci_hcd:usb1, sata_nv NMI: 0 0 Non-maskable interrupts LOC: 5790061 19095122 Local timer interrupts RES: 7218409 361574 Rescheduling interrupts CAL: 950 696 function call interrupts TLB: 2915 2256 TLB shootdowns TRM: 0 0 Thermal event interrupts THR: 0 0 Threshold APIC interrupts SPU: 0 0 Spurious interrupts ERR: 1 Ссылка на сообщение Поделиться на других сайтах
KaYot 3 711 Опубліковано: 2010-10-06 15:06:39 Share Опубліковано: 2010-10-06 15:06:39 Одна сетевушка и должна/будет использовать одно ядро. Запись ff в smp_affinity сделает только хуже, заставляя обработчик прыгать по ядрам вымывая кеши и убивая в итоге сервер. Или ставить еще сетевку, или ставить сетевку типа intel ET board с multiqueue, или обновить ядро до 2.6.35.4 и потестить как работает тамошний софт-multiqueue.. Ссылка на сообщение Поделиться на других сайтах
madf 279 Опубліковано: 2010-10-06 15:09:03 Share Опубліковано: 2010-10-06 15:09:03 распределить irq cat /proc/interrupts? cho "f" > /proc/irq/ололо/smp_affinity IO-APIC пыщ-пыщь? Чет не вьехал, пыщ-пыщь? что это? /ололо/ так же не понял nano /proc/irq/что именно выбрать?/smp_affinity 0/ 1/ 10/ 11/ 12/ 13/ 14/ 15/ 19/ 2/ 21/ 22/ 23/ 3/ 4/ 5/ 6/ 7/ 8/ 9/ cat /proc/interrupts CPU0 CPU1 0: 33 1 IO-APIC-edge timer 1: 0 2 IO-APIC-edge i8042 7: 1 0 IO-APIC-edge parport0 8: 0 1 IO-APIC-edge rtc0 9: 0 0 IO-APIC-fasteoi acpi 14: 0 0 IO-APIC-edge ide0 19: 51709 45412455 IO-APIC-fasteoi eth0 21: 872 82932 IO-APIC-fasteoi sata_nv, HDA Intel 22: 0 1 IO-APIC-fasteoi ehci_hcd:usb2, sata_nv 23: 0 1 IO-APIC-fasteoi ohci_hcd:usb1, sata_nv NMI: 0 0 Non-maskable interrupts LOC: 5790061 19095122 Local timer interrupts RES: 7218409 361574 Rescheduling interrupts CAL: 950 696 function call interrupts TLB: 2915 2256 TLB shootdowns TRM: 0 0 Thermal event interrupts THR: 0 0 Threshold APIC interrupts SPU: 0 0 Spurious interrupts ERR: 1 19: 51709 45412455 IO-APIC-fasteoi eth0 19-е прерывание. Для него крути smp_affinity. Ссылка на сообщение Поделиться на других сайтах
madf 279 Опубліковано: 2010-10-06 15:11:55 Share Опубліковано: 2010-10-06 15:11:55 Одна сетевушка и должна/будет использовать одно ядро. Запись ff в smp_affinity сделает только хуже, заставляя обработчик прыгать по ядрам вымывая кеши и убивая в итоге сервер. Или ставить еще сетевку, или ставить сетевку типа intel ET board с multiqueue, или обновить ядро до 2.6.35.4 и потестить как работает тамошний софт-multiqueue.. А почему должны вымываться кеши? Прерывание выполняется на одном ядре до самого конца. Если в процессе обработки прерывания возникает новое - оно уходит на второе ядро (если smp_affinity это позволяет). Если свободных ядер нет - оно ставится в очередь и в работу вступает ksoftirqd. Ссылка на сообщение Поделиться на других сайтах
speedfire87 7 Опубліковано: 2010-10-06 15:13:22 Автор Share Опубліковано: 2010-10-06 15:13:22 На подобной конфигурации только проц интел стояла сетевушка d-link тоже гигабит так ресурс проца использовался равномерно. И еще есть разница устанавливать линукс уже с сетевой или добавить ее после установки результат будет одинаков? И еще если можно распределить нагрузку как именно это зделать ? Ссылка на сообщение Поделиться на других сайтах
madf 279 Опубліковано: 2010-10-06 15:14:48 Share Опубліковано: 2010-10-06 15:14:48 На двух сетевых баланс действительно будет лучше. На подобной конфигурации только проц интел стояла сетевушка d-link тоже гигабит так ресурс проца использовался равномерно. И еще есть разница устанавливать линукс уже с сетевой или добавить ее после установки результат будет одинаков? Да, это зависит и от сетевой тоже. По второму вопросу - результат будет одинаков. Ссылка на сообщение Поделиться на других сайтах
KaYot 3 711 Опубліковано: 2010-10-06 15:16:26 Share Опубліковано: 2010-10-06 15:16:26 На подобной конфигурации только проц интел стояла сетевушка d-link тоже гигабит так ресурс проца использовался равномерно. И еще есть разница устанавливать линукс уже с сетевой или добавить ее после установки результат будет одинаков? Разница в той самой цифирке в proc/irq/nn. На одной системе там прописано "1", а на второй "f". Сделайте echo "f" > /proc/irq/19/smp_affinity и будет вам кажущееся счастье. Ссылка на сообщение Поделиться на других сайтах
speedfire87 7 Опубліковано: 2010-10-06 15:20:23 Автор Share Опубліковано: 2010-10-06 15:20:23 На подобной конфигурации только проц интел стояла сетевушка d-link тоже гигабит так ресурс проца использовался равномерно. И еще есть разница устанавливать линукс уже с сетевой или добавить ее после установки результат будет одинаков? Разница в той самой цифирке в proc/irq/nn. На одной системе там прописано "1", а на второй "f". Сделайте echo "f" > /proc/irq/19/smp_affinity и будет вам кажущееся счастье. На данный момент ситуация такова в файле /proc/irq/19/smp_affinity по умолчанию стояло ffffffff после echo "f" > /proc/irq/19/smp_affinity значение автоматом меняется на 00000003, и нагрузка на второе ядро продолжатся а первое как всегда курит в сторонке. Может сетевую утилизировать и поставить d-link ? Ссылка на сообщение Поделиться на других сайтах
madf 279 Опубліковано: 2010-10-06 15:23:29 Share Опубліковано: 2010-10-06 15:23:29 На подобной конфигурации только проц интел стояла сетевушка d-link тоже гигабит так ресурс проца использовался равномерно. И еще есть разница устанавливать линукс уже с сетевой или добавить ее после установки результат будет одинаков? Разница в той самой цифирке в proc/irq/nn. На одной системе там прописано "1", а на второй "f". Сделайте echo "f" > /proc/irq/19/smp_affinity и будет вам кажущееся счастье. На данный момент ситуация такова в файле /proc/irq/19/smp_affinity по умолчанию стояло ffffffff после echo "f" > /proc/irq/19/smp_affinity значение автоматом меняется на 00000003 Значит балансировка уже была. Это значение - битовая маска по процессорам. 1 в соответствующем бите разрешает использовать соответствующее ядро. Ссылка на сообщение Поделиться на других сайтах
KaYot 3 711 Опубліковано: 2010-10-06 15:24:50 Share Опубліковано: 2010-10-06 15:24:50 А почему должны вымываться кеши? Прерывание выполняется на одном ядре до самого конца. Если в процессе обработки прерывания возникает новое - оно уходит на второе ядро (если smp_affinity это позволяет). Если свободных ядер нет - оно ставится в очередь и в работу вступает ksoftirqd. Верно, прерывание обрабатывается целиком. Даже более, до конца обработки новое прерывание генерироваться не должно и никто его никуда не перекинет - выделение двух ядер для одного интерфейса не имеет смысла. В принципе для тупого пропускания трафика через 1 интерфейс падения видимого производительности не будет, а вот для двух интерфейсов скачущих по ядрам будет постоянная принудительная синхронизация кешей через ОЗУ, и соответственно лишние cache miss. Ссылка на сообщение Поделиться на других сайтах
KaYot 3 711 Опубліковано: 2010-10-06 15:26:46 Share Опубліковано: 2010-10-06 15:26:46 На данный момент ситуация такова в файле /proc/irq/19/smp_affinity по умолчанию стояло ffffffff после echo "f" > /proc/irq/19/smp_affinity значение автоматом меняется на 00000003, и нагрузка на второе ядро продолжатся а первое как всегда курит в сторонке. Может сетевую утилизировать и поставить d-link ? Значение 3 позволяет использовать оба ядра, скорее всего у вас работает демон irq_balance. Которые очень неплохо было бы убить)) Ссылка на сообщение Поделиться на других сайтах
speedfire87 7 Опубліковано: 2010-10-06 15:27:21 Автор Share Опубліковано: 2010-10-06 15:27:21 Вердикт каков сетевая не умеет работать с двумя ядрами одновременно? Ссылка на сообщение Поделиться на других сайтах
speedfire87 7 Опубліковано: 2010-10-06 15:28:30 Автор Share Опубліковано: 2010-10-06 15:28:30 На данный момент ситуация такова в файле /proc/irq/19/smp_affinity по умолчанию стояло ffffffff после echo "f" > /proc/irq/19/smp_affinity значение автоматом меняется на 00000003, и нагрузка на второе ядро продолжатся а первое как всегда курит в сторонке. Может сетевую утилизировать и поставить d-link ? Значение 3 позволяет использовать оба ядра, скорее всего у вас работает демон irq_balance. Которые очень неплохо было бы убить)) irq_balance в процессах не нашол. Ссылка на сообщение Поделиться на других сайтах
KaYot 3 711 Опубліковано: 2010-10-06 15:31:33 Share Опубліковано: 2010-10-06 15:31:33 service irqbalance status ? От сетевой работа с прерываниями не зависит, смотрите с proc/interrupts растет ли число прерываний для обоих ядер на 19ом прерывании. Ссылка на сообщение Поделиться на других сайтах
speedfire87 7 Опубліковано: 2010-10-06 15:36:24 Автор Share Опубліковано: 2010-10-06 15:36:24 service irqbalance status ? От сетевой работа с прерываниями не зависит, смотрите с proc/interrupts растет ли число прерываний для обоих ядер на 19ом прерывании. service irqbalance status irqbalance: unrecognized service смотрел не растет. Ссылка на сообщение Поделиться на других сайтах
KaYot 3 711 Опубліковано: 2010-10-06 15:49:26 Share Опубліковано: 2010-10-06 15:49:26 Чудес ведь не бывает. Пробуй записать в smp_affinity "1", посмотреть прерывания. Потом "2", и еще посмотреть, будет ли меняться активное ядро. Ну и надо найти волшебника меняющего аффинити без нашего ведома) Ссылка на сообщение Поделиться на других сайтах
Небесный 26 Опубліковано: 2010-10-06 16:52:20 Share Опубліковано: 2010-10-06 16:52:20 Значение 3 позволяет использовать оба ядра, скорее всего у вас работает демон irq_balance. Которые очень неплохо было бы убить)) Бррррр, а чем плох irq_balance? Особо спорить не хочу на эту тему, не вникал, но хотел бы узнать плохие стороные этого. Ссылка на сообщение Поделиться на других сайтах
KaYot 3 711 Опубліковано: 2010-10-06 17:43:38 Share Опубліковано: 2010-10-06 17:43:38 Он не всегда правильно раскидывает прерывания, если для десктопной машины ему можно всю работу доверить и не заморачиваться, то для сервера лучше настроить все ручками. Ссылка на сообщение Поделиться на других сайтах
speedfire87 7 Опубліковано: 2010-10-06 20:19:37 Автор Share Опубліковано: 2010-10-06 20:19:37 Чудес ведь не бывает. Пробуй записать в smp_affinity "1", посмотреть прерывания. Потом "2", и еще посмотреть, будет ли меняться активное ядро. Ну и надо найти волшебника меняющего аффинити без нашего ведома) Нагрузка меняется в зависимости от того какое ядро поставить и первое и второе но два вместе не работает. Ссылка на сообщение Поделиться на других сайтах
speedfire87 7 Опубліковано: 2010-10-06 20:21:08 Автор Share Опубліковано: 2010-10-06 20:21:08 А вообще от чего это зависит равномерное использование двух ядерного проца? От проца материнской платы сетевушки ? А то настает вечер бывает на втором ядре и полка, а первое загружено на 5-15% . Ссылка на сообщение Поделиться на других сайтах
Dark_Angel 5 Опубліковано: 2010-10-07 07:10:25 Share Опубліковано: 2010-10-07 07:10:25 Уважаемый ТС. Вам тут пудрят мозги. Ни SMP Affinity ни irq balance тем более тут непричем. Обратите внимание на то как определилась ваша сетевая. 19: 51709 45412455 IO-APIC-fasteoi eth0. Одно прерывание да еще и по APIC. Одно прерывание в ядрах до 2.6.32 не может обрабатываться больше чем одним ядром. Никогда. На то оно и прерывание. Говорят с 2.6.32 появились soft очереди, но лично я не тестил еще. Для того чтобы решить вашу задачу - Вам нужно чтобы сетевая была правильно инициализирована ядром. С поддержкой MSI, MSI-X векторов. Для этого надо иметь минимум ядро 2.6 т.к. 2.4 не имеет поддержки MSI вообще. Ссылка на сообщение Поделиться на других сайтах
Рекомендованные сообщения
Создайте аккаунт или войдите в него для комментирования
Вы должны быть пользователем, чтобы оставить комментарий
Создать аккаунт
Зарегистрируйтесь для получения аккаунта. Это просто!
Зарегистрировать аккаунтВхід
Уже зарегистрированы? Войдите здесь.
Войти сейчас