Menu

Какую версию FreeBSD лучше использовать?

Help
Gorec
2008-09-22
2013-03-27
1 2 3 > >> (Page 1 of 3)
  • Gorec

    Gorec - 2008-09-22

    Подскажите пожалуйста какую версию FreeBSD лучше использовать?
    и какие тонкости/специфика настройки ОС для использования в качестве сервера на много одновременных подключений ?
    (вроде
    net.graph.recvspace=81920
    net.graph.maxdgram=81920
    )

     
    • Alexander Motin

      Alexander Motin - 2008-09-22

      Чем свежее тем лучше. Лучше всего свежую 7-STABLE, с момента релиза много чего поменялось.
      Современным системам никакого особого тюнинга под mpd можно не делать.
      Тот что ты привел нужен далеко не всегда, хотя и вреда от него пожалуй не будет.

       
    • Sergey Pronin

      Sergey Pronin - 2008-11-27

      Добрый день.
      Что имеется ввиду под 7-STABLE?
      У меня с cvstag RELENG_7 получилась 7.1 Prerelease.
      На сколько я знаю 7.0-STABLE не будет.

       
      • Alexander Motin

        Alexander Motin - 2008-11-27

        RELENG_7 - это как раз и есть ветка CVS соответствующая 7-STABLE.
        STABLE  в отличие от RELEASE постоянно изменяется.
        В настоящий момент, в связи с подготовкой релиза 7.1, RELENG_7 - это 7.1-PRERELEASE.
        Когда релиз 7.1 выйдет - ее переименуют в 7.1-STABLE.

         
    • Sergey Pronin

      Sergey Pronin - 2008-11-27

      C 7.1-PRERELEASE был опыт запуска mpd? И какой?

       
      • Alexander Motin

        Alexander Motin - 2008-11-27

        Лучший. PPTP при куче сессий, например, в разы быстрее чем на 7.0 и 6.x.

         
    • sibdoma

      sibdoma - 2008-11-27

      Также провожу эксперименты с версией 7.1, но пока не очень успешны...
      Около недели назад обновил до 7.1 PRERELEASE. Имеем  около 600 активных сессий и при такой нагрузке mpd5.2 уходит в глубокий ступор. kill -9 не помогает, только жесткий reset машины

      При этом есть такая же машина, на которой система обновлялась сразу после выхода BETA 2.
      На ней кол-во сессий доходит до 1000, при этом проблем нет...
      Информации по поводу что же случилось в ноябре с PRERELEASE пока не нашел

       
    • sibdoma

      sibdoma - 2008-11-27

      1609 root       32  44    0 31964K 13644K select 1   0:00  0.63% mpd5 вот статус процесса с проблемной машины

      1741 root         55  47    0 38364K 22180K select 0   0:00 155.22% mpd5
      а вот с той, которая работает

      Разница в параметре WCPU. Почему на рабочей системе так зашкаливает, до 155?

       
    • sibdoma

      sibdoma - 2008-11-27

      1609 root       26   8    0 34268K 16068K nanslp 0   0:00  0.00% mpd5
      вот в такой статус уходит процесс при проблеме.

       
      • Artem Kim

        Artem Kim - 2008-12-06

        Видел и я такое.

        http://sourceforge.net/forum/forum.php?thread_id=2254056&forum_id=44693

        Выявить причину не смог. Симптомы очень похожи, правда машина остается доступна по ssh.

        У меня ~1000 активных туннелей трафик в пика допрыгивает до 200 Mb/s ~100 Kppp.

         
    • sibdoma

      sibdoma - 2008-11-27

      Забыл сказать, что при кол-ве соединение до 300 проблем не наблюдалось

       
    • sibdoma

      sibdoma - 2008-11-30

      На одной из машин собрал ядро без SMP пока проблем не наблюдалось...
      Интересная ситуация наблюдается с машиной описанной выше, с WCPU до 155. Сегодня видео цифру в 800. При этом по туннелям переставал ходить трафик, хотя они и не обрывались. информация в web-интерфейсе также была неадекватна (неверное кол-во сессий)...

       
      • Alexander Motin

        Alexander Motin - 2008-12-01

        WCPU более 100% может быть когда у приложения несколько активных тредов.
        Значение 800 в случае mpd может говорить об очень высоком темпе авторизации, возможно атаке.
        Как следует понимать "неверное кол-во сессий"?

         
    • sibdoma

      sibdoma - 2008-12-01

      >Как следует понимать "неверное кол-во сессий"?
      Кол-во ng-интерфейсов в системе и кол-во записей в web было разным (более 1000 в веб, около 300 реально).

      Все системы собранные с SMP падают кроме одной, обновленной 16 октября 2008.
      После пересборки ядер без SMP пока проблем не наблюдаю, но и производительность не та....

       
    • Sergey Pronin

      Sergey Pronin - 2008-12-01

      А какой шедулер в ядре используете? Просто интересно.

       
    • Sergey Pronin

      Sergey Pronin - 2008-12-01

      У меня с 7.1 пока опыт тоже не очень.

      mpd 5.2 с pppoe из CVS.
      клиентов 200-300 навешивается, трафик небольшой, мегабайт 15 дуплексом.

      И тут отваливается ssh, но машинка продолжает пинговаться. Консолью посмотреть ничего невозможно. Машинка находится в глубоком ступоре. Помогает резет.

      На машинке стоит квад, система собрана с SMP.
      В ядре NETGRAPH_* нет вобще, все подгружается модулями.
      Натит pf.
      Шейпит ipfw.

       
    • sibdoma

      sibdoma - 2008-12-01

      >А какой шедулер в ядре используете? Просто интересно.
      options         SCHED_ULE

       
    • sibdoma

      sibdoma - 2008-12-03

      Итак, с ядром без SMP две машины уже несколько дней стоят без зависаний.
      С SMP не падает только одна, описанная выше. Конфигурации у всех машин похожи (C2Q и C2D, матери Supermicro, сетевые em)...
      Планирую сделать клон этой системы и запустить на других машинах

       
    • Sergey Pronin

      Sergey Pronin - 2008-12-03

      Она хоть сколько-нибудь работает с 300 пользователями?

      Если не сложно, покажите пожалуйста начальную секцию из конфига, где options.

      И крутили ли вы какие-нибудь ручки sysctl?
      Например интересно в net.isr.direct что стоит?

       
    • sibdoma

      sibdoma - 2008-12-04

      Вот секция. Ядра на всех системах абсолютно одинаковые. Машина, собранная с SMP, назовем ее hostSMP стоит несколько дней при 600-700 пользователях и при примерно 70-80 тыс pps на двух интерфейсах. При этом другие виснут и при менее 300

      sysctl не крутил, net.isr.direct: 1.

      options         SCHED_ULE               # ULE scheduler
      options         PREEMPTION              # Enable kernel thread preemption
      options         INET                    # InterNETworking
      options         INET6                   # IPv6 communications protocols
      options         SCTP                    # Stream Control Transmission Protocol
      options         FFS                     # Berkeley Fast Filesystem
      options         SOFTUPDATES             # Enable FFS soft updates support
      options         UFS_ACL                 # Support for access control lists
      options         UFS_DIRHASH             # Improve performance on big directories
      options         UFS_GJOURNAL            # Enable gjournal-based UFS journaling
      options         MD_ROOT                 # MD is a potential root device
      options         NFSCLIENT               # Network Filesystem Client
      #options        NFSSERVER               # Network Filesystem Server
      #options        NFSLOCKD                # Network Lock Manager
      #options        NFS_ROOT                # NFS usable as /, requires NFSCLIENT
      #options        MSDOSFS                 # MSDOS Filesystem
      options         CD9660                  # ISO 9660 Filesystem
      options         PROCFS                  # Process filesystem (requires PSEUDOFS)
      options         PSEUDOFS                # Pseudo-filesystem framework
      options         GEOM_PART_GPT           # GUID Partition Tables.
      options         GEOM_LABEL              # Provides labelization
      options         COMPAT_43TTY            # BSD 4.3 TTY compat [KEEP THIS!]
      options         COMPAT_FREEBSD4         # Compatible with FreeBSD4
      options         COMPAT_FREEBSD5         # Compatible with FreeBSD5
      options         COMPAT_FREEBSD6         # Compatible with FreeBSD6
      #options        SCSI_DELAY=5000         # Delay (in ms) before probing SCSI
      options         KTRACE                  # ktrace(1) support
      options         STACK                   # stack(9) support
      options         SYSVSHM                 # SYSV-style shared memory
      options         SYSVMSG                 # SYSV-style message queues
      options         SYSVSEM                 # SYSV-style semaphores
      options         _KPOSIX_PRIORITY_SCHEDULING # POSIX P1003_1B real-time extensions
      options         KBD_INSTALL_CDEV        # install a CDEV entry in /dev
      options         ADAPTIVE_GIANT          # Giant mutex is adaptive.
      options         STOP_NMI                # Stop CPUS using NMI instead of IPI
      options         AUDIT                   # Security event auditing
      #options        KDTRACE_HOOKS           # Kernel DTrace hooks
      options         ALTQ
      options         ALTQ_CBQ        # Class Bases Queuing (CBQ)
      options         ALTQ_RED        # Random Early Detection (RED)
      options         ALTQ_RIO        # RED In/Out
      options         ALTQ_HFSC       # Hierarchical Packet Scheduler (HFSC)
      options         ALTQ_PRIQ       # Priority Queuing (PRIQ)
      options         ALTQ_NOPCC      # Required for SMP build
      options         DEVICE_POLLING
      options         HZ=2000
      options         SMP                     # Symmetric MultiProcessor Kernel
      device          apic                    # I/O APIC
      device          pf
      device          carp

       
      • Alexander Motin

        Alexander Motin - 2008-12-04

        Тебе и правда нужно столько опций отсутствующих в GENERIC? Ты используеш ALTQ, pf, carp? Не имею ничего конкретного против, но предполагаю, что если чего-то нет в GENERIC, то оно как минимум может быть менее исхожено юзерами, особенно в комбинации с другими опциями.
        Я в последнее время предпочитаю использовать ядра, максимально приближенные к GENERIC везде где это возможно. Для этого удобно использовать include, посмотри для примера конфиг PAE.

        В твоем случае зацикливается один из тредов ядра. Где именно это происходит, без какого-то дебаггера или профайлера установить сложно, особенно если проявляется не везде и не особо предсказуемо.
        Потому я бы начал с выкидывания всего лишнего и включения отладки. Например, включить больше логов mpd и смотреть на каком именно месте он встанет. Можно в mpd включить именно логгирование всех обращений к netgraph. Так как циклится другой тред, это не покажет где именно это происзодит, но это косвенно может показать какие netgraph ноды это затрагивает, вызывая подлипаниe запроса от mpd на локе.
        Можно попробовать воспользоваться профайлером. Правда hwpmc в семерке еще не умеет работать с Core2, а kgmon по слухам не всегда работает нормально с SMP. Но попробовать последний можно. До момента непосредственной активации, я не заметил влияния профайлинга на производительность. Правда прийдется собрать ядро с жестко вкомпиленными всеми необходимыми модулями, так как gprof не умеет их подгружать.

         
    • Sergey Pronin

      Sergey Pronin - 2008-12-05

      Александр, а ты какую BSD используешь, 32 или 64 бит?

       
      • Alexander Motin

        Alexander Motin - 2008-12-05

        На роутерах 32. На серверах, особенно с большим количеством памяти - 64.

         
    • Sergey Pronin

      Sergey Pronin - 2008-12-08

      Пока вижу, что у трех человек одинаковые проблемы.

      Саш, в mpd есть какая-то проблема или это надо ковырять ядро, sysctl и прочее?

       
      • Alexander Motin

        Alexander Motin - 2008-12-09

        На сколько я понимаю - что-то зацикливается где-то в ядре, из-за чего mpd без конца ждет ответа на запрос кnetgraph. Не думаю что тут сам mpd виноват. Проблема вполне может найтись где-то в netgraph или в совершенно другой подсистеме ядра.

        Надо как-то найти что зациливается. Когда это повторится - попробовать выдрать не на долго из роутера езер, чтобы поглядеть не спадет ли загрузка проца. Если нет - значит действительно что-то циклит. Как понять что именно - вопрос не простой. Или как-то правильно свалить ядро в корку или прицепиться к нему дебагером удаленно, или запрячь какой-то профайлинг. У меня нет готовых рецептов.

         
1 2 3 > >> (Page 1 of 3)

Log in to post a comment.

MongoDB Logo MongoDB