Как стать автором
Обновить
0
0
Саша aka mr.Scamp @scamp

DevOps

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

Обслуживание тысяч запросов в секунду на примере XBT Tracker

Время на прочтение5 мин
Количество просмотров8K
Недавно проводили тест, результаты которого показали, что одно приложение обрабатывает 2000 запросов в секунду на скромном сервере, где это было не единственной нагрузкой. При этом результат каждого запроса записывается в 3-5 таблиц в MySQL. Честно говоря, меня такой результат удивил, поэтому решил поделиться с хабрасообществом описанием архитектуры этого приложения. Подобный подход применим от баннерных показов до чатов и микроблогов, надеюсь кому-нибудь покажется интересным.

Во-первых, это приложение однопоточное. Всё делается одним процессом, работа с сокетами — неблокирующими epoll/select, никаких ожидающих ввода/вывода потоков (threads). С развитием HTTP, сначала появлением Keep-Alive, затем AJAX и набирающим популярность COMET, количество постоянных соединений с веб-сервером растёт, на нагруженных проектах измеряется тысячами и даже десятками тысяч, и если для каждого создавать свой поток (thread) со своим стеком и постоянно переключаться между ними — ресурсов сервера очень быстро не хватит.

Второй ключевой момент — что один SELECT… WHERE pk in (k1, k2, ..., kN) выполняется быстрее, чем несколько SELECT… WHERE pk=… Выполняя работу с базой данных большими пачками можно уменьшить не только число запросов в секунду, но и общую нагрузку.
Читать дальше →
Всего голосов 69: ↑67 и ↓2+65
Комментарии41

Как установить Debian Linux с USB flash

Время на прочтение3 мин
Количество просмотров202K
В этой статье вы узнаете, как создать USB flash диск, с которого можно будет установить Debian Linux.

Введение


Здесь я расскажу, как подготовить загрузочную USB флешку с Debian Lenny и установить с неё Debian на любой накопитель (IDE/USB HDD). Заметьте, что в этой статье описывается не то, как установить Debian на USB диск/флешку, а то, как создать «Инсталляционный USB диск». То есть результатом станет то, что вы сможете установить Debian Lenny с USB накопителя, вместо традиционного CD-ROM.

Существует несколько путей установки Debian Lenny:
Читать дальше →
Всего голосов 34: ↑28 и ↓6+22
Комментарии29

MySQL: Хранимые процедуры и динамический SQL

Время на прочтение1 мин
Количество просмотров51K
Если кто-либо из вас пытался сделать вроде бы очевидную вещь, а именно, создать sql запрос внутри процедуры передав ей имя таблицы, пользователя и т.п., то скорее всего натыкались на ошибку, о том, что нельзя использовать динамический sql.

SET @mytable='users';
SELECT * FROM @mytable;

Такая конструкция работать не будет. А что же делать, чтобы она заработала?
Читать дальше →
Всего голосов 69: ↑65 и ↓4+61
Комментарии26

Cisco: Пути сертификации неисповедимы

Время на прочтение3 мин
Количество просмотров39K
Свою первую статью я решил написать о том, о чем невольно задумывается каждый начинающий инженер Cisco: о Зарплате. Шучу, конечно о самообучении и Сертификации.

Читать дальше →
Всего голосов 51: ↑48 и ↓3+45
Комментарии70

VPN, полное покрытие

Время на прочтение5 мин
Количество просмотров31K
Представьте, ваша компания набирает обороты, растут продажи, происходит открытие множества филиалов, и эти филиалы активно работают друг с другом. А это значит что вам нужно все их друг с другом связать! В качестве оборудования у нас маршрутизаторы Cisco, что впрочем отменяет только конечные примеры настроек, если у вас Cisco нет, я находил в сети проект OpenNHRP.

Итак, начнем. Для начала свяжем центр с первым филиалом с использованием IPSEC.

Читать дальше →
Всего голосов 33: ↑30 и ↓3+27
Комментарии43

Избавляемся от дополнительных настроек jabber-клиента в Google apps

Время на прочтение2 мин
Количество просмотров7K
Судя по количеству плюсов к посту про использование google apps в качестве сервера jabber эта тема волнует хабрапользователей. Поэтому я решил внести свои пять копеек.

В документации гугла сказано, что при настройке кастомного клиента нужно вводить в свойствах соединения сервер talk.google.com и порт. Это очень не удобно, так как надо всё время помнить эти настройки, да и затрудняет настройку клиента вашими родственниками/знакомыми, которых пугает только одно слово порт :) Почему-то в документации к google apps этого не сказано, но прописать адрес и порт, которые должны быть использовать при подключении, можно в srv записях dns, да именно там, где вы указаывали адреса для федеративных сетей.

Добавляем запись типа:

_xmpp-client._tcp.yourdomain.com. IN SRV 5 0 5222 talk.google.com.


И вауля, клиент коннектится безо всяких танцев и дополнительных настроек.
некоторые технические замечания под катом
Всего голосов 51: ↑49 и ↓2+47
Комментарии67

Атаки на беспроводные сети. Часть 2

Время на прочтение3 мин
Количество просмотров20K
Это продолжение предыдущей статьи, об атаках на беспроводные точки доступа с WEP-защитой.

Во второй части цикла статей о безопасности беспроводных сетей мы рассмотрим некоторые нетрадиционные атаки на WEP.

Читать дальше
Всего голосов 54: ↑51 и ↓3+48
Комментарии35

ICQ-маскарад как универсальное решение проблем с изменениями протокола ICQ

Время на прочтение2 мин
Количество просмотров1.4K
Это мой первый пост на хабре, поэтому любые пожелания к стилю написания приветствуются.

В связи с периодическими изменениями протокола ICQ, не все сторонние клиенты успевают за ними, поэтому появилась необходимость в прослойке между сервером и клиентом, которую можно достаточно быстро подстраивать.

В данной статье я расскажу об реализации такой прослойки, в виде специализированного прокси — ICQGATE или ICQ-маскарад.
Читать дальше →
Всего голосов 97: ↑79 и ↓18+61
Комментарии155

Атаки на беспроводные сети. Часть 1

Время на прочтение5 мин
Количество просмотров69K
В прошлой статье о беспроводных сетях мы рассмотрели первый этап — сбор информации, или wardriving. Сейчас же, продемонстрируем несколько способов получения несанкционированного доступа к беспроводным сетям, а также рекомендации по защите от них.

Читать дальше
Всего голосов 123: ↑118 и ↓5+113
Комментарии98

Восстановление базы MySQL из бинарных логов

Время на прочтение2 мин
Количество просмотров43K
Базы данных иногда пропадают. Человеческий фактор и всё-такое… Если вы не делали бекапов (а надо бы) или они уже устарели, не отчаивайтесь, — есть ещё возможность восстановить утерянную информацию.

Подробнее
Всего голосов 65: ↑60 и ↓5+55
Комментарии28

Три первых шага к оптимизации LAMP

Время на прочтение2 мин
Количество просмотров5.4K
Бытует мнение, что связка LAMP (Linux+Apache+Mysql+PHP) не требует особой настройки и работает «из коробки». Это далеко не так. После того, как я долго убеждал товарища установить кеширующий акселератор PHP xcache, я решил провести небольшой эксперимент и попробовать выключить xcache на своём виртуальном сервере, находящемся под небольшой нагрузкой (около хита в секунду). В реальной жизни нагрузка на процессор мала, а вот память загружена сильно, т.к. её немного (256МБайт).

Результаты эксперимента превзошли все ожидания.
Читать дальше →
Всего голосов 82: ↑66 и ↓16+50
Комментарии84

Как зарегистрировать домен бесплатно

Время на прочтение2 мин
Количество просмотров149K
image
На удивление оказывается, что многие незнают о существовании зон, свободных для регистрации. Более того, многие платят за регистрацию доменов в этой зоне деньги — стандартная цена у известных регистраторов от 5 до 15 у.е. за то, что можно сделать самому бесплатно.

Вот какие домены можно зарегистрировать абсолютно бесплатно:
Украина
.net.ua, .od.ua, .org.ua, и множество вида регион.ua
Россия
.com.ru, .net.ru, org.ru, pp.ru, .msk.ru, spb.ru и множество остальных типа регион.ru

Ниже инструкция типа «домен бесплатно для чайников»

Читать дальше →
Всего голосов 231: ↑214 и ↓17+197
Комментарии97

Воспроизведение 3GP «для чайников»

Время на прочтение1 мин
Количество просмотров5.8K
По умолчанию, в дистрибутиве Ubuntu Linux нет возможности просмотреть файл 3gp со звуком.

Например, MPlayer проигрывает формат 3gp, но без звука, выдавая лишь предупреждение: «Cannot find codec for audio format 0x726D6173».

Проблема в библиотеках AMR. Опытные пользователи знают, что поиск в Google по ключевым словам «ubuntu+3gp+sound» даст ссылки на решения, опубликованные на Ubuntu Forums, суть которых заключается в пересборке FFmpeg и проигрывателя MPlayer с поддержкой AMR.

Однако, есть более простой способ.
Читать дальше →
Всего голосов 18: ↑17 и ↓1+16
Комментарии20

Собственный сервер Git на базе Ubuntu или Debian/GNU Linux

Время на прочтение2 мин
Количество просмотров81K
Я встречал в сети много tutorial'ов по установке своего сервера git как на gitweb, так и на webdav, но, увы, они либо были только по одному из вышеназванных пунктов, не освещая другой, либо банально не работали. Вчера возникла необходимость поднять свой сервер репозиториев. Потратил пару часов — поднял, теперь хочу поделиться опытом, потому что считаю проблему актуальной :)

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

Владельцам нетбуков посвящается: Unetbootin

Время на прочтение1 мин
Количество просмотров5.4K
Программа уже упоминалась на Хабре в блоге OpenSource

Unetbootin (http://unetbootin.sourceforge.net/) позволяет создать загрузочную USB-флешку из практически любого дистрибутива Linux/BSD. Впрочем, можно создать и загрузочный жесткий диск.
Существуют версии как для Linux, так и для Windows.
Работать просто до неприличия:
Выбрали источник → Выбрали загрузочное устройство → Нажали OK.
При этом в качестве источника можно выбрать дистрибутив и версию, программа сама скачает нужное. Можно выбрать ISO, а можно указать ядро и initrd руками с нужными опциями.

Окошко:
screenshot

PS. Поддерживается даже только что вышедшая Ubuntu 8.10.
Всего голосов 51: ↑41 и ↓10+31
Комментарии49

Cisco. Второй выпуск. Используем Packet Tracer 5.0 для моделирования сети. Скринкаст.

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

Сегодня в выпуске:


Packet Tracer 5. Изучаем возможности программы.
Выпуск выполнен в виде скринкаста.
За 20 минут вы познакомитесь с основными функциями PT5.

image

На повестке дня:

Читать дальше →
Всего голосов 28: ↑26 и ↓2+24
Комментарии62

Оптимизация MySQL запросов

Время на прочтение4 мин
Количество просмотров125K
В повседневной работе приходится сталкиваться с довольно однотипными ошибками при написании запросов.

В этой статье хотелось бы привести примеры того, как НЕ надо писать запросы.
Читать дальше →
Всего голосов 143: ↑132 и ↓11+121
Комментарии142

Неприятная особенность Ubuntu Linux для системных администраторов

Время на прочтение1 мин
Количество просмотров9.4K
Проводя реорганизацию дискового пространства для хранения информации на производственном сервере, работающем под управлением Ubuntu Linux, открылась очень интересная особенность: директория /var/run обязательно должна быть на корневой файловой системе!
Я собрал RAID-массив, перенес на него /var и вписал точку монтирования. При загрузке системы начали наблюдаться очень странные вещи: большая часть демонов автоматически перестала загружаться при старте, не запускается сеть (не создается /var/run/network) и подобные аномалии. При этом просмотр журналов ничего конкретного не дает.
Решение: создать на корневой ФС (/) каталоги /var/run (root:root, drwxr-xr-x) и /var/lock (root:root, drwxrwxrwt), что даст нормальный запуск, а сразу после старта /var, расположенный на массиве, будет корректно включен в систему.
Всего голосов 40: ↑32 и ↓8+24
Комментарии43

Кэширование и memcached

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

Этим постом хочу открыть небольшую серию постов по материалам доклада на HighLoad++-2008. Впоследствии весь текст будет опубликован в виде одной большой PDF-ки.



Введение


Для начала, о названии серии постов: посты будут и о кэшировании в Web’е (в высоконагруженных Web-проектах), и о применении memcached для кэширования, и о других применениях memcached в Web-проектах. То есть все три составляющие названия в различных комбинациях будут освещены в этой серии постов.
Читать дальше →
Всего голосов 76: ↑75 и ↓1+74
Комментарии72

Информация

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