Как стать автором
Обновить
0
0
Valdemar_UA @Valdemar_UA

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

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

TOP'ай сюда

Время на прочтение5 мин
Количество просмотров179K
Обзор практически всех *top утилит под linux (atop, iotop, htop, foobartop и т.д.).

top

Все мы знаем top — самую простую и самую распространённую утилиту из этого списка. Показывает примерно то же, что утилита vmstat, плюс рейтинг процессов по потреблению памяти или процессора. Совсем ничего не знает про загрузку сети или дисков. Позволяет минимальный набор операций с процессом: renice, kill (в смысле отправки сигнала, убийство — частный случай). По имени top суффикс "-top" получили и все остальные подобные утилиты в этом обзоре.

atop


Atop имеет два режима работы — сбор статистики и наблюдение за системой в реальном времени. В режиме сбора статистики atop запускается как демон и раз в N времени (обычно 10 мин) скидывает состояние в двоичный журнал. Потом по этому журналу atop'ом же (ключ -r и имя лог-файла) можно бегать вперёд-назад кнопками T и t, наблюдая показания atop'а с усреднением за 10 минут в любой интересный момент времени.

В отличие от top отлично знает про существование блочных устройств и сетевых интерфейса, способен показывать их загрузку в процентах (на 10G, правда, процентов не получается, но хотя бы показывается количество мегабит).

Незаменимое средство для поиска источников лагов на сервере, так как сохраняет не только статистику загрузки системы, но и показатели каждого процесса — то есть «долистав» до нужного момента времени можно увидеть, кто этот счастливый момент с LA > 30 создал. И что именно было причиной — IO программ, своп (нехватка памяти), процесор или что-то ещё. Помимо большего количества информации ещё способен двумя цветами подсказывать, какие параметры выходят за разумные пределы.
Читать дальше →
Всего голосов 401: ↑389 и ↓12+377
Комментарии122

Ускоряем раздачу фоток

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

С проблемой медленной отдачи статического контента рано или поздно сталкивается каждый сисадмин.

Проявляется это приблизительно так: иногда 3Kb картинка грузится так, как будто бы она весит 3Mb, на ровном месте начинают «залипать» (отдаваться очень медленно) css-ы и JavaScript-ы. Вы нажимаете ctrl + reload — и уже, вроде, проблемы нет, потом спустя всего несколько минут все повторяется опять.

Не всегда истинная причина «тормозов» очевидна и мы косо поглядываем то на nginx, то на хостера, то на «забитый» канал, то на «тормозной» или «глючный» браузер :)

На самом деле проблема в несовершенстве современного винчестера, который до сих пор не расстался с механическими подсистемами вращения шпинделя и позиционирования головок.

В этой статье я предложу Вам свое решение этой проблемы, основанное на практическом опыте использования SSD дисков совместно с web-сервером nginx.
Читать дальше →
Всего голосов 128: ↑126 и ↓2+124
Комментарии69

История развития и оптимизаций одного высоконагруженного ресурса

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


Введение

Все началось с того, что я стал системным администратором у одного провинциального Интернет-провайдера. Помимо администрирования различного рода ресурсов, мне в присмотр достался один молодой, но бурно развивающийся ресурс. Ресурс представлял из себя классический LAMP проект. Сайт, на котором генераторами контента являлись обычные пользователи.
* К слову, в то время я ничего не понимал в *nix системах, хоть и все сервера которые мне достались, были именно на нем, разбирался я во всем этом достаточно быстро.

Как обычно бывает с ресурсами, набирающими популярность, железки на которых все крутится, перестают справляться. Ресурс стоял на стареньком двухпроцессорном сервере, на котором крутились практически все сервисы для пользователей. В то время начальство не воспринимало ресурс как нечто стоящее вложений, поэтому, к моему сожалению (а позже – счастью), денег под новую железку мне не выделяли.
Читать дальше →
Всего голосов 208: ↑198 и ↓10+188
Комментарии56

Структуры данных: бинарные деревья. Часть 2: обзор сбалансированных деревьев

Время на прочтение6 мин
Количество просмотров243K
Первая статья цикла

Интро


Во второй статье я приведу обзор характеристик различных сбалансированных деревьев. Под характеристикой я подразумеваю основной принцип работы (без описания реализации операций), скорость работы и дополнительный расход памяти по сравнению с несбаланчированным деревом, различные интересные факты, а так же ссылки на дополнительные материалы.
Читать дальше →
Всего голосов 55: ↑54 и ↓1+53
Комментарии28

Структуры данных: бинарные деревья. Часть 1

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

Интро



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

В своих статьях я буду приводить примеры кода сразу на двух языках: на Java и на Haskell. Благодаря этому можно будет сравнить императивный и функциональный стили программирования и увидить плюсы и минусы того и другого.

Начать я решил с бинарных деревьев поиска, так как это достаточно базовая, но в то же время интересная штука, у которой к тому же существует большое количество модификаций и вариаций, а так же применений на практике.
Читать дальше →
Всего голосов 110: ↑101 и ↓9+92
Комментарии53

Обзор CMS по категориям

Время на прочтение19 мин
Количество просмотров85K
В мире существуют тысячи CMS для самых разных целей, самого разного качества, самой разной перспективы, стоимости, распространённости и так далее. Серьёзно опробовать их все — нереально. Поэтому когда я только знакомился с миром движков для сайтов, выбирать приходилось наугад. Ниже я опишу свои впечатления от знакомства с теми или иными движками для тех или иных целей. К некоторым приложу краткое описание особенностей, впечатление о прочих состоит только из заглядывания в админку. Заметки эти составлялись и редактировались в течении долгого времени, но сейчас я решил, что лучше опубликовать их в нынешнем виде, чем ещё полгода-год по чуть-чуть редактировать не добавляя ничего принципиально нового.
Преимущество отдаётся бесплатным движкам. Платные будут рассматриваться только для сравнения или от безысходности, т.е. если нет бесплатных аналогов. Также ограничение на технологии: php. О движках на перле и питоне я не более чем слышал, на шарпе и джаве имел дело с самописными.
Итак, рассматриваются
Читать дальше →
Всего голосов 198: ↑164 и ↓34+130
Комментарии215

GTD на iPhone. Личный опыт

Время на прочтение2 мин
Количество просмотров12K
Однажды я осознал, что больше так жить нельзя и начал искать способы управлять собой в бурном потоке времени.
Последовательно вышел на Архангельского и «его» Outlook. После был GTD Дэвида Аллена совместно с замечательным My Life Organized. Ещё немного и я узнал о системе Василия Кислого, которую подогнал в MLO под себя. Но жизнь продолжается, всё вокруг меняется и вот мне уже понадобилась система под iPhone.
Как оказалось система Василия Кислого замечательно ложится на множество программ управления временем.

Не буду расписывать очень подробно, а просто вкратце покажу «как это у меня». Если вы не знакомы с системой Кислого, очень советую ознакомится. Там букв не много, всё ёмко и по делу. Система простая как топор, но при этом достаточно гибкая.

Первая программа которую я примерил и подогнал под ВасилияAppigo Todo

Плюсы:
  • Достаточно минималистична
  • Возможно полная реализация системы Кислого за счет двойной записи
  • Наименование задачи разбивается на несколько строчек, тем самым полностью умещается на экране
  • Синхронизация с Toodledo.com, Remember the milk, Appigo Sync

Минусы:
  • Часто вылетает при большом количестве задач
  • «Неверное» отображение количества задач на значке приложения
  • Уведомления работают только при наличии интернета

Читать дальше →
Всего голосов 11: ↑7 и ↓4+3
Комментарии11

Гениальный копирайтер Боря или 10 заповедей работы с удалённым сотрудником

Время на прочтение7 мин
Количество просмотров32K
Здравствуйте, многоуважаемые хабрачеловеки!

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



(Флеш-приложение 1. Интровертный мир одного из наших сотрудников. Можно кликнуть и поиграть, а потом продолжить чтение. Можно и наоборот — сначала прочитать, а потом поиграть.)

Как и многие из вас, мы раскручиваем сайты, причем делаем это исключительно законными способами. Мы считаем это правильным. В этом безумном и нередко жестоком мире важно сохранить лицо. Не ради денег. Ради обыкновенного человеческого достоинства.

Мы в достаточной степени успешны. Однако на первое место мы всегда ставим не работу с клиентом даже, а внимание к сотруднику. Можно потерять клиента, но потерять сотрудника, пусть самого незначительного, человека, который работает с настойчивостью гика, нельзя, никак нельзя. Скажем так: если вдруг клиент попросит нас расстаться с сотрудником, который ему не нравится (а такие прецеденты были), мы предпочтём расстаться с клиентом, сколь много бы он ни башлял.

Подобно Гуглу или Дримуорксу наша контора — паутина, в центре которой, в московском офисе, сидит инфернальное руководство, а злодейские паучата – по краям, в Питере или Краснодаре. Суть такого хитрого аутстаффинга не в том, что провинциалам можно меньше платить. Суть в том, что это позволяет отобрать наиболее ценные, наиболее талантливые кадры.

Организация работы на удалённом доступе – редкостный геморрой. Для того чтобы хоть как-то минимизировать эту популярную болячку, наши менеджеры проектов приняли на вооружение 10 заповедей работы с удалённым сотрудником. Возможно, вам они покажутся интересными.

Читать дальше →
Всего голосов 215: ↑191 и ↓24+167
Комментарии91

Тонкости использования селекторов аттрибутов в CSS

Время на прочтение4 мин
Количество просмотров34K
CSS может связываться с HTML элементами используя любые из его атрибутов. Вы наверняка знаете о классах и ID. Проверим это в HTML:
<h2 id="first-title" class="magical" rel="friend">David Walsh</h2>

Этот один элемент имеет три аттрибута: ID, class и rel. Для выбора элемента в CSS вы можете использовать селектор ID (#first-title) и селектор class (.magical). Но знаете ли вы, что можно использовать для выбора атрибут rel? Это так называемый селектор атрибута:
h2[rel=friend] {
  /* woohoo! */
}

Читать дальше →
Всего голосов 165: ↑140 и ↓25+115
Комментарии116

phpDaemon — фреймворк асинхронных приложений

Время на прочтение6 мин
Количество просмотров44K
Сегодня речь пойдет о phpDaemon — асинхронном модульном демоне-фреймворке, который берёт на себя обработку I/O (libevent) и другие низкоуровневые задачи, присущие демонам. С его помощью легко писать правильные сетевые приложения с блэкджеком и шлюхами.
Из коробки идут сервера FastCGI, HTTP, CGI, FlashPolicy, Telnet, WebSocket (!) — да-да тот самый волшебный пендаль новый протокол от Google. И клиенты mysql, memcached, mongodb… И многое другое, полный список под катом. Работать с сетью действительно просто. Программист средней руки может написать, к примеру, IRC-бота за считанные часы.
В качестве наглядного примера я реализовал вот этот чат на phpDaemon + WebSocket + MongoDB + jQuery. Он наглядно демонстрирует преимущества этой технологии: доставка сообщений мгновенна, накладные расходы при обмене данными минимальны, высока производительность, приложение масштабируется горизонтально. Исходники этого чата (в данный момент 17 кб). Прошу заметить, чат тестировался и работает в Chrome, FF, IE6+, Iron, Safari.
Читать дальше →
Всего голосов 114: ↑99 и ↓15+84
Комментарии103

Список Javascript библиотек для рисования графиков и диаграмм 2

Время на прочтение2 мин
Количество просмотров37K
Продолжаем тему визуализации данных в интернете.

Предыдущие топики:
Читать дальше →
Всего голосов 52: ↑47 и ↓5+42
Комментарии12

Бинарное обновление FreeBSD 6.2 до 8.0

Время на прочтение8 мин
Количество просмотров14K
Года два назад я поднимал знакокому сервер для трекера местной локалки. Вопрос выбора ОС не стоял в принципе, естественно FreeBSD, а версия была взята актуальная на тот момент — 6.2 i386. Но вот состоялся релиз FreeBSD 8.0, и я решил попробовать обновиться до 8-й версии на этом сервере, все равно трекер уже полмесяца не работал из-за битой базы при очередном внезапном отключении питания, а за сервером никто не следил, поэтому пару часов даунтайма никому не помешают.
Читать дальше →
Всего голосов 77: ↑72 и ↓5+67
Комментарии34

Многопоточное скачивание в cURL на PHP

Время на прочтение7 мин
Количество просмотров34K
В данном топике представлена на мой взгляд удобная и функциональная реализация многопоточного скачивания на cURL для PHP. Возможно кому-то она будет полезна, а мне принесёт инвайт ;)

Скачиванием через cURL не пользовался пусть даже из интереса только ленивый. Будь-то из консоли, либо реализуя код на каком-либо ЯП. Решения блокирующего скачивания одной ссылки валяются на каждом углу сети, к примеру на php.net. Однако, если рассматривать реализации на PHP, то такой подход подчас не подходит ввиду высоких временных затрат на вспомогательные операции ( dns lookup, request waiting и подобные ). Для скачивания большого числа страниц последовательный вариант не приемлем. Если устраивает — дальше можно не читать :)
Читать дальше →
Всего голосов 17: ↑17 и ↓0+17
Комментарии21

Почти настоящая многопоточность средствами php 5

Время на прочтение5 мин
Количество просмотров32K
В очередной раз читал про многопоточность в php точнее полное её отсутствие и всевозможные костыли в виде не блокируемых сокетов. Вот как раз там наткнулся на интересную статью в которой описывался очень простой и эффективный способ распараллеливания потоков. На основе этого материала написал небольшой класс что бы облегчить себе работу в будущем.
Читать дальше →
Всего голосов 73: ↑52 и ↓21+31
Комментарии59

Инструменты для визуализации логов профайлера xdebug

Время на прочтение2 мин
Количество просмотров22K
Наверное многие php разработчики используют профайлер xdebug для поиска узких мест в приложениях. Но просто смотреть логи очень не удобно, поэтому были созданы инструменты для их визуализации. Об этих инструментах я и хочу коротко рассказать.

Webgrind

Webgrind это набор php скриптов, которые можно установить на локальный или удаленный веб сервер. Дальше все просто до неприличия — закачиваем файл лога и смотрим статистику.
image
Самый очевидный плюс Webgrind'а это кроссплатформенность и простота установки.
Показывает список функций которые вызывались, количество вызовов (Invocation Count), общеё время потраченное на вызов (Total Self Cost) и общее время потраченное на выполнение (Total Inclusive Cost).
Можно скрыть php функции. Можно перейти внутрь функции, чтобы увидеть развернутую статистику.
Читать дальше →
Всего голосов 47: ↑42 и ↓5+37
Комментарии26

Profiling PHP Applications With xdebug

Время на прочтение8 мин
Количество просмотров41K
Добро пожаловать в третью статью о xdebug. Уже сейчас вы должны были попробовать xdebug, если нет, сделайте это сегодня ;-).
В первой статье рассказывалось о том, как установить и настроить xdebug, описывались некоторые простейшие возможности, такие как улучшение вывода функции var_dump() или вывод трассировки стека вызовов при получении сообщения об ошибке. Во второй части мы рассмотрели такую возможность xdebug как трассировку. Трассировка содержит все вызовы функций и методов в программе, время запуска, опционально размер памяти, передаваемые и возвращаемые параметры. Лог трассировки может помочь вам понять пути выполнения сложной программы. Вместо того чтобы вставлять отладочный код внутрь программы, вы включаете или выключаете трассировку в тем места где нужно, а потом используете утилиты подобные grep или собственно написанные приложения на PHP для анализа лог файла.
Читать дальше →
Всего голосов 23: ↑23 и ↓0+23
Комментарии17

Software Configuration Management // Контроль версий

Время на прочтение12 мин
Количество просмотров19K
И снова здравствуйте.

Продолжаю публиковать цикл статей о SCM — управлении конфигурацией ПО.
3 предыдущие заметки можно прочитать в этом же блоге.

Сегодня расскажу о том, с чем работает большинство читателей — о контроле версий.

Disclaimer


Далее будут описаны основные техники, реализованные в подавляющем большинстве систем контроля версий. Как они реализуются в приложениях, которые использует читатель, оставим на откуп многочисленным руководствам пользователя, how-to, FAQ и прочим документам, коих можно найти без труда. Главное – понять, по каким принципам и зачем оно работает именно так.

Всё понятно, продолжай
Всего голосов 30: ↑28 и ↓2+26
Комментарии27

Список полезных инструментов для php разработчика

Время на прочтение10 мин
Количество просмотров148K
PHP один из самых широко используемых языков для создания вебсайтов. PHP фреймворки, такие как Zend, CakePHP, CodeIgniter и т.д и open source классы и библиотеки упростили разработку.
Независимо от того, являетесь ли вы опытным разработчиком или новичком, инструменты, которые вы используете, имеют прямое влияние на вашу продуктивность. Здесь собран список действительно полезных утилит и расширений для PHP разработчиков, которые помогут ускорить разработку, и улучшит итоговое качество кода.
Читать дальше →
Всего голосов 214: ↑200 и ↓14+186
Комментарии131

Несколько полезных и интересных модулей для Друпала

Время на прочтение3 мин
Количество просмотров10K
logoИзучая Drupal, я нередко натыкаюсь на новые задачи, которые необходимо реализовать, и проблемы, которые нужно устранить.
Конечно, сайты Drupal.ru и Drupal.org — неоценимые помощники во всех вопросах и помогут разобраться практически в любой поставленной задаче, однако сегодня хотелось бы рассказать вам о некоторых модулях и их возможностях, чтобы вам не пришлось лихорадочно искать ответы на ваши вопросы, когда подобный функционал вам вдруг понадобится. Возможно, вы не узнаете для себя ничего нового из этого топика, но я все же попробую.

Читать дальше →
Всего голосов 72: ↑56 и ↓16+40
Комментарии27

Фриланс — практика

Время на прочтение11 мин
Количество просмотров61K
В наше время в сети достаточно легко найти «12 правил фрилансера», или «20 советов фрилансеру», а то и «библию фриланса».
У всех разное отношение к этому явлению, разный опыт или предубеждения. Немало, кстати, негативных мнений.
Мне бы не хотелось писать очередное руководство «как заработать 10000$ в месяц». Поделюсь своим небольшим, но положительным опытом в роли «Фрилансера» и кое-какими выводами. Этот опыт сделал для меня работу на фрилансе комфортной и прибыльной.

полный текст
Всего голосов 163: ↑158 и ↓5+153
Комментарии96

Информация

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