Pull to refresh
8
0
Send message

Измеряем производительность «облачных» дисков — спасаем MySQL

Reading time 6 min
Views 21K
В последнее время в облачных средах и хостингах все чаще стали попадаться «виртуальные» жесткие диски. Техническая служба хостера может заверять, что «виртуальный» диск — быстрый, как десяток рейдов 10 (рейд 100 ;-) ) и держит сотни, а то и тысячи IOPS – однако MySQL заметно для клиентов тормозит. А как это доказать хостеру?

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

В статье я проиллюстрирую простую методику нахождения «точки опрокидывания» производительности виртуального жесткого диска, с использованием доступных в дистрибутивах инструментов – sysbench и iostat. Также мы измерим «точку опрокидывания» известных своей тормознутостью виртуальных дисков EBS от Амазона – как обычных EBS, так и Provisioned IOPS EBS (1000 и 2000 IOPS).
Читать дальше →
Total votes 62: ↑55 and ↓7 +48
Comments 63

Бенчмарк HTML парсеров

Reading time 10 min
Views 82K
Переписывал в островке кусок одного сервиса с Python на Erlang. Сам сервис занимается тем, что скачивает по HTTP значительное количество однотипных HTML страниц и извлекает из них некоторую информацию. Основная CPU нагрузка сервиса приходится на парсинг HTML в DOM дерево.

Сперва захотелось сравнить производительность Erlang парсера mochiweb_html с используемым из Python lxml.etree.HTML(). Провел простейший бенчмарк, нужные выводы сделал, а потом подумал что неплохо было бы добавить в бенчмарк ещё парочку-другую парсеров и платформ, оформить покрасивее, опубликовать код и написать статью.
На данный момент успел написать бенчмарки на Erlang, Python, PyPy, NodeJS и С в следующих комбинациях:
  • Erlang — mochiweb_html
  • CPython — lxml.etree.HTML
  • CPython — BeautifulSoup 3
  • CPython — BeautifulSoup 4
  • CPython — html5lib
  • PyPy — BeautifulSoup 3
  • PyPy — BeautifulSoup 4
  • PyPy — html5lib
  • Node.JS — cheerio
  • Node.JS — htmlparser
  • Node.JS — jsdom
  • C — libxml2 (скорее для справки)

В тесте сравниваются скорость обработки N итераций парсера и пиковое потребление памяти.

Интрига: кто быстрее — Python или PyPy? Как сказывается иммутабельность Erlang на скорости парсинга и потреблении памяти? Насколько быстра V8 NodeJS? И как на всё это смотрит код на чистом C.
Читать дальше →
Total votes 72: ↑66 and ↓6 +60
Comments 36

Переход на Percona XtraDB Cluster. Одна из возможных конфигураций

Reading time 7 min
Views 29K
Итак, я начал внедрять в своей организации Percona XtraDB Cluster — переводить базы данных с обычного MySQL сервера в кластерную архитектуру.


Коротко о задаче и вводные данные


В кластере нам нужно держать:
  • БД нескольких веб-сайтов с пользователями
  • БД со статистическими данными этих пользователей
  • БД для тикет-систем, систем управления проектами и прочая мелочь

Иными словами, БД практически всех наших проектов, из тех что крутятся у нас на MySQL, теперь должны жить в кластере.

Большинство проектов мы держим удаленно в ДЦ, поэтому и кластер будет находится там.
Задача разнести кластер географически по разным дата-центрам не стоит.
Читать дальше →
Total votes 27: ↑27 and ↓0 +27
Comments 59

Объявлен сбор пожертвований на развитие проекта FreeType

Reading time 1 min
Views 7.5K
Вы используете iPhone, iPad или Android-устройство? Может быть вы используете Linux? Все эти платформы используют FreeType для отображения шрифтов и делают это отлично.

FreeType используется в сотнях миллионов компьютеров, но при этом никто не спонсировал его разработку. Не очень справедливо, правда?

Кроме поддержки пользователей и исправления багов, собранные деньги пойдут на реализацию некоторых важных и полезных вещей вроде поддержки WOFF.

Подробнее на странице пожертвований
Сайт проекта FreeType
Total votes 44: ↑38 and ↓6 +32
Comments 30

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

Reading time 3 min
Views 39K
Даже если Вы используете GUI-инструменты для работы с MySQL, однажды Вам предстоит столкнуться с командной строкой. Поэтому полезно знать некоторые трюки, которые облегчают работу.

Примечание: эти команды работают только для Unix/Linux.
Читать дальше →
Total votes 109: ↑103 and ↓6 +97
Comments 18

Ещё раз про скринкасты в линуксе

Reading time 4 min
Views 30K
Совсем недавно была статья pomeo на эту тему. Не то чтобы у меня какой-то альтернативный взгляд на это или существенно мой вариант отличается. Просто я знаю, что некоторые проблемы в Linux не решаются только одним мануалом. Поэтому, несколько повторяясь, я опишу, как это делаю я.

Некоторое время назад я решил заняться циклом статей “Сети для самых маленьких” и серьёзно озадачился вопросом записи скринкастов. Читатели очень просили сопровождать статьи видеоматериалами.
Сложностей при работе в линуксе представлялось две:
1) Программа для записи видео с экрана,
2) Программа для обработки видео.
Первое, что пришло на ум — не искать себе приключений на голову и делать это в виндоус. Но, во-первых, это целая череда не очень приятных действий, а, во-вторых, взыграла ИТшная кровь — надо разобраться.

В Линуксе есть прекрасное приложение recordMyDesktop — простое и притом универсальное. Это первое, которое я попробовал и оно меня вполне удовлетворило.
В Ubuntu ставится одной командой:
#apt-get install recordmydesktop

Есть для него и графическая оболочка gtk-recordMyDesktop, но я предпочёл иной путь. Я создал две кнопки на панели быстрого запуска:


Читать дальше →
Total votes 41: ↑37 and ↓4 +33
Comments 18

Ошибки на Хабре и как от них избавиться

Reading time 4 min
Views 20K
Все мы совершаем ошибки:
— грамматические;
— стилистические;
— технические, как эти большие картинки








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

Цель данной статьи:
— исключить ошибки в текстах;
— составить портрет читателя Хабра;
— улучшить качество статей.
Читать дальше →
Total votes 43: ↑23 and ↓20 +3
Comments 46

Приемы написания скриптов в Bash

Reading time 7 min
Views 172K
Администраторам Linux писать скрипты на Bash приходится регулярно. Ниже я привожу советы, как можно ускорить эту работу, а также повысить надежность скриптов.

Совет 1

Не пишите скриптов, которые выполняют действия ничего не спрашивая. Такие скрипты нужны довольно редко. А вот всевозможного «добра» для копирования, синхронизации, запуска чего-либо, хоть отбавляй. И если в любимом Midnight Commander Вы вдруг нажали не на тот скрипт, то с системой может произойти все что угодно. Это как правила дорожного движения — «написано кровью».

Совет 2

Отталкиваясь от предыдущего, в начало каждого скрипта неплохо помещать что-то вроде:
read -n 1 -p "Ты уверен, что хочешь запустить это (y/[a]): " AMSURE 
[ "$AMSURE" = "y" ] || exit
echo "" 1>&2
Команда echo, кстати, здесь нужна потому, что после нажатия кнопки <y> у вас не будет перевода строки, следовательно, следующий любой вывод пойдет в эту же строку.

Совет 3

Это ключевой совет из всех. Для того, чтобы не писать каждый раз одно и то же — пользуйтесь библиотеками функций. Прочитав много статей по Bash, я вынужден констатировать, что этой теме уделяется мало внимания. Возможно в силу очевидности. Однако я считаю необходимым напомнить об этом. Итак.
Заведите свою библиотеку функций, например myfunc.sh и положите ее, например в /usr/bin. При написании скриптов она не только поможет сократить ваш труд, но и позволит одним махом доработать множество скриптов, если Вы улучшите какую-либо функцию.
Например, в свете совета 2 можно написать такую функцию:
Читать дальше →
Total votes 121: ↑83 and ↓38 +45
Comments 46

Information

Rating
Does not participate
Registered
Activity