CAT | Рамблер
Странно, что этого до сих пор никто не написал: App::Pm2Port
Создаёт порт из перлового модуля и отправляет его разработчикам FreeBSD.
Как работать:
pm2port CSS::Croco
Тестируем и находим баги.
Для начала расскажу, как обычно работают сервера:
- Создаётся сокет, который слушает порт
- Вызывается системный вызов accept, который берёт первого клиента из очереди соединений, а если его нет – то блокирует приложение до тех пор, пока он не появится
- Приложение что-то делает с этим клиентом и в конце концов с ним прощается
- goto пункт два
nginx и lighttpd использует вместо accept функции select/kevent/epoll, которые позволяют работать со многими клиентами одновременно, но это уже отдельная история (к асинхронным веб-серверам accept-фильтры применимяются точно так же)
Accept-фильтры – это модули ядра FreeBSD, которые не говорят, что сокет готов до тех пор, пока не выполнится какое-то условие. Я нашёл только два фильтра:
- dataready – accept блокирует сокет до тех пор, пока в него прийдут данные. Когда мы получаем сокет, мы уже точно можем из него что-то считать
- httpready – сокет блокируется до тех пор, пока не прийдёт полный GET/HEAD запрос. Соответственно, нам не надо тратить время на переключение контекста, если запрос ещё не собрался.
Остановимся на фильтре httpready
Буферизирует он только GET и HEAD запросы, так как в POST/PUT может прийти 600мегабайтный порнофильм.
Итак, подключаем модуль accf_http:
kldload accf_http
echo 'accf_http_load=”YES”' >> /boot/loader.confДалее нужно изменить работу с сокетом — установить опцию httpready:
struct accept_filter_arg afa; bzero(&afa, sizeof(afa)); strcpy(afa.af_name, "httpready"); setsockopt(sok, SOL_SOCKET, SO_ACCEPTFILTER, &afa, sizeof(afa));
Результаты тестов
Так как существует мнение, что accept-фильтры бесполезны, мы решили провести тестирование. Веб-сервер был выбран AnyEvent::HTTPD, клиент – ab. Итак, результаты:
- локальная машина, 10000 запросов, concurrency = 4: httpready даёт прирост в 10%
- локальная сеть, 10000 запросов, concurrency=1000: httpready даёт прирост в 10%
- локальная сеть, 10000 запросов, concurrency = 4: прирост в 25%
- локальная сеть, 1000 запросов, concurrency = 1: в два раза!
В боевых условиях, при наличии GPRS, 256k и прочего позора цивилизации, скорость ещё увеличится.
Настройка веб-серверов
В apache 1.3+ и nginx accept-фильтры поддерживаются.
Apache под FreeBSD изначально содержит такую конфигурацию:
AcceptFilter http httpready AcceptFilter https dataready
и менять её не стоит.
А вот в настройках сервера nginx стоит добавить опцию
accept_filter "httpready";
Ссылки
- статья Игоря Сысоева
- man accf_http
- man accf_data
Этот пост посвящен распиздяям, которые не могут заставить себя работать. Я из таких людей. Ведь кроме исправления говна, которое я накодировал, есть всякие вконтактики, фейсбуки, твиттеры и остальные убивалки времени. И я нихрена не успеваю.
Как только я пришёл в Рамблер, я осознал, что из-за постоянного распиздяйства в Приватбанке, я вконец разленился. И начал заставлять себя работать. В этом мне помог отличный плагин к Firefox – LeechBlock.
Он умеет
- блокировать заразные сайты (vkontakte,twitter, etc)
- блокировать сайты по времени – например, с 13:00 до 24:00 у меня заблокирована вся гадость
- во время блокировки можно запретить изменение настроек и доступ к about:config
- можно ставить лимиты, напоимер: 5 минут в час на почту, 5 минут в день – на вконтакте
Вот и сейчас себе его поставил…
Сегодня заметил, что прошёл уже год, как Я работаю в Рамблере…
По этому поводу я напишу немного букав. Как сейчас помню фразу, сказанную моим начальником, АП Витязем:
- Пока у вас нет семьи и детей, вы не привязаны ни к чему. Можете в любой момент взять и уехать куда-то.
Может быть я не передал фразу дословно, но смысл был таким. Через пару месяцев я поехал на UA Web в Киев, где с отвисшей челюстью слушал о том, как у Яндекса и других компаний всё охуенно. И подумал, а не отправить ли мне резюме в Яндекс.
Отправил. Для симметрии его же послал в Рамблер и Mail.ru. Кто-то из этой счастливой тройки (скорее всего Mail.ru) позвонил моему начальнику из Приватбанка, за что я получил изрядных пиздюлей
Когда я ехал в Маскву, я надеялся, что мне удастся найти работу в Яндексе. Ну и собеседование в Рамблере для галочки пройти стоило.
Тогда же я устроил аукцион прикольный. В стиле “пойду к тем, кто больше заплатит”. Яндексоиды предложили больше, но мне уже хотелось в Рамблер. Ведь в Рамблере был мой любимый Catalyst и DBIx::Class
И я ни разу не пожалел об этом решении… К чему это я? Да ни к чему, просто понос мыслей.
Но если вы такой зануда, что не заснули, читая мой пост, то я задам вам вопрос:
Пригодилось ли вам реально в жизни высшее образование? С реальными историями, желательно.
Для начала расскажу историю. В далёком 2004-м году чувак по имени Vladi Belperchinov-Shabanski “Cade” написал модуль Algorithm::FloodControl. В те дремучие века люди не знали, что такое ООП и их заботила поддержка Perl4
Сделал апгрейд этому модулю. Сделал его ООП-шным, добавил поддержку backend-ов для Cache::Memcached::Fast, Cache::FastMmap. Сделал и для Cache::Memcached, ибо не сложно три строки написать, но когда 15 процессов инкрементят запись, то срабатывает от силы 10% инкрементов. Ниипу почему.
Наверное, ещё будут бока с документацией. Это я поправлю.
— Ага, ось ці хлопці…Я роблю особливе, вуличне чаклунство…Хочете побачити трішечки чаклунства?
— Ненене, Дэвид Блейн, отвали от нас….Мы вообще по-украински не понимаем!!
— А, то ви москалі? А що робите в Тернополі?
— Отвали, демон! Что хотим, то и делаем! И не москали, а русские.
— А ви впевнені, що ви русскіє? Ось ти…Ти впевнений в цьому?
— Ну блин….Уверен конечно.
— А що це ти тоді вирядився так? Вишиванка …ше й оселедець козацький на голові.
— Что??? Какая еще вышиванка? В рот мне ноги, демон, что ты наделал? Верни нам наши шмоты…фак мой мозг!
— Доречі, хлопці…я щось забув вдома свій годинник….Не підкажете котра година?
— Ееее….За вісім хвилин шоста….Фак мій моск, демон…що ти наробив….я говорю українською!!! Очманіти можна…Ноги мені до рота! Зупинись….відчепись від нас, добре? Ну що ще? Що ти пиришся, демон?
— Та я оце думаю…Ви плануєте святкувати майбутній день народження Степана Бандери?
— Якого Бандери? Цього злісного націоналіста, який чинив звірства серед мирного населення? Ой…що це я несу всяку московську пропаганду…Це ж справжній незламний патріот нашої України….Слава Україні! Відсвяткуємо як треба, з розмахом!
— Героям слава)) Ну бувайте…Годі з вас… я бачу, що ви хороші хлопці…
Lenta.ru: Бизнес: Антимонопольщики не разрешили купить “Бегуна”
Федеральная антимонопольная служба (ФАС) отказала компании Kokuna Holdings Limited в приобретении у компании Rambler Media агентства контекстной рекламы “Бегун”. Об этом говорится в официальном пресс-релизе ФАС.
от себя могу добавить: в ФАС пидарасы. всё. до единого.
