Pull to refresh
0
0

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

Send message

Strace

Reading time7 min
Views126K
В течение минуты думал над заголовком, так ничего и не придумал…
Strace. Наверное нет того человека, который бы не слышал про strace. Если кто не слышал, то strace — это утилита, отслеживающая системные вызовы, которые представляют собой механизм трансляции, обеспечивающий интерфейс между процессом и операционной системой (ядром). Эти вызовы могут быть перехвачены и прочитаны. Это позволяет лучше понять, что процесс пытается сделать в заданное время. Перехватывая эти вызовы, мы можем добиться лучшего понимания поведения процессов, особенно если что-то идет не так. Функциональность операционной системы, позволяющая отслеживать системные вызовы, называется ptrace. Strace вызывает ptrace и читает данные о поведении процесса, возвращая отчет. Детали можно прочитать в вики или официальном man. Собственно вот, ну и речь конечно же о Linux. В других ОС свои аналоги.
Так вот, лично для меня strace это как последняя инстанция. Когда уже все логи просмотрены, все debug и verbose ключи включены, а причина проблем так и не обнаружена, я достаю из широких штанин запускаю strace. Есть одно но, strace это такой инструмент который вовсе не является серебряной пулей, которая тут же все покажет и расскажет. Для работы с strace требуется наличие определенных знаний и чем шире и глубже эти знания тем больше вероятность обнаружения проблемы.
В интернетах полно вводных статей, где описываются примеры запуска strace. Я же в этой статье покажу частные проблемы и их решение с помощью strace.
Читать дальше →

Простой мониторинг нагрузки на сервер в реальном времени с веб-интерфейсом

Reading time2 min
Views81K
Сегодня существует довольно много профессиональных инструментов для мониторинга состояния серверов с обилием настроек, плагинов, поддержкой сразу множества машин и т.д., это известные Nagios, Zabbix, Munin, Cacti и многие другие.


Но в этом посте речь пойдет об очень маленьком и простом, но от этого не менее полезном инструменте: инструменте для мониторинга Scout Realtime. Этот написанный на Ruby open source проект позиционируется разработчиками как современная замена консольной утилите top с выводом статистики использования диска, памяти, сети, CPU и запущенных процессов. Все это отображается в реальном времени с плавными графиками. Во время диагностики работы сервера, иногда полезно пару минут понаблюдать за показателями, и проследить их изменение во времени (в отличие от гирлянды мерцающих чисел в терминале, отображающих данные исключительно на текущий момент).
Читать дальше →

Строим свой Gmail с куртизанками и преферансом

Reading time7 min
Views205K

Вместо предисловия


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

Итак, в этой статье я расскажу о том, как я поднимал и настраивал на своем сервере почту, календарь, контакты, RSS-аггрегатор и, в качестве бонуса, хранилище файлов.

Читать дальше →

Балансировка нагрузки с LVS

Reading time6 min
Views102K
Итак, у вас есть нагруженный сервер и вам вдруг захотелось его разгрузить. Вы поставили и залили такой же (такие же), но пользователи упорно ходят на первый. В этом случае конечно же нужно задуматься о балансировке нагрузки.

Читать дальше →

Свое облачное хранилище на основе ownCloud

Reading time3 min
Views249K

ownCloud — система для организации хранения, синхронизации и обмена данными, размещенными на внешних серверах.
В отличии от Dropbox и ему подобных, ownCloud отличается предоставлением пользователю полного контроля над своими данными — информация размещается на подконтрольных пользователю системах. Доступ к данным в ownCloud может осуществляться при помощи web-интерфейса или протокола WebDAV.

Особенности ownCloud


  • Open source;
  • Поддержка шифрования передачи данных;
  • Автоматическое резервное копирование;
  • Поддержка WebDAV позволяет организовать доступ к данным из любых операционных систем;
  • Поддержка синхронизации данных с другими web-приложениями, поддерживающими протокол remoteStorage;
  • Управление пользователями и группами;
  • В web-интерфейс встроены средства для работы с синхронизированной адресной книгой, календарем-планировщиком, коллекцией фотографий, архивом музыкальных произведений;
  • Для ownCloud подготовлен сервер Ampache, что позволяет организовать потоковое вещание музыки;

Читать дальше →

Большое файловое хранилище для маленькой такой компании

Reading time7 min
Views174K
Думаю, что любая группа разработчиков рано или поздно сталкивается с такой, казалось бы, примитивной задачей как
  • вики, учет задач, тикетов, дефектов;
  • система управления версиями/репозиторий;
  • файловый сервер.


И если в случае первого и второго предлагается множество прекрасных средств, в частности для багтрекинга существуют известные каждому Redmine, Trac, а для управления версиями Subversion, Git, Mercurial, то для грамотной организации файлового хранилища приходится в очередной раз изобретать велосипед.
Читать дальше →

Снижаем затраты на использование AWS EC2

Reading time3 min
Views12K
На странице стоимости компонентов EC2 на Амазоне есть одна строчка, на которую сначала можно не сильно обратить внимание, но которая может привести к серьезным финансовым затратам — Data Transfer, трафик. Если аренду инстансов и EBS-томов можно запланировать и контролировать, то трафик предсказать довольно сложно, а игнорировать его не даст ежемесячный счет)

Для примера: средний новостной сайт, 30 тысяч посещений в сутки, его вполне потянет небольшой small или даже micro instance. Возьмем полный размер страницы 2 мегабайта, месячный трафик тогда будет (без учета закэшированного контента) — 30000 * 0.002 * 30 = 1800 GB или $216. Получается стоимость Data Transfer даже больше аренды самого инстанса! На S3 ситуация с ценами на трафик точно такая же.

Что же делать!?

Синхронизация файлов между серверами в кластере

Reading time4 min
Views12K
Хостинг приложений с высокой нагрузкой и постоянно растущим трафиком требует дополнительной мощи и настроек для обработки большого потока запросов. Решением в данном случае может послужить добавление серверов в окружение для поддержки полноценного функционирования приложения.

В результате вы сталкиваетесь с другой трудностью — более сложная установка по сравнению с использованием одного сервера. Основной проблемой является то, что такие приложения как WordPress, Drupal, Joomla, Liferay, Redmine и т.п. по умолчанию сохраняют все загружаемые файлы только на одном сервере и не синхронизируют их между серверами в кластере. Другими словами, только сервер, который обрабатывал запрос на загрузку файла, будет содержать новый контент.

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

синхронизация файлов
Читать дальше →

Cкоростная синхронизация миллиарда файлов

Reading time7 min
Views98K
Есть несколько идентичных серверов (4 ноды) на Amazon EC2 с Ubuntu. Каждый генерирует и хранит у себя на диске кэш, который хотелось бы синхронизировать. Но простой rsync тут не подойдет — файлов несколько миллиардов, nfs — слишком медлителен, и т. д. Полный список рассмотренных вариантов с пояснениями ниже.

К тому же, время от времени нужно удалять устаревшие файлы сразу на всех серверах, что пока делается вручную и занимает несколько суток. Вопрос наиболее быстрой для такого Use Case файловой системы планирую описать позже. Оговорюсь только, что по нескольким причинам была выбрана XFS.

После теста нескольких кластерных технологий и файловых систем, по совету старшего товарища, решили использовать тот же rsync, но в связке с inotify. Немного поискав в интернете готовое такое решение, дабы не изобретать велосипед, наткнулся на csyncd, inosync и lsyncd. На хабре уже была статья о csyncd, но он тут не подходит, т.к. хранит список файлов в базе SQLite, которая вряд-ли сможет сносно работать даже с миллионом записей. Да и лишнее звено при таких объемах ни к чему. А вот lsyncd оказался именно тем, что нам и было нужно.

UPD: Как показала практика, необходимо ощутимое измение и дополние в тексте. Я решил внести лишь незначительные правки в основную часть, а новыми выводами поделиться в конце статьи.
Читать дальше →

Отказоустойчивая архитектура из двух веб-серверов на примере Debian Squeeze

Reading time10 min
Views18K
Мне поступила задача организовать отказоустойчивость веб-приложения из двух серверов. Веб-приложение включает в себя статические файлы и данные в СУБД MySQL.
Основное требование заказчика — веб-приложение должно быть всегда доступно и в случае сбоя в течении 5 минут сбой должен быть восстановлен.
2 сервера, территориально разнесенные в разных ЦОДах, должны удовлетворить данное требование.

Подробности

Единый интерфейс управления рекламой на сайте

Reading time4 min
Views18K
Монетизация собственного проекта – всегда вызов. Самый простой вариант: поставить на него тизерную рекламу или контекст, и наблюдать, сколько денег капает в карман. Но этот же вариант часто оказывается разочаровывающим – заработок не стоит усилий по его приобретению. Так ли плоха тизерная/контекстная реклама для монетизации сайтов? Скорее всего, вы просто не умеете её готовить.


В зависимости характера вашего трафика, его источников и состава, будет меняться прибыльность той или иной рекламной сети
Читать дальше →

PHP и различные виды NoSQL

Reading time11 min
Views69K


В последнее время набирают популярность различные NoSQL базы данных. Эта статья начиналась как изучение особенностей графитовой графовой базы данных Neo4j. Но, в процессе подбора информации, мне захотелось систематизировать информацию о NoSQL решениях и о графовых базах данных, в частности.
В ходе этого небольшого исследования, были выбраны для подробного рассмотрения СУБД, успешно применяющиеся в области Web. И, поскольку в тегах присутствует «PHP», я выбирал СУБД, которые уже можно использовать с этим языком.

Читать дальше →

Дайджест интересных новостей и материалов из мира PHP № 34 (13 — 26 января 2014)

Reading time5 min
Views23K


Предлагаем вашему вниманию очередную подборку с ссылками на новости и материалы.

Приятного чтения!
Читать дальше →

Архитектура высоконагруженных приложений. Масштабирование распределенных систем. Часть первая

Reading time18 min
Views102K
Некоторое время назад зам.главы московского офиса разработки Badoo Алексей Рыбак и ведущие IT-Компот записали выпуск подкаста «Архитектура высоконагруженных приложений. Масштабирование распределенных систем".

Сейчас мы сделали расшифровку подкаста, привели ее в удобный для чтения вид и разбили на 2 части.

О чем говорили в первой части:
  • Общая информация о проекте Badoo: стек технологий, характер и объем нагрузки, посещаемость.
  • Горизонтальное масштабирование проекта:

— веб-сервера, кеширование, мониторинг etc;
— подводные камни при масштабировании проекта;
— масштабирование баз данных, как правильно делать шардинг.

Читать расшифровку подкаста

Биллинг в большом проекте

Reading time8 min
Views50K
Существуют разные способы «монетизировать» проект. Но у них есть одна общая составляющая ― то, как деньги переходят из кошелька пользователя на счет организации. Сегодня мы расскажем о том, как организован прием платежей в Badoo и что можно встретить на рынке платежных шлюзов. Сразу предупреждаем, что в статье вы не найдете конкретных цифр по обороту средств компании, но все остальное будет не менее интересно.

Что такое «биллинг»


Для нас биллинг ― это всё, что связано с получением денег от пользователей: конфигурация цен, страница приема платежей, непосредственно прием и обработка платежей, оказание оплаченных услуг, различные промоакции и, конечно же, мониторинг всего вышеописанного.
Читать дальше →

Дизассемблинг и приручение лампового гитарного звука

Reading time4 min
Views66K

Как все начиналось


Порядка 5 лет назад, я начал свое шествие по миру ламповой техники. За это время было собраны десятки разных схем и прослушано порядка пяти десятков «оригинальных» ламповых усилителей. В результате, сформировалось четкое понимание «как должно звучать» и какой «гибкостью» должен обладать аппарат.
В процессе знакомства с разными гитарными усилителями, долгое время, меня не оставлял в покое звук «головы» от фирмы Krank. Но в тот момент, к сожалению, оценить его и попробовать — было невозможно. Продажи начались только-только в Штатах, а живых экземпляров в Санкт-Петербурге не было. Было принято решение во что бы то ни было, достать столь «лакомый кусочек». К счастью нашлись подходящие люди которые смогли купить и привезти его в Питер. Долгие 14 дней ожидания и моя прелесть стояла на пороге квартиры. Счастью не было предела. Чем больше я на нем играл, тем больше мною овладевала мысль: «Как же устроена эта штука».
В один прекрасный момент, собравшись с духом, я твердо решил: “Я должен узнать «тайну » этого чуда”.

Шли дни, летели недели. Кусочек за кусочком вырисовывалась схема.

image
Читать дальше →

Побочный результат: проверяем Firebird с помощью PVS-Studio

Reading time7 min
Views14K
Firebird and PVS-Studio
Сейчас мы заняты большой задачей. Мы хотим провести сравнение четырёх анализаторов кода: Cppcheck, PVS-Studio и Visual Studio 2013 (встроенный анализатор кода). Для этого мы решили проверить не менее 10 открытых проектов и проанализировать отчёты, которые выдадут анализаторы. Это очень трудоёмкая задача и пока она не завершена. Но так как ряд проектов уже проверен, то про некоторые из них можно написать статьи. Чем я сейчас и займусь. Для начала опишу, что интересного удалось найти с помощью PVS-Studio в Firebird.
Читать дальше →

HipHop VM: разведка боем под Debian 7 + Nginx + Symfony2

Reading time6 min
Views18K
Последнее время много «шума» вокруг HipHop VM и kPHP: каждый социальный гигант своё детище хвалит. Больше всего интересовала связка, указанная в заголовке. О kPHP что-то говорить ещё рано, хотя уже заранее известно, что ООП не поддерживается. А вот HipHop VM уже можно пощупать. Кто-то об этом звере слышал, некоторые пытались устанавливать, некоторым это удавалось.

В топике описывается процедура установки HipHop VM из исходных кодов под Debian 7. Возможно, кому-то этот топик сэкономит время, нервы и поможет перешагнуть грабли, по которым прошлись мы.
Читать дальше →

Статистика социального поведения на новостных сайтах: как она может помочь в вопросах трафика и монетизации?

Reading time5 min
Views3.6K
Сегодня, когда многие СМИ полностью переходят на электронные версии, а аудитория все больше времени уделяет своим френд-лентам, для новостного сайта очень важна интеграция с социальными сетями и непрерывный рост цитируемости. Огромную роль приобретают социальные и поведенческие метрики пользователей, о которых надо как можно больше знать, чтобы анализировать и стимулировать социальную активность. По данным Awareness, Inc., около 96% компаний измеряют количество фанатов и фолловеров, 89% – трафик из соцсетей, 55% – упоминания о бренде в интернете, 55% – шары и 51% – тон высказываний.

The Media Briefing провела небольшое исследование, чтобы выяснить, какие новостные издания лучше всего интегрированы с социальными сетями и получают наибольшее количество твиттов и шаров. Было рассмотрено 6 популярных изданий и подсчитано количество шаров и твиттов 50 публикаций каждого из них. Результаты оказались следующими: Daily Mail – 6 526 шаров и 1 545 твиттов, Independent – 5 923 и 4 331, Telegraph – 3 372 и 2 419, Guardian – 2 866 и 2 818, Sun – 536 и 345, Times – 131 и 294. Последнее издание заботится о сохранении формата, известного на протяжении десятилетий. Остальные же активно работают над повышением социальной активности читателей, ведь доля трафика из социальных сетей увеличивается с каждым днем.
Читать дальше →

Структурирование контента и «белое» SEO

Reading time5 min
Views12K
Всем привет! Стартовые дни чемпионата мира по футболу, хочется думать, вполне подходят и для старта корпоративного блога Sports.ru, в котором мы планируем писать о спортивном интернете и – шире – об эволюции медиа в digital-эпохе. Цели блога – рассказать о каких-то универсальных решениях, опробованных нами и способных улучшить не только спортивный сайты, а также услышать побольше дельных советов, способных улучшить уже Sports.ru. Сами мы эволюционируем довольно энергично – за последние пару лет Sports.ru перестал быть типичным тематическим сайтом с текстами и новостями, а стал еще, в той или иной степени:
  • социальной сетью спортивных болельщиков
  • игровой платформой
  • базой данных о спорте
Скоро станет много еще чем – магазином, сервисом видеотрансляций и т.д. и т.п., но об этом отдельно. Сегодня же мы хотели бы рассказать о нашем опыте структурирования контента, который по каким-то непостижимым причинам пока так и не стал среди СМИ действительно популярным.
Читать дальше →

Information

Rating
Does not participate
Registered
Activity