aix6 + сеть


Главная Форумы POWER Systems AIX/Hardware aix6 + сеть

В этой теме 12 ответов, 3 участника, последнее обновление  andrewk 5 года/лет, 6 мес. назад.

  • Автор
    Сообщения
  • #15988

    Alex
    Участник

    Собственно, даже не вопрос, а так, посетовать.

    Упорно не дружим мы с шестым аиксом. Работал себе кровавый ынтырпрайз (saprouter) на 5.3 и горя не знал. Поскольку сделан сий софт через одно место (назовём это избытком старания), он является прекрасной лакмусовой бумажкой для выявления неочевидных проблем, что и произошло после переезда на шестёрку.

    Для справки: saprouter это такое поделие от SAP AG, функционал коего покрывает любой нормальный прокси (HTTP+CONNECT, SOCKS, etc). Но энтерпрайзность, к сожалению, диктует на каждый чих рожать своих уродцев.

    Дано: раздел на p570, 6.1.7.3, сеть честная, диски через vio. Памяти полно(свободной). 1 процессор P5. Порядка 1500-2000 соединений, хотя сам по себе трафик небольшой (10-20МБс), поскольку общение диалоговое, большую часть времени соединение проводит в idle.

    На 5.3 профиль нагрузки был стандартный. Больше клиентов — больше user time, всё в сумме жило на 0.3 процессора P5. Сейчас клиентов больше процентов на 30, но при этом целый процессор и стабильные 30-50% systime. Т.е. львиную долю времени мы проводим в ядре.

    Понятно, что бОльшая доля вины тут лежит на конкретном приложении, умудрились ведь так написать, но ведь и айбиэмеры что-то перемудрили, поскольку с 5.3 таких проблем не было. Трейс никакой крамолы не показывает, кстати, ну обилие poll-ов, ничего особенно страшного. Из ядерных процессов отличаются потреблением gil (что-то сетевое) и xmgc, но информации по ним не найдёшь.

  • #15989

    andrewk
    Участник

    lparstat -H 2

  • #15990

    andrewk
    Участник

    и можно заодно с маленькой h — lparstat -h 2

  • #15991

    Alex
    Участник

    Легко!
    Оцени разницу %user и %sys 😉

    [code]
    # lparstat -h 2

    System configuration: type=Shared mode=Capped smt=On lcpu=2 mem=4864MB psize=14 ent=1.00

    %user %sys %wait %idle physc %entc lbusy vcsw phint %hypv hcalls
    —— —— —— —— —— —— —— —— —— —— ——
    0.5 23.8 0.0 75.7 0.28 28.4 15.0 3650 10 56.8 6296
    0.5 23.2 0.0 76.3 0.27 27.1 16.2 3618 10 46.9 6426
    3.4 50.8 0.0 45.7 0.60 60.5 28.0 3862 34 36.7 16994
    2.1 50.6 0.0 47.3 0.59 59.0 31.5 4410 41 39.4 9533
    1.6 38.6 0.0 59.8 0.45 45.4 24.8 4298 12 42.9 8136
    0.7 27.7 0.0 71.6 0.33 32.5 16.4 4593 19 49.8 8037
    0.4 22.6 0.0 77.0 0.26 26.5 12.2 3994 14 45.2 6738
    1.1 28.1 0.0 70.9 0.34 33.6 16.5 3834 16 48.1 12152
    0.8 30.8 0.0 68.4 0.36 36.0 20.8 4554 16 50.5 8328
    0.8 26.8 0.0 72.3 0.32 31.8 15.8 4662 18 47.6 8376
    0.5 21.4 0.0 78.1 0.25 25.4 11.8 4362 22 49.5 7114
    2.3 23.5 0.0 74.1 0.30 29.6 13.0 4448 12 58.4 8602
    1.5 28.8 0.0 69.7 0.35 34.8 16.5 4526 14 43.2 13874
    1.2 29.1 0.0 69.7 0.35 35.0 18.5 5280 30 57.9 9804
    0.9 31.2 0.0 67.9 0.37 36.9 19.8 5106 32 45.6 9544
    0.8 30.9 0.0 68.3 0.36 36.3 17.2 4470 18 44.4 8736
    1.8 51.7 0.0 46.5 0.60 60.0 28.5 4098 46 41.3 9418
    4.4 55.2 0.0 40.4 0.66 65.6 38.8 4540 36 35.6 16154
    2.0 45.7 0.0 52.2 0.53 53.5 30.2 4744 18 39.1 10406
    0.9 28.7 0.0 70.5 0.34 33.8 18.8 5040 26 44.0 9158
    0.8 26.3 0.0 72.9 0.31 31.3 16.5 4890 18 48.2 8520
    %user %sys %wait %idle physc %entc lbusy vcsw phint %hypv hcalls
    —— —— —— —— —— —— —— —— —— —— ——
    0.9 25.2 0.0 73.9 0.30 30.2 15.5 4352 32 50.8 7366
    1.1 22.8 0.0 76.1 0.28 27.6 12.2 3644 22 49.1 11394
    7.1 36.6 0.0 56.2 0.49 49.3 29.4 2800 17 42.2 47034
    0.6 23.9 0.0 75.4 0.28 28.3 13.8 4204 18 57.0 7174
    0.5 25.0 0.0 74.5 0.29 29.4 11.5 4322 12 52.6 6882
    0.6 28.0 0.0 71.4 0.33 32.7 17.3 3637 34 52.8 6406
    1.7 44.4 0.0 53.8 0.53 52.7 25.6 3805 20 44.1 13034
    1.7 50.2 0.0 48.1 0.59 58.9 28.5 3688 26 49.4 8268
    1.9 41.1 0.0 57.1 0.49 48.5 30.9 4237 15 41.7 8381
    1.4 36.6 0.0 62.1 0.43 43.2 20.2 5030 22 44.8 9878
    1.4 36.4 0.0 62.3 0.45 45.0 20.8 4446 22 40.9 8720
    [/code]

  • #15992

    Alex
    Участник

    [code]# lparstat -H 2

    System configuration: type=Shared mode=Capped smt=On lcpu=2 mem=4864MB psize=14 ent=1.00

    Detailed information on Hypervisor Calls

    Hypervisor Number of %Total Time %Hypervisor Avg Call Max Call
    Call Calls Spent Time Spent Time(ns) Time(ns)

    remove 0 0.0 0.0 0 3541
    read 0 0.0 0.0 0 2545
    nclear_mod 0 0.0 0.0 0 0
    page_init 6 0.0 0.0 413 10216
    clear_ref 0 0.0 0.0 0 0
    protect 0 0.0 0.0 0 1356
    put_tce 0 0.0 0.0 0 3797
    xirr 869 0.1 0.2 1143 7166
    eoi 851 0.0 0.1 547 2230
    ipi 0 0.0 0.0 0 1020
    cppr 0 0.0 0.0 0 1222
    asr 0 0.0 0.0 0 0
    others 0 0.0 0.0 0 43174
    enter 6 0.0 0.0 194 2507
    cede 2142 42.8 99.7 223350 38686687
    migrate_dma 0 0.0 0.0 0 0
    put_rtce 0 0.0 0.0 0 0
    confer 0 0.0 0.0 0 0
    prod 281 0.0 0.0 576 4767
    get_ppp 1 0.0 0.0 3713 4687
    set_ppp 0 0.0 0.0 0 0
    purr 0 0.0 0.0 0 0
    pic 1 0.0 0.0 483 1508
    bulk_remove 0 0.0 0.0 0 5397
    send_crq 0 0.0 0.0 0 5922
    copy_rdma 0 0.0 0.0 0 0
    get_tce 0 0.0 0.0 0 0
    send_logical_lan 0 0.0 0.0 0 0
    add_logicl_lan_buf 0 0.0 0.0 0 2877
    ———————————————————————————
    ^CHypervisor Number of %Total Time %Hypervisor Avg Call Max Call
    Call Calls Spent Time Spent Time(ns) Time(ns)

    remove 0 0.0 0.0 0 3541
    read 0 0.0 0.0 0 2545
    nclear_mod 0 0.0 0.0 0 0
    page_init 8 0.0 0.0 728 10216
    clear_ref 0 0.0 0.0 0 0
    protect 0 0.0 0.0 0 1356
    put_tce 0 0.0 0.0 0 3797
    xirr 773 0.1 0.2 1160 7166
    eoi 763 0.1 0.1 611 2230
    ipi 0 0.0 0.0 0 1020
    cppr 0 0.0 0.0 0 1222
    asr 0 0.0 0.0 0 0
    others 0 0.0 0.0 0 43174
    enter 8 0.0 0.0 589 2507
    cede 2149 55.8 99.7 196972 38686687
    migrate_dma 0 0.0 0.0 0 0
    put_rtce 0 0.0 0.0 0 0
    confer 0 0.0 0.0 0 0
    prod 118 0.0 0.0 534 4767
    get_ppp 1 0.0 0.0 4687 4687
    set_ppp 0 0.0 0.0 0 0
    purr 0 0.0 0.0 0 0
    pic 1 0.0 0.0 781 1508
    bulk_remove 1 0.0 0.0 3217 5397
    send_crq 0 0.0 0.0 0 5922
    copy_rdma 0 0.0 0.0 0 0
    get_tce 0 0.0 0.0 0 0
    send_logical_lan 0 0.0 0.0 0 0
    add_logicl_lan_buf 0 0.0 0.0 0 2877
    ———————————————————————————
    [/code]

  • #15993

    andrewk
    Участник

    производит вид не сильно нагруженной системы. я бы проверил еще, какие LPAR’ы есть на той же железке (в том же пуле) и не требуется ли им слишком много ресурсов. обрати внимание — %sys повышается одновременно с hcalls (хотя и не всегда синхронно), т.е. большая часть времени, которое проводится в кернеле, уходит на общение с гипервизором. И при этом большая часть из гипервизорного времени уходит на hcall cede — «отдать ресурсы». Понаблюдай за всеми LPAR’ами на железке в комплексе — как они зависят друг от друга. А так да — в AIX 6.1 был изменен планировщик задач. Причем вроде даже не в оригинальном 6.1, а где-то в TL4. Поэтому распределение процессов между AIX 5.3 и AIX 6.1 разное.

  • #15994

    Alex
    Участник

    Нене, не в ту сторону копаешь. Раздел с 5.3 жил на этой же самой машине и горя не знал, ну т.е. не недостаток ресурсов и не пики соседних точно. Я ж говорю — чего то перемудрили в шестёрке внутрях, это меня весьма печалит.

    Планировщик тут тоже не при делах, как мне кажется. Там не тысяча процессов активных крутится, а до десятка. Где-то в сетевом стеке что-то кардинально переписали и не в лучшую сторону.

  • #15995

    andrewk
    Участник

    в ту 😉 разница, как ты верно заметил — 5.3 и 6.1. 6.1 активнее предлагает свои ресурсы другим, особенно если они не используются (по мнению AIX или точнее — его разработчиков).

    по процессам gil и xmgc инфа в гугле находится быстро 😉

    GIL is a kernel process, which does TCP/IP timing. It handles
    transmission errors, ACKs, etc. Normally it shouldn’t consume too much
    CPU, but it can take quite a lot of CPU when the system is using the
    network a lot (like with NFS filesystems which are heavily used).
    .
    The kproc gil runs the TCP/IP timer driven operations. Every 200ms, and
    every 500ms the GIL thread is kicked to go run protocol timers. With TCP
    up (which is ALWAYS the case), TCP timers are called which end up
    looking at every connection on the system (to do retransmission, delayed
    acks,etc). In version 4 this work is all done on a multi-threaded kproc
    to promote concurrency and SMP scalability.gil.

    GIL is one of the kprocs (kernel processes) in AIX 4.3.3, 5.1 and 5.2.
    Since the advent of topas in AIX 4.3.3 and changes made to the ps
    command in AIX 5.1, system administrators have become aware of this
    class of processes, which are not new to AIX. These kprocs have no
    user interfaces and have been largely undocumented in base
    documentation. Once a kproc is started, typically it stays in the
    process table until the next reboot. The system resources used by any
    one kproc are accounted as kernel resources, so no separate account is
    kept of resources used by an individual kproc.
    .
    Most of these kprocs are NOT described in base AIX documentation and
    the descriptions below may be the most complete that can be found.
    .
    GIL term is an acronym for «Generalized Interrupt Level» and was
    created by the Open Software Foundation (OSF), This is the networking
    daemon responsible for processing all the network interrupts, including
    incoming packets, tcp timers, etc.
    .
    Exactly how these kprocs function and much of their expected behavior
    is considered IBM proprietary information.

    xmgc is a kernel process that deals with garbage collection of xmalloc
    allocations.

  • #15997

    Alex
    Участник

    Про приоритет разбазаривания ресурсов над потреблением в шестёрке не знал, спасибо. Тогда на dedicated партиции согласно этой гипотезе подобного непотребства наблюдаться не должно, правильно?

    Но сомневаюсь всё ж, что всё так просто. Шестёрка уже довольно активно у нас стоит с сапомораклом, много бы где уже вылезло, не только тут.

  • #15999

    andrewk
    Участник

    тут не то, чтобы приоритет над потреблением. как только %user полезет вверх, %sys должен по идее стать меньше (с учетом, конечно, кучи всяких других параметров, таких как weight всех LPAR’ов на машине, кол-ва виртуальных процессоров и что там еще разработчики намешали). Но на dedicated (если donated отключен) LPAR такого эффекта действительно быть не должно. Попробуй включить — в худшем случае, сразу же отсечешь эту гипотезу, как невероятную 🙂

  • #16004

    Oleg
    Участник

    так на Power5 donation для dedicated не поддерживается
    но судя по данным, приведенным топикстартером, AIX 6.1 таки пытается 🙂
    если это была не чистая инсталляция 6.1, а именно обновление 5.3->6.1 то ряд параметров нужно впоследствии выставлять в дефолтные значения (для 6.1) руками

  • #16013

    Alex
    Участник

    >так на Power5 donation для dedicated не поддерживается

    Так про это и речь. Но я в гипотезу andrewk всё-равно не верю, у меня достаточно смешанных инсталляций aix6-aix5.3 на больших машинах, где «странного» поведения не наблюдается.

    Это была чистая инсталляция шестёрки.

  • #16015

    andrewk
    Участник

    sorry, про p5 я как-то забыл 🙂 В моем хозяйстве их уже не осталось. Там естественно нет Dedicated Donating.

    asddsa, а попробуй еще пару команд выполнить и output нам сюда на обозрение запостить. Только сначала найди FS с достаточным объемом 😉

    trace -a -o /tmp/trace.out ; sleep 10 ; trcstop
    curt -i /tmp/trace.out

    если за 10 секунд данных недостаточно — можно повторить тоже самое на 30 сек или больше. Главное, чтобы места хватило.

Для ответа в этой теме необходимо авторизоваться.