Как стать автором
Обновить
350
0
Коробов Михаил @kmike

Пользователь

Отправить сообщение

Сервер на стероидах: FreeBSD, nginx, MySQL, PostgreSQL, PHP и многое другое

Время на прочтение16 мин
Количество просмотров40K
Нравится мне эта картинка, у меня, вот никогда такие красивые графики в какти не получались =(

Введение


С момента написания мной предыдущей статьи по оптимизации этой связки прошло довольно много времени. Тот многострадальный Pentium 4 c 512Мб памяти, обслуживающий одновременно до тысячи человек на форуме и до 150,000 пиров на трекере уже давно покоится на какой-нить немецкой, свалке, а клуб сменил уже не один сервер. Всё сказанное в ней всё ещё остаётся актуальным, однако есть вещи которые стоит добавить.
Статья большая, так что будет поделена на логические блоки:

0. Зачем вообще что-то оптимизировать?
  
1. Оптимизация ОС (FreeBSD)
  1.1 Переход на 7.х 
  1.2 Переход на 7.2
  1.3 Переход на amd64
  1.4 Разгрузка сетевой подсистемы
  1.5 FreeBSD и большое кол-во файлов
  1.6 Softupdates, gjournal и mount options
  
2. Оптимизация фронтенда (nginx)
  2.1 Accept Filters
  2.2 Кеширование
  2.3 AIO
  
3. Оптимизация бэкенда
  3.1 APC
  3.1.1 APC locking
  3.1.2 APC hints
  3.1.3 APC fragmentation
  3.2 PHP 5.3
  
4. Оптимизация базы данных
  4.1 MySQL 
  4.1.1 Переход на 5.1
  4.1.2 Переход на InnoDB
  4.1.3 Встроеный кеш MySQL - Query Cache
  4.1.4 Индексы
  
4.2 PostgreSQL
  4.2.1 Индексы
  4.2.2 pgBouncer и другие.
  4.2.3 pgFouine
  
4.3 Разгрузка базы данных
  4.3.1 SphinxQL
  4.3.2 Не-RDBMS хранилище
  4.4 Кодировки
  4.5 Асинхронность
  
Приложение. Мелочи.
  1. SSHGuard или альтернатива.
  2. xtrabackup
  3. Перенос почты на другой хост
  4. Интеграция со сторонним ПО
  5. Мониторинг
  
 6. Минусы оптимизации

Кому что-нибудь из этого списка интересно, жмём сюда...
Всего голосов 375: ↑368 и ↓7+361
Комментарии105

Защищаемся от HTTP DDoS и прочих Хабраэффектов

Время на прочтение5 мин
Количество просмотров10K
Простой способ защиты от HTTP DDoS — включить syn-cookies и заблокировать подонков. Но что делать если атакует 5к-10к хостов да еще и с динамическими IP? Тут нам на помощь придет frontend-backend архитектура c промежуточным кэшированием! Почему с промежуточным кэшированием? А потому что в моем случае от шквала запросов от frontend'а backend умирал унося за собой систему.
Читать дальше →
Всего голосов 160: ↑152 и ↓8+144
Комментарии55

Проект на энтузиазме, часть 2: Реалии

Время на прочтение6 мин
Количество просмотров625
Первая часть находится здесь. Там я писал про процесс разработки, главным образом про людей. Эта статья будет посвящена реалиям работы сайта в сети, конкретным цифрам дохода и расхода, упоминаний сайта и посещаемости.

Старт

Итак, проект Холиварс.ру запущен. Запущен удачно, он что называется выстрелил. Это когда вести о проекте сами собой разносятся людьми, которых он впечатлил. После публикации обзоров только на хабре и ещё одном ресурсе, без вложения денег в рекламу — более тысячи упоминаний в блогосфере, десяток упоминаний на новостных сайтах, даже сюжеты по ТВ, отчего у нас волосы выпучились и глаза встали дыбом — по Эксперт-ТВ и в программе Телепорт на МТВ.
Читать дальше →
Всего голосов 70: ↑64 и ↓6+58
Комментарии76

Свершилось! Colocation за 1000 рублей

Время на прочтение2 мин
Количество просмотров5.3K
После опубликования статьи Intel Atom colocation последовали баталии тут на хабре, и в логове хостеров (на hostobzor-е). Ценой нечеловеческих усилий :-) таки удалось убедить некоторые компании, что это(colocation неттопов) может быть выгодно. Предлагаю читателям хабра поучаствовать в первом размещении неттопов в ДЦ (М-101, Москва) — подробности под катом.

Напоминаю — это возможность поиметь свой сервер с 2-4Гб памяти, нормальным каналом и дисковым IO по цене завалящего VPS.

Кстати, хороший пример того, как хабр может сделать мир лучше :-)
Читать дальше →
Всего голосов 96: ↑91 и ↓5+86
Комментарии214

Раздобываем бесплатные шрифты для русского языка, чтобы пережить Вторую типографскую революцию в Паутине

Время на прочтение7 мин
Количество просмотров33K
На минуту обратите свои мысли вспять, к прошлому, к завершившемуся тысячелетию. Отдайте должное утренней заре Всемирной Паутины, потому что заря эта готова ужé окончательно потухнуть, уступая место куда более яркому сиянию нового дня.

Первая типографская революция произошла во Всемирной Паутине настолько давно, что приходится производить поиски, чтобы установить подробности. Кажется достоверным то, что пишет Ian Graham: в Netscape Navigator 2.0 впервые появился элемент <font> (тогда он позволял задавать только размеры шрифта, и только в условных единицах), а в Internet Explorer 3 у этого элемента появился атрибут face, позволявший задавать начертание, задавать шрифтовое семейство. Википедия подсказывает, что Netscape Navigator 2.0 появился в марте 1996 года, а Microsoft Internet Explorer 3 — в августе того же года. В язык HTML версии 3.2 даже не входил атрибут face, хотя и упоминалося, что такой атрибут существует.

Тринадцать лет назад.

Все эти тринадцать лет для начертания текста сайтов в основном использовались несвободные шрифты, являющиеся частью операционных систем и офисных пакетов. Сайтам приходилося гадать о том, какие шрифты установлены у читателя, а какие не установлены, и какова вероятность того или другого, какие шрифты можно считать безопасными. Сочинялись специальные плагины jQuery и создавались специальные страницы, способные выяснить набор шрифтов на компьютере читателя. Особый дух того времени прекрасно передал despoth, сочинив превосходную серию статей о такой веботипографике, которая основана именно на подборе несвободных шрифтов (часть I часть II часть III часть IV часть V).

Наконец, это время кончилось: явствуют, зримо явствуют признаки Второй типографской революции, связанной с приходом @font-face.

Джон Даггетт сочинил познавательную статью о том, как все мы совсем скоро (после появления Safari 3.1, Firefox 3.5, Opera 10) сможем использовать загружаемые шрифты во всех популярных браузерах, а не только в одном наиболее популярном.

Марк Пилгрим грубо обрисовал ситуацию с лицензированием собственнических шрифтов. Ситуация эта немало напоминает глухой тупик. Даже создателям прекрасной демонстрации возможностей Firefox 3.5, чтобы изготовить страницу, пришлось специально связаться со шрифтопроизводителями и изготовлять такие особые (усечённые) версии использовавшихся шрифтов, чтобы их не было смысла копировать нелицензионно. А вон там предлагают раздавать особые паутинные обкусанные ужатые копии купленных шрифтов (которые сам покупатель вывешивать не имеет никого права, а только ссылаться). Остроумно. Открывает широкую дорогу в сторону Большого Брата: типа как недавно читальники Kindle удаляли книги Оруэлла за нелицензионность (даже честно купленные — просто оставляя стоимость их на счету покупателя в уплату). Так и тут. Внешний шрифт может неожиданно подохнуть, даже купленный заранее.

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

Англоязычному люду этот переход дастся достаточно просто: достаточно обратиться к белке-шрифтелке, чтобы получить буквально сотни шрифтов, каждый из которых можно без лицензионных проблем использовать в своей работе, на своём сайте. Тем же, кто пользуется русским языком (или, тем паче, другими языками на основе расширенной кириллицы), придётся гораздо, гораздо похуже. Свободных кириллических шрифтов совсем мало, а русского аналога белки-шрифтелки, похоже, вообще не существует в природе.

Я собираюсь поэтому перечислить прямо тут все свободные шрифты, подходящие для использования на сайтах, написанных по-русски. Не стесняйтеся дополнять мой список.

Список пошёл.
Всего голосов 160: ↑137 и ↓23+114
Комментарии85

Robot Grammar Nazi: Робот, говори правильно!

Время на прочтение3 мин
Количество просмотров2.6K
Даже когда люди общаются с автоматизированной системой, они делают множество выводов о том, что за «персонаж» с ними общается. Эти выводы складываются из многих характеристик, в том числе качества голоса, набора слов, способа их произнесения и т.п.

Это явление представляет возможность компании создать конкретный образ и расширить свой бренд посредством грамотного проектирования персонажа, являющегося визитной карточкой системы.
Некоторые дизайнеры думают, что нужно убедить пользователя в том, что с ним разговаривает человек…

Читать дальше →
Всего голосов 38: ↑33 и ↓5+28
Комментарии17

Есть идея!

Время на прочтение1 мин
Количество просмотров1.3K
image
У меня появилась идея. Среди нас есть программисты, верстальщики, дизайнеры и т.д. У всех есть какая-то интересная идея, которую бы они хотели реализовать, но не могут, потому что не обладают достаточными знаниями в той или иной области.

Например, дизайнер придумал мегасайт, придумал дизайн, но не знает как написать техническую часть.

Или пользователь айфона придумал нужную и полезную программу, но опять же не знает, как её написать и отправить в AppStore
Читать дальше →
Всего голосов 74: ↑54 и ↓20+34
Комментарии351

Динамическое создание форм на основе данных из базы в Django

Время на прочтение3 мин
Количество просмотров9.9K
Началось всё с того что надо было часто создавать однотипные формы и сохранять введённые данные в базу. По суте форма всегда одна и та же — «Заявка на регистрацию» — но в зависимости от мероприятия поля в ней разные.

Обязанности подготовки формы надо было переложить на администратора сайта, поэтому было принято решение создать механизм управления формами через админский интерфейс Django. Так появилось приложение CDBForms.
Читать дальше →
Всего голосов 14: ↑13 и ↓1+12
Комментарии9

prettyPrint

Время на прочтение1 мин
Количество просмотров9K
imageТе из вас кто следит за автором на Github могли заметить, что недавно он добавил новый проект под названием «prettyPrint».
«prettyPrint» — браузерный дампер переменных для JavaScript аналогичный cfdump для ColdFusion. Он позволяет выводить на экран объекты любого типа в виде таблиц для просмотра во время отладки.
Посмотреть пример.
Читать дальше →
Всего голосов 44: ↑38 и ↓6+32
Комментарии16

ООО «Снежинка» — Часть 1. Пошаговое руководство по регистрации.

Время на прочтение7 мин
Количество просмотров3.5K

Прелюдия


Близкое общение с налоговой инспекцией иначе как с оргией я сравнить не могу. Поэтому вступление названо именно так. Причем болезненные ощущения сей процесс доставляет не только девственникам начинающим бизнесменам, но и людям с опытом. Впрочем, статья адресована первым.

После обсуждения с партнером будущего бизнеса и выбора движка для интернет-магазина, встал вопрос о регистрации фирмы. Каталог еще не наполнен, сайт поисковые системы еще в лицо не видели, поэтому особенной спешки в регистрации не было, но и тянуть не хотелось. Все же первые клиенты могут прийти и из оффлайна, а мы даже счет выставить не сможем.
Читать дальше →
Всего голосов 176: ↑170 и ↓6+164
Комментарии82

Ускоряем выборку произвольных записей MySQL

Время на прочтение3 мин
Количество просмотров33K
Последнее время оживилась публика с вопросом случайной выборки из таблицы. Решений по оптимизации полно, и нового сейчас я вам наверное ничего не покажу, просто напомню про основные методы оптимизации — упрощение запроса и индексацию. Без предисловий про фриленсеров, сразу к делу ;)

Читать дальше →
Всего голосов 59: ↑50 и ↓9+41
Комментарии22

Чистый шаблонизатор — PURE

Время на прочтение1 мин
Количество просмотров6.6K
Совсем недавно открыл для себя интересный шаблонизатор под названием PURE.

Им удобно пользоваться, у него хороший сайт, а также поддержка самых разных JavaScript-библиотек (Prototype, jQuery, MooTools, Sizzle, скоро Dojo).
пример использования
Всего голосов 32: ↑17 и ↓15+2
Комментарии42

Рисуем иконки животных

Время на прочтение1 мин
Количество просмотров12K
Иконки животных

Частенько мне приходится слышать вопросы на тему рисования иконок. Методик их рисования большое множество. Кто-то рисует ручкой на стикере, а потом сканит и шопит. Кто-то пользуется Пэйнтером и планшетом, кто-то обходится исключительно вектором, а кто-то исключительно Фотошопом… Я привык рисовать иконки мышкой в Фотошопе, а планшет при этом выполняет чисто декоративную функцию на моем рабочем столе. Итак, веселый зоопарк.

Пошаговая инструкция:
Читать дальше →
Всего голосов 209: ↑196 и ↓13+183
Комментарии104

Недостартап, рунет.

Время на прочтение2 мин
Количество просмотров664
Всем привет. Ненавижу недоделанные проекты, ненавижу надписи вроде «оставте ваш email тут и мы вас известим…» итп. Однако, данный проект, возможно, будет кому-то полезным. Т.к. денег на его развитие пока нет, показываю что есть.
http://whoisyou.ru, если кто заинтересовался инвестированием — изучайте 404 страницу проекта. Их там много =)
Идея родилась давно. Поддерживал несколько больших проектов, которых постоянно парсили. Найти IP не проблема, но понять по IP кто это был — интересней, но сложнее. Все мои попытки найти ip2domain сервис ничем не кончились =( Сделать свой подобный сервис тогда казалось бредом, пинговать 2 миллиона доменов…
Читать дальше →
Всего голосов 81: ↑63 и ↓18+45
Комментарии91

Памятка дизайнеру сайтов

Время на прочтение10 мин
Количество просмотров245K
Вторая версия статьи, расширенная и дополненая.

Большая часть готовилась для моего выступления на «РИТ: Клиентские технологии», куда я, к сожалению, не доехал.

 

Памятка дизайнеру сайтов

К сожалению огромная армия даже опытных, «модных» и эффектных дизайнеров забывают, что результатом их творчества должен быть сайт, а не только «супер-скриншот» годный только для портфолио.

Первоначально эта памятка писалась мною для внутреннего пользования но, обрастая материалами, выросла в самостоятельную статью. Америку я не открыл, а просто собрал воедино и сформулировал ряд требований, которые должен учитывать дизайнер в процессе проектирования и оформления сайта.

Читать дальше →
Всего голосов 453: ↑444 и ↓9+435
Комментарии231

Songsterr — онлайн-проигрыватель гитарных табулатур

Время на прочтение2 мин
Количество просмотров21K
В конце февраля мы разместили пост о запуске первого релиза стартапа Songsterr. Благодаря Хабру, мы получили приток посещаемости и, что важно, обратную связь от пользователей. После этого обзор проекта был опубликован на killerstartups.com и нескольких других популярных блогах. В общей сложности проект посетили 65 тысяч человек, при этом для нас стал приятной неожиданностью большой процент аудитории из Бразилии, Франции и Германии, где проект засветился на телевидении.

Основываясь на отзывах пользователей, мы пришли к выводу, что наиболее перспективное развитие проекта — это помощь в обучении игре на гитаре.

Наш второй релиз — это онлайн-проигрыватель гитарных табулатур.
Читать дальше →
Всего голосов 2: ↑2 и ↓0+2
Комментарии185

Prolog, введение

Время на прочтение13 мин
Количество просмотров102K
Довольно оживленное обсуждение предыдущей стати (http://habrahabr.ru/blogs/programming/47416/) показало, что тема пролога оказалась интересна сообществу.
Чтобы заинтересовать еще более читателя и вместе с тем облегчить ему начало работы с этим языком, я решил написать немного начальных данных о прологе.

Кратко основные особенности.
Читать дальше →
Всего голосов 78: ↑64 и ↓14+50
Комментарии41

Приручение py-rrdtool

Время на прочтение4 мин
Количество просмотров13K
Как говорится в одной древней мудрости: можно вечно наблюдать три вещи: как горит огонь, как течёт вода и как рисует графики rrdtool. Этот пост как раз о последнем.
И так, что же такое rrdtool? rddtool — замечательная утилита, которая позволяет управлять данными, хранимыми в формать rrd (round-robin database). Данный формат примечателен тем, что изначально предназначен для хранения периодичной информации, причём так, что размер самой БД получается фиксированным (довольно небольшим) независимо от количества данных. При этом сохраняется возможность получать отчёты за продолжительные отрезки времени с произвольной точностью. Наибольшее распространение данная система нашла в системах мониторинга, где, как говорится, лучше один раз увидеть картинку, чем 7 раз прочитать логи. В конце статьи Вы сможете получить нечто, похожее на

пример


Читать дальше →
Всего голосов 30: ↑29 и ↓1+28
Комментарии12

Место для холиваров

Время на прочтение2 мин
Количество просмотров774
Привет, хабралюди!

В интернетах кто-то неправ!

Не так давно Vass озвучил на хабре идею стартапа для холиваров: сайта, посетители которого могли бы упражняться в спорах на любые темы, в особенности «вечные». Trollim.ru — моя попытка создать такой сайт.
Попытка не пытка
Всего голосов 127: ↑91 и ↓36+55
Комментарии143

Узнаем оператора и регион мобильного телефона

Время на прочтение4 мин
Количество просмотров16K
image
Как то гуляя в интернете наткнулся на интересную ссылку — Коды мобильных операторов. И очень мне захотелось иметь такую базу локально.
Под катом дамп mysql базы, php код для её использования и скрипт парсер для обновления.
Читать дальше →
Всего голосов 82: ↑68 и ↓14+54
Комментарии57

Информация

В рейтинге
Не участвует
Откуда
Екатеринбург, Свердловская обл., Россия
Работает в
Дата рождения
Зарегистрирован
Активность