The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]




Версия для распечатки Пред. тема | След. тема
Новые ответы [ Отслеживать ]
Потолок при отдече mp4 стрима, !*! kozakd, 19-Янв-10, 17:58  [смотреть все]
Есть сервер
CentOS release 5.4
ОЗУ 6ГБ
nginx-0.8.32 + nginx_mod_h264_streaming-2.2.7
Софтовый рейд

mdadm -D /dev/md0
/dev/md0:
        Version : 0.90
  Creation Time : Tue Dec 29 14:37:01 2009
     Raid Level : raid5
     Array Size : 11721117696 (11178.13 GiB 12002.42 GB)
  Used Dev Size : 976759808 (931.51 GiB 1000.20 GB)
   Raid Devices : 13
  Total Devices : 14
Preferred Minor : 0
    Persistence : Superblock is persistent

    Update Time : Tue Jan 19 16:53:13 2010
          State : clean
Active Devices : 13
Working Devices : 14
Failed Devices : 0
  Spare Devices : 1

         Layout : left-symmetric
     Chunk Size : 256K

           UUID : 5bf1f5bf:c2887ccb:7e0b4288:7af24ae2
         Events : 0.6

Вечереом, при пиковой нагрузке, и траффике порядка 400-600 Mbps система не тянет.
И самое печальное, большой "CPU context switches" временами доходит до 80К - 120К в сек.

Вот... и это только начало
----total-cpu-usage---- -dsk/total- -net/total- ---paging-- ---system--
usr sys idl wai hiq siq| read  writ| recv  send|  in   out | int   csw
47   4  36  11   0   2|  61M 3960k|   0     0 |3522B 2360B|9551    14k
88   5   0   4   0   2|  30M  824k| 762k   27M|   0     0 |  13k   44k
86   4   1   7   0   2|  39M 3560k| 713k   25M|   0     0 |  12k   41k
87   4   0   7   0   2|  32M  808k| 653k   23M|   0     0 |  12k   37k
86   4   0   8   0   2|  35M    0 | 616k   21M|   0     0 |  11k   36k
84   4   3   5   0   2|  26M  684k| 676k   24M|   0     0 |  12k   39k
85   4   3   6   0   2|  28M    0 | 698k   25M|   0     0 |  12k   42k

Прошу подсказать, как побороть context switching?

  • Потолок при отдече mp4 стрима, !*! ACCA, 02:49 , 20-Янв-10 (1)
    [...]
    >Вечереом, при пиковой нагрузке, и траффике порядка 400-600 Mbps система не тянет.
    >
    >И самое печальное, большой "CPU context switches" временами доходит до 80К -
    >120К в сек.

    [...]
    >Прошу подсказать, как побороть context switching?

    Не надо его бороть. Каждый context switch = прерывание (в том числе по таймеру), либо вызов I/O из user space. При 13 дисках в soft RAID и гигабитном Ethernet почти на пределе - вполне нормально, а для процессора старше PII - не особая нагрузка. Народ пишет, что PIII/1GHz легко тащит сотни тысяч.

    Ищи другое узкое место.

    Для начала можешь попробовать iperf с размером пакета = MTU (который у тебя 1500?). Получилось 750Mbps? Можешь дальше не искать. Jumbo Frames не помогут - раутеры по дороге к юзерам наверняка несогласные.

    С помощью iptraf собери статистику по размеру пакетов. Что сможешь выжать из сети через iperf с размером пакета = среднему из iptraf?

    dstat вроде бы показывает, что есть активный swap in/out. 3.5KB это за какое время? За секунду?

    Что показывает iostat в колонке %util?

    • Потолок при отдече mp4 стрима, !*! kozakd, 10:16 , 20-Янв-10 (2)
      У меня не фря, и там нет iperf и iptraf :(
      На этом рахделе XFS, и сначало было 2ГБ памяти, добил до 6ГБ - немного полегчало.

      iostat в колонке %util по этим дискам показывает 60-80 %% :(
      Это при отдаче контента юзерам, а если качать один файл, то разгоняется почти до 600Mbps и при этом утилизация дисков в рамках 15%.
      Отдача идёт через nginx, и вчера было порядка 700 Active connections из них 99% "Writing"

      CPU 2 шт. Intel(R) Xeon(R) CPU E5420  @ 2.50GHz

      • Потолок при отдече mp4 стрима, !*! ACCA, 18:17 , 20-Янв-10 (4)
        >У меня не фря, и там нет iperf и iptraf :(

        В .rpm и .deb они тоже есть, в соляре собери из исходников либо возьми с blastwave.org. Мастдай выкинь и поставь операционную систему.


        >На этом рахделе XFS, и сначало было 2ГБ памяти, добил до 6ГБ
        >- немного полегчало.
        >
        >iostat в колонке %util по этим дискам показывает 60-80 %% :(

        Итого - сетка забита под 80%, а то и больше, диск забит под 80%. Чем же ты недоволен? ;)

        Посмотри в логах, что тянут - если сможешь добить памяти, чтобы верхние 5% активного контента влезло в кэш - снизишь нагрузку на диск в два раза.

        >Это при отдаче контента юзерам, а если качать один файл, то разгоняется
        >почти до 600Mbps и при этом утилизация дисков в рамках 15%.

        Эффективно работает кэш = не приходится гонять головы туда-сюда. Разнообразные параллельные чтения штука более тяжёлая.


        >Отдача идёт через nginx, и вчера было порядка 700 Active connections из
        >них 99% "Writing"

        Ну что же ты хотел? На каждого по мегабиту - вот и кончился твой гигабитный канал.


        По фотографиям не меряйся - они маленькие, трафик на порядки меньше.

    • Потолок при отдече mp4 стрима, !*! kozakd, 10:24 , 20-Янв-10 (3)
      Да.. вот ещё. :)
      На этом же серваке есть ещё один массив.
      На нём хранятся фотки, и отдаются другим nginx'ом и без проблем.
      Но всего на сервере получается 30.000К файлов :)
      Вот с чего я спрашиваю про память. :)

           Raid Level : raid5
           Array Size : 11721071616 (11178.09 GiB 12002.38 GB)
        Used Dev Size : 1953511936 (1863.01 GiB 2000.40 GB)
         Raid Devices : 7
        Total Devices : 7
      Preferred Minor : 1
          Persistence : Superblock is persistent

          Update Time : Wed Jan 20 09:05:33 2010
                State : active
      Active Devices : 7
      Working Devices : 7
      Failed Devices : 0
        Spare Devices : 0

               Layout : left-symmetric
           Chunk Size : 256K




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру