Какие параметры ядра лучше подходят под мин нагрузку и какой "старости" ядро использовать? |
Здравствуйте, гость Вход | Регистрация
Наши новости:
|
|
|
Какие параметры ядра лучше подходят под мин нагрузку и какой "старости" ядро использовать? |
Hebeda
|
27.12.2012, 22:24
Сообщение
|
|
|
Приветствую всех страждущих.
Т.к. недавно начал постепенно осваивать Gentoo 12.1, возник очевидный вопрос о том, как лучше собрать ядро. Цели достаточно прозрачны - минимальная нагрузка на процессор от серверов. Под минимальной - я подразумеваю, хм, примерно 15% от одного сервера при 32/32 metamod/amxmodx с минимальным набором плагинов. Сейчас при 0 игроках - нагрузка 4%. При 32 - от 30% до 100% [редко больше 50%]. А серверов собственно несколько, все паблики с минимальным набором плагинов - личные. Стоят сейчас на Intel Core i7-2600 с отключённым HT (HyperThreading) [в bios]. Процессы балансятся между ядрами (это сделано в силу того - что чем больше пакетов шлётся в адрес сервера - тем больше нагрузка, соответственно некоторые сервера в результате мини-ддоса грузят CPU больше обычного) и я всецело надеюсь на помощь BFS и BFQ в стабильности их работы. Бывает такое, что сервер начинает нагружать процессор на 50%, а то и больше, вот тогда, если включить HT - балансировка будет полезна. Такое случается только, когда сервер получает много пакетов (валидных, в целом) - dproto при этом флудит. Запросы фильтруются iptables, но в разумных пределах. Все сервера запущены с такими параметрами: Код nice -n -20 ./hlds_run -game cstrike +port ... +maxplayers 32 +ip ... +map de_dust2 -pingboost 1 Хочу заметить - что все запущенны с дефолтным sys_ticrate - то бишь 100.0. Большего для пабликов мне не нужно. И вся моя оптимизация основана на том, что сервера потребляют <=100 FPS и больше им не потребуется.Теперь к ядру. За основу взял ядро 3.7.1-pf. Выбор основан на 1) Новое = лучше (знаю, что спорно - поэтому спрашиваю - какой "старости" ядро использовать? Может лучше 2.6.32?) b) PF - ядро пропатченное с BFQ, BFS, 10000 HZ и прочий тюнинг для производительности. Касательно нагрузки на процессор речи нет, поэтому я думаю, что ядро это вообще использовать не стоит, но ничего лучше у меня под рукой нет или же я просто не знаю, что есть. Ядро скомпилировано и установлено при помощи утилиты genkernel. Можно пожертвовать "прыганьем" FPS и отсутствием возможности сделать более 100 FPS. Меня это устраивает. Главное - минимальная нагрузка на ядра. Мои главные вопросы это: 1. Какой "старости" ядро стоит использовать? Если можно - конкретную версию. (2.6.16 например) 2. Какие параметры ядра стоит смотреть, изучать, тестировать для HLDS или для понижения нагрузки от процессора? 3. Что из этих параметров нужно включить, а что выключить, какое значение этих параметров лучше всего, чтобы получить минимальную нагрузку на ядра от серверов? Написал название и текущее значение в моём конфиге. General setup: Tickless System (Dynamic Ticks) # CONFIG_NO_HZ is not set High Resolution Timer Support CONFIG_HIGH_RES_TIMERS=y Processor type and features: HPET Timer Support CONFIG_HPET_TIMER=y Preemption Model CONFIG_PREEMPT_NONE=y Timer Frequency (HZ) CONFIG_HZ_100=y 4. Какой -pingboost , по вашему мнению наиболее подходит для минимальной нагрузки на процессор - в частности для ОС Gentoo? Сейчас поставлен 1. По нагрузке мало отличается от 3. 5. Какое ядро взять за основу для минимальной нагрузки, в частности для Gentoo? Также буду благодарен c0rax, если он даст конфиг от своих оптимизированных ядер, дабы посмотреть параметры. Т.к. ссылки в соответствующей теме не актуальны. Сам конфиг находится тут. Ниже его часть - которую я причисляю к части того, что может помочь в уменьшении нагрузку на процессор. tuned1.conf # # Automatically generated file; DO NOT EDIT. # Linux/x86 3.7.1-pf Kernel Configuration # # CONFIG_64BIT is not set CONFIG_X86_32=y CONFIG_X86=y CONFIG_INSTRUCTION_DECODER=y CONFIG_OUTPUT_FORMAT="elf32-i386" CONFIG_ARCH_DEFCONFIG="arch/x86/configs/i386_defconfig" CONFIG_LOCKDEP_SUPPORT=y CONFIG_STACKTRACE_SUPPORT=y CONFIG_HAVE_LATENCYTOP_SUPPORT=y CONFIG_MMU=y CONFIG_NEED_SG_DMA_LENGTH=y CONFIG_GENERIC_ISA_DMA=y CONFIG_GENERIC_HWEIGHT=y CONFIG_ARCH_MAY_HAVE_PC_FDC=y CONFIG_RWSEM_XCHGADD_ALGORITHM=y CONFIG_GENERIC_CALIBRATE_DELAY=y CONFIG_ARCH_HAS_CPU_RELAX=y CONFIG_ARCH_HAS_DEFAULT_IDLE=y CONFIG_ARCH_HAS_CACHE_LINE_SIZE=y CONFIG_ARCH_HAS_CPU_AUTOPROBE=y CONFIG_HAVE_SETUP_PER_CPU_AREA=y CONFIG_NEED_PER_CPU_EMBED_FIRST_CHUNK=y CONFIG_NEED_PER_CPU_PAGE_FIRST_CHUNK=y CONFIG_ARCH_HIBERNATION_POSSIBLE=y CONFIG_ARCH_SUSPEND_POSSIBLE=y # CONFIG_ZONE_DMA32 is not set # CONFIG_AUDIT_ARCH is not set CONFIG_ARCH_SUPPORTS_OPTIMIZED_INLINING=y CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y CONFIG_X86_32_SMP=y CONFIG_X86_HT=y CONFIG_ARCH_HWEIGHT_CFLAGS="-fcall-saved-ecx -fcall-saved-edx" CONFIG_ARCH_CPU_PROBE_RELEASE=y CONFIG_ARCH_SUPPORTS_UPROBES=y CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" CONFIG_HAVE_IRQ_WORK=y CONFIG_IRQ_WORK=y CONFIG_BUILDTIME_EXTABLE_SORT=y # # General setup # CONFIG_SCHED_BFS=y CONFIG_EXPERIMENTAL=y CONFIG_INIT_ENV_ARG_LIMIT=32 CONFIG_CROSS_COMPILE="" CONFIG_LOCALVERSION="" # CONFIG_LOCALVERSION_AUTO is not set CONFIG_HAVE_KERNEL_GZIP=y CONFIG_HAVE_KERNEL_BZIP2=y CONFIG_HAVE_KERNEL_LZMA=y CONFIG_HAVE_KERNEL_XZ=y CONFIG_HAVE_KERNEL_LZO=y CONFIG_KERNEL_GZIP=y # CONFIG_KERNEL_BZIP2 is not set # CONFIG_KERNEL_LZMA is not set # CONFIG_KERNEL_XZ is not set # CONFIG_KERNEL_LZO is not set CONFIG_DEFAULT_HOSTNAME="(none)" CONFIG_SWAP=y CONFIG_SYSVIPC=y CONFIG_SYSVIPC_SYSCTL=y CONFIG_POSIX_MQUEUE=y CONFIG_POSIX_MQUEUE_SYSCTL=y # CONFIG_FHANDLE is not set CONFIG_AUDIT=y CONFIG_AUDITSYSCALL=y CONFIG_AUDIT_WATCH=y CONFIG_AUDIT_TREE=y # CONFIG_AUDIT_LOGINUID_IMMUTABLE is not set CONFIG_HAVE_GENERIC_HARDIRQS=y # # IRQ subsystem # CONFIG_GENERIC_HARDIRQS=y CONFIG_GENERIC_IRQ_PROBE=y CONFIG_GENERIC_IRQ_SHOW=y CONFIG_GENERIC_PENDING_IRQ=y CONFIG_IRQ_DOMAIN=y # CONFIG_IRQ_DOMAIN_DEBUG is not set CONFIG_IRQ_FORCED_THREADING=y CONFIG_SPARSE_IRQ=y CONFIG_CLOCKSOURCE_WATCHDOG=y CONFIG_KTIME_SCALAR=y CONFIG_GENERIC_CLOCKEVENTS=y CONFIG_GENERIC_CLOCKEVENTS_BUILD=y CONFIG_GENERIC_CLOCKEVENTS_BROADCAST=y CONFIG_GENERIC_CLOCKEVENTS_MIN_ADJUST=y CONFIG_GENERIC_CMOS_UPDATE=y # # Timers subsystem # CONFIG_TICK_ONESHOT=y # CONFIG_NO_HZ is not set CONFIG_HIGH_RES_TIMERS=y # # CPU/Task time and stats accounting # CONFIG_TICK_CPU_ACCOUNTING=y CONFIG_IRQ_TIME_ACCOUNTING=y CONFIG_BSD_PROCESS_ACCT=y CONFIG_BSD_PROCESS_ACCT_V3=y CONFIG_TASKSTATS=y CONFIG_TASK_DELAY_ACCT=y CONFIG_TASK_XACCT=y CONFIG_TASK_IO_ACCOUNTING=y
Отредактировал: Hebeda, - 28.12.2012, 0:04
|
|
|
|
нуб2
|
27.12.2012, 23:33
Сообщение
|
![]() |
Цитата 10000 HZ авторы рекомендут 3к ставить а остальное пусть Коракс отвечает, раз просят :3 |
|
|
|
c0rax
|
28.12.2012, 15:40
Сообщение
|
![]() |
В таком случае, для тебя скорее самым оптимальным вариантом будет 300Hz.
И еще стоит UKSM в ядре включить. |
|
|
|
gentoos
|
29.12.2012, 0:40
Сообщение
|
|
|
|
|
|
|
330863
|
30.12.2012, 11:14
Сообщение
|
![]() |
Hebeda,
копай в сторону сервера кс а не ядра gentoos, надо сначало факты класть на стол, а не некому ненужная нагрузка при 0/32 |
|
|
|
Hebeda
|
30.12.2012, 14:20
Сообщение
|
|
|
|
|
|
|
berq
|
30.12.2012, 21:15
Сообщение
|
|
|
|
|
|
|
330863
|
5.1.2013, 12:27
Сообщение
|
![]() |
Hebeda,
это не изменение библиотек сервера, это патчинг памяти, каждый раз когда заходит игрок, библиотека дпрото ковыряет байты памяти |
|
|
|
![]() ![]() |