GZip и nginx: влияние на производительность

Добрый день. Недавно меня заинтересовал модуль ngx_http_gzip_static_module, и я решил погонять мой домашний сервер немного с разными настройками сжатия nginx, чтобы убедится, действительно ли современные процессоры настолько быстрые, что можно ставить сжатие в 9-тку и не париться. В качестве подопытного файла выступала слитая главная страница lenta.ru – 170кб. Во время тестирования обнаружилась интересная особенность, которая изменила мои взгляды на выбор количества процессов nginx.

Заказывая оптимизацию сервера у хостера — держи ухо востро

imageПару дней назад обратился ко мне человек с достаточно рутинной просьбой : подкрутить настройки VPS для его ускорения - за последнее время на сайте был резкий рост посещаемости, и сервер в часы-пик стал совсем загибаться.

Это была бы рядовая и унылая статья про nginx и opcode-кеширование, если бы сервер не был до этого "прооптимизирован" техподдержкой хостера :-)

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

SSD : Что о них нужно знать

Год назад я купил себе 4 SSD: 2x 30Gb и 2x 60Gb OCZ Vertex. Своими впечатлениями, граблями, и особенностями использования (в том числе, и в серверном окружении) этих(и вообще) SSD я и хочу поделится.

В общих чертах

Основное отличие SSD от HDD очевидно – там все во флеш памяти, чтение из которой очень быстро, запись – тоже достаточно быстрая, медленно только стирать. Также, у флеш-памяти ограничен ресурс по количеству стирания (разрушается диэлектрик, изолирующий заряд в ячейке памяти). Существуют 2 основных типа флеш-памяти: MLC и SLC. Основное отличие – в SLC на 1 ячейку 1 бит данных, в MLC – от 2 до 3 (соответственно, нужно уметь различать 4-8 уровней заряда). Т.к. порог ошибки в MLC-памяти намного ниже, то и ресурс получается меньше.
SLC выдерживает порядка 100’000 стираний, MLC – 10’000 (старая, 2-х битовая), и до 3-5’000 (новая, 2-3 битовая, 34нм). Тенденция грустная – чем новее чипы памяти, тем меньше ресурс перезаписи.

Когда ресурс перезаписи исчерпывается – вы получите ошибку записи, но старые данные будут доступны, однако пока не так много людей смогли столкнуться с этим (вернее, я не видел ни одного).

Как не потерять почту когда умирают ДЦ или о надежности DNS

Многие недавно пострадали от одновременного падения тысяч серверов сначала в пожаре на hosting.ua, а затем при отключении на McHost. Зацепило и меня. Денег на умерших сайтах я не зарабатывал, однако почта постоянно нужна для деловой переписки. Несмотря на то, что почта у меня перенесена на Google (или как вариант на Yandex), ни одно письмо не могло до меня дойти, т.к. вместе с серверами умерли и Name-сервера, и отправители просто не могли прочитать MX-запись для моего домена. Итого, 26 часов я просидел без почты объясняя всем людям, с которыми я работаю, что им нужно дублировать все письма на другой ящик - достаточно унизительно и не профессионально.

Как же заставить почту работать даже если все сервера хостера лежат?
9 Апреля 2010

Центральный процессор – дома с нуля

Если в последние лет 40 для выполнения задачи нужен микропроцессор – единственный рассматриваемый вариант это купить готовый. Ну или в крайне редких случаях «накатить» стандартное конфигурируемое FPGA ядро (например Nios II) с парой дополнительных инструкций. Многие сейчас даже не могут представить, что процессоры могут получаться каким-то другим путем :-) Это всё равно что считать что продукты беруться в магазине, а вырастить их самому – абсолютно невозможно.

С одной стороны, зачем помнить основы технологии если все производится промышленно? На мой взгляд – чтобы быть уверенным, что технология не будет утеряна, что даже если случиться ядерная война компьютеры можно будет собирать из подручных материалов (так же как и с продуктами в начале 90 - многим пришлось возвращаться к технологии 100-летней давности из-за краха инфраструктуры производства и доставки).

Оказывается есть такие люди, которые до сих пор в качестве хобби делают центральные процессоры из дискретных компонент(транзисторов, реле) и микросхем низкой степени интеграции (счетчики, регистры). Единственные применяемые микросхемы – память (оперативная и перепрограммируемая).

В этой статье я хочу рассказать кратко об архитектуре и о нескольких реально работающих процессорах, сделаных в домашних условиях.
15 Февраля 2010

NTP: О точном времени

imageК сервису синхронизации времени по протоколу NTP все уже привыкли - оно включено по умолчанию или легко включается для большинства популярных операционных систем. Однако какая точность при этом достигается? Какие бывают сервера точного времени, и с какими можно работать простым смертным? Какие есть подводные камни, и как выбрать "правильные" сервера времени?
27 Декабря 2009

Уничтожение земли и оценка метеоритной угрозы

Недавно интернет сотрясали апокалипсические новости о том, что пролетающий вблизи земли метеорит заметили лишь за 15 часов до "столкновения". Многие проявили скептицизм : "7 метров" - что такая крошка может сделать нашей огромной земле?

Я покажу, что не только высоколобые умники могут считать непонятные цифры, но и практически каждый человек используя поиск в интернете может быстро найти нужные данные и инструменты даже для таких необычных задач как оценка метеоритной угрозы :-)

Из курса физики нам, пожалуй, нужно будет помнить (без формул) только то, что движущийся объект обладает кинетической энергией, и о законе сохранения энергии (если метеорит падает на землю – вся его энергия сохраняется, и практически вся выделится в виде тепла).

Масса метеорита

Ищем в гугле "Meteorite density", в первой же ссылке узнаем что плотность – около 3 грамм на кубический сантиметр (или 3 тонны на кубометр). Метеориты бывают и металлические - они будут плотнее, но падают реже.

Диаметр метеорита тогда был 7 метров. Формулу объема сферы не помним? Ну и ладно.
Заходим на http://www.wolframalpha.com/index.html , пишем "Sphere volume", вставляем наши данные (радиус 3.5м) получаем объем 180 кубометров, и соответственно вес метеорита 180*3 = 540 тонн.
18 Ноября 2009

Опыт использования выделенного сервера на Intel Atom 330

Недавно я пытался привлечь внимание к серверам на процессорах Intel Atom. Многие встретили их со скептицизмом: «Разве может процессор для дешевых ноутбуков быть в сервере?». Сейчас услуга colocation nettop-ов на Atom-ах уже стала рядовой, и я готов поделиться с вами месячным опытом использования сервера на Intel Atom.

Конфигурация сервера – неттоп Acer Aspire Revo 3600 на платформе nVidia Ion, Intel Atom 330 (2 физических ядра, 64 битный), 4Гб DDR2-800 памяти(Ubuntu 64-битная увидела только 3.2Гб, надо крутить BIOS), SSD OCZ Vertex 30Gb. Из оптимизаций под SSD – раздел cмонтирован с noatime, отключены access-логи, отключен swap (это нужно для увеличения срока службы – меньше записей – дольше прослужит, обо всем этом в отдельной статье. К слову, за месяц истрачено менее 0.5% ресурса SSD).
2 Октября 2009

Стоит ли вам использовать Google AppEngine?

Внимание! Статья была написана в первые месяцы после старта Google AppEngine. Сейчас она полностью устарела.

Disclaimer: Эта статья не о том, «какой я умный и какой Гугл тупой». Эта статья о некоторых неочевидных проблемах и особенностях Google AppEngine (GAE), о которых было бы неплохо знать тем, кто хочет начать работать с «империей зла»

Гугл сделал много отличных вещей – поиск, почта без спама… Гугл получает кучу наших приватных данных, но мы продолжаем пользоваться им, потому что оно так классно работает…
Некоторое время в IT-шных кругах поднялось достаточно шума об AppEngine, и я решил попробовать поработать с ним в моём новом проекте.

Я выбрал Python с гугловским framework-ом чтобы получить наилучшую совместимость и скорость. Начал я с тестов производительности, и результаты были… несколько разочаровывающими.
ТестЗапросов в секунду
print 'Hello world'260
1 чтение из Datastore, запись в Datastore38
1 чтение из Datastore 60
10 чтений из Datastore, 1 запись20
1 чтение из memcached, 1 запись в memcached80
1 чтение из memcached120
Обычное LAMP приложение, 6 SQL queries, http://3.14.by/240
19 Августа 2009

CUDA: С места в карьер

Многие видели моё введение в современные технологии высокопроизводительных вычислений и оценки производительности, теперь я продолжу тему более подробным рассказом о технологии CUDA.
Для тех кто не смотрел предыдущие серии: CUDA позволяет писать и запускать на видеокартах nVidia(8xxx и выше) программы написанные на С++ со специальными расширениями. На правильных задачах достигается значительное превосходство по производительности на $ по сравнению с обычными CPU.
Достижимая производительность — 1 трлн и выше операций в секунду на GTX295.

NB: Статья — краткое введение, покрыть все ньюансы программирования под CUDA в одной статье вряд ли возможно :-)

RSS@BarsMonster3@14.by