вторник, 28 сентября 2010 г.

Супердома, оракулы и четыре/восемь гавков (SuperDomes, Oracles and four or eight gawks)...

Занимался сегодня переустановкой Линукса на своём домашнем компьютере и наткнулся на свои полуторагодичной давности упражнения по ускорению биллинга:

Заказчик: один из топ-3 операторов фиксированной связи России

Задача: подсчет интерконнект-биллинга

Описание задачи и текущий способ решения:

1) Берется месячный объем CDR от всех транзитных голосовых коммутаторов Заказчика (все CDR - нормализованные), около 160 000 000 записей, общий объем файлов ~16GB.

2) На основании обработки всех записей составляется следующий результирующий файл:

-------------------------------------------------- 
зонаА,зонаB,к-во вызовов,длительность 
7495,7812,1993029,3465931
..... 
---------------------------------------------------

содержащий пары зон (зона оригинатор - только Россия [четыре первые цифры номера A], терминирующая зона - Россия или зарубеж [плавающее количество цифр в начале номера B]), кол-во вызовов между зонами пары и длительность этих вызовов.

3) В настоящее время задача решается на HP SuperDome оборудованном 32 процессорами HP PA-RISC, 32GB RAM, с подключенным через 2*4Gbit/s хранилищем данных HP XP 12000. СУБД Oracle и ПО биллинга от флагманского разработчика российских билинговых систем из С-Пб. Стоимость системы исчисляется цифрой с шестью нулями в долларах.

4) Решение задачи занимает как минимум 8 часов (не считая времени, которое нужно для подъема всех CDR в базу данных, Заказчик постеснялся назвать это время).

Моё решение:

1) Весь исходный текст системы и результат прогона на тестовых данных (~4GB) представлен на картинке вот здесь.

2) Использовался мой офисный подстольный компьютер: Mac Pro, 2*2,.66GHz Dual Core Intel Xeon, 17GB RAM, 1*SATA HDD 7200 RPM. СУБД не использованы, вместо них четыре стандартных Unix-утилиты: gawk, make, cut, sort.

3) Результат - 5 мин 48 секунд. На полном объеме данных было бы 20 - 22 минуты. Если прогонять этот тест на 8 ядерной машине, то можно добится 2-кратного улучшения результата. SSD-диски и RAID могут дать еще выигрыш в два раза. Т.е. 5 минут - вполне достижимо. Я это проверю сегодня вечером дома на своем домашнем компьютере с описанными характеристиками (стоимостью $3200).

4) Итого - 96-кратное ускорение при минимум 312-кратном снижении затрат.

 

5) Проверил на домашней машине:

ASUS Z7S MB Two 2.0GHz Quad Core Intel Xeon 5405 24 GB FB-DIMM PC2-5300 DRAM LSI MegaRAID with 256MB cache RAID 0 with 2 * 64GB Samsung solid-state disks (SSD) Ubuntu Linux 8.10 64 bit

Как и ожидал, получил почти четырехкратное (по сравнению с Маком) ускорение: задача решается на том-же наборе тестовых данных за 1 минуту 23 сек. Снимок здесь. Таким образом, полный интерконнент на 16-ти гиговом наборе будет сделан за время примерно равное 5-6 минутам против 8 часов на 32-х процессорном HP SuperDome за 3 млн долларов (плюс неизвестная, но немалая сумма за лицензии Оракла и флагманского биллинга). 

P.S. После того, как я представил это решению ИТ-директору Заказчика, он попросил меня никому о нём не рассказывать - как-то ему неуютно стало. Понятно, что не он принимал решение о покупке супердомов и флагманского биллинга, и принималось оно не по причине суперэффиктивности этих решений, но ведь, при случае, с него могли и спросить... Вот такая вот модернизация страны, ёлки-палки... О механизмах принятия решений в нашем телекоме читайте открытое письмо Е.Юрченко.

2 комментария:

  1. А супердом от остальной нагрузки на эти 8 часов был освобожден?
    Вообще создание партицированной таблички, индексов + загрузка в нее 16 гб сырых данных + тупой запрос в лоб с аггрегацией и пересечения со справочником направлений все равно не дадут 8 часов и супердома. Максимум полчасика на обычном 4ядерном айбиэме series-x средней руки за $2-3k.
    Я практически уверен что в конечном итоге такое время решения вылилось из некомпетентности отдельновзятого студента, которому в топ-1-биллинг-софтваре доверили модуль обработки cdr.

    ОтветитьУдалить
  2. Освобожден, так как ничем другим ему не положено было заниматься - был куплен, что называется, "под задачу"...

    Насчет кривости рук студента - не уверен. По моему мнению, подкрепленному богатой практикой, весь набор средств ИТ в энтерпрайзе (и софт, и хард) заточен под раздувание расходного бюджета, а не на создание эффективных систем.

    ОтветитьУдалить