Ilya Evseev Posted March 14, 2009 Posted March 14, 2009 (edited) Имеется два сервера на Core2Duo и FreeBSD 7.1, предоставляющие выход в Интернет: ядро GENERIC, ipfw, dummynet, ng_netflow, pf nat. Вся нагрузка процессора полностью приходится на прерывания от bge0/bge1 и ядро, в userland'e почти ничего нет. На одном из серверов FreeBSD собрана под i386, на втором - под amd64. На втором загрузка процессора ощутимо (на 20-30% по top -SH) выше. При этом все настройки в ОС, железо, объём трафика (nload bge0 = 80mb/s), количество пакетов (netstat -w1 = 50kpps) и прерываний (systat -v) одинаковые. Вопрос: сборка под amd64 на практике действительно работает медленнее, или виноваты мои кривые руки? Интересует только обработка трафика, то есть истории про LAMP не предлагать. Пока есть две версии: 1) gcc делает для amd64 менее быстрый код, чем для i386, 2) из-за того, что структуры TCP/IP состоят преимущественно из 32-битных полей, обработка в 64-битном режиме оказывается медленнее, чем в 32-битном. Edited March 17, 2009 by Ilya Evseev Вставить ник Quote
firefly Posted March 16, 2009 Posted March 16, 2009 А SMP в i386 включено? Или просто generic и "на честном слове и на одном крыле"? На DL360 с парой Xeon'ов i386+SMP заметно проигрывала amd64 на 6.4 и 7.0. На 7.1 просто не пробовал. Может так случиться, что виновата именно 7.1. Вставить ник Quote
jab Posted March 16, 2009 Posted March 16, 2009 GENEGIC в 7.1 по умолчанию с SMP и SCHED_ULE Вставить ник Quote
firefly Posted March 16, 2009 Posted March 16, 2009 Тогда "упс, братушки, опаньки" :) Вставить ник Quote
Ilya Evseev Posted March 17, 2009 Author Posted March 17, 2009 На DL360 с парой Xeon'ов i386+SMP заметно проигрывала amd64 на 6.4 и 7.0.1) На каких задачах? Маршрутизация трафика "всё-в-ядре"?2) Насколько заметным был проигрыш? 10 процентов, 30, 50? Вставить ник Quote
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.