Pull to refresh
51
0
Alexander Fedora @ghisguth

User

Send message

Последние расширения Chrome

Reading time2 min
Views16K
image

В своём первом топике, решил привести описания интересных расширений, вышедших за последнее время. Быть может именно их не хватает тем, кто не решается перейти до сих пор на Google Chrome :) Кто знает…
Читать дальше →
Total votes 92: ↑81 and ↓11+70
Comments180

Линус Торвальдс о GIT на Google Talks [видеоперевод 8 частей]

Reading time1 min
Views4.1K
Два года назад Линус Торвальдс рассказал представителям Google об использовании GIT (распределённой системы контроля версий) для ядра Linux. Посчитав, что многие могут пропустить эту интересную лекцию по причине незнания языка, я осмелился озвучить её по-русски.



а так же плейлист целиком.
пояснения...
Total votes 103: ↑100 and ↓3+97
Comments42

Были получены исходники 3300 глобальных интернет-проектов

Reading time5 min
Views274K
Пару месяцев назад нами (2Товарища и Антон Исайкин) была обнаружена уязвимость, присущая в основном большим интернет-проектам (вроде Рамблера, Мейла, Яндекса, Оперы и пр.). Удалось получить доступ к файловым структурам известнейших сайтов (в общей сложности 3320 сайтов) и в ряде случаев их полные исходные коды.
Читать дальше →
Total votes 1226: ↑1190 and ↓36+1154
Comments909

Сервер на стероидах: FreeBSD, nginx, MySQL, PostgreSQL, PHP и многое другое

Reading time16 min
Views40K
Нравится мне эта картинка, у меня, вот никогда такие красивые графики в какти не получались =(

Введение


С момента написания мной предыдущей статьи по оптимизации этой связки прошло довольно много времени. Тот многострадальный Pentium 4 c 512Мб памяти, обслуживающий одновременно до тысячи человек на форуме и до 150,000 пиров на трекере уже давно покоится на какой-нить немецкой, свалке, а клуб сменил уже не один сервер. Всё сказанное в ней всё ещё остаётся актуальным, однако есть вещи которые стоит добавить.
Статья большая, так что будет поделена на логические блоки:

0. Зачем вообще что-то оптимизировать?
  
1. Оптимизация ОС (FreeBSD)
  1.1 Переход на 7.х 
  1.2 Переход на 7.2
  1.3 Переход на amd64
  1.4 Разгрузка сетевой подсистемы
  1.5 FreeBSD и большое кол-во файлов
  1.6 Softupdates, gjournal и mount options
  
2. Оптимизация фронтенда (nginx)
  2.1 Accept Filters
  2.2 Кеширование
  2.3 AIO
  
3. Оптимизация бэкенда
  3.1 APC
  3.1.1 APC locking
  3.1.2 APC hints
  3.1.3 APC fragmentation
  3.2 PHP 5.3
  
4. Оптимизация базы данных
  4.1 MySQL 
  4.1.1 Переход на 5.1
  4.1.2 Переход на InnoDB
  4.1.3 Встроеный кеш MySQL - Query Cache
  4.1.4 Индексы
  
4.2 PostgreSQL
  4.2.1 Индексы
  4.2.2 pgBouncer и другие.
  4.2.3 pgFouine
  
4.3 Разгрузка базы данных
  4.3.1 SphinxQL
  4.3.2 Не-RDBMS хранилище
  4.4 Кодировки
  4.5 Асинхронность
  
Приложение. Мелочи.
  1. SSHGuard или альтернатива.
  2. xtrabackup
  3. Перенос почты на другой хост
  4. Интеграция со сторонним ПО
  5. Мониторинг
  
 6. Минусы оптимизации

Кому что-нибудь из этого списка интересно, жмём сюда...
Total votes 375: ↑368 and ↓7+361
Comments105

Игры в OLTP

Reading time23 min
Views2.8K
В последнее время на Хабре стала популярной тема реализации высокопроизводительных приложений. Решили тоже немножко поэкспериментировать в этом направлении и поделиться текущими результатами наших изысканий.

Подопытный «Hello, world!» представляет собой простейшую OLTP систему:



Требования к производительности и отказоустойчивости являются ключевыми для подобных систем. Поэтому поиск решения поставленной задачи осуществлялся в направлении: C, C++, fastcgi, nginx, lighttpd, oracle. В первую очередь нам было любопытно попробовать различные варианты построения OLTP на данных технологиях, а так же измерить производительность и пиковые нагрузки.

Подробности под катом...
Total votes 39: ↑36 and ↓3+33
Comments31

Файловый AIO в nginx

Reading time2 min
Views17K
В последних версиях nginx (начиная с 0.8.11) появилась поддержка асинхронного файлового ввода-вывода. Потенциально, эта фича способна устранить одно из узких мест веб-сервера — полную блокировку процесса при файловом IO.

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

Раньше, эта проблема решалась увеличением количества процессов-воркеров. Теперь есть альтернативное решение. :) Однако, перед тем, как включать файловый AIO, стоит учесть ряд нюансов.

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

Во-вторых, файловый AIO работает только на FreeBSD 4.3 и выше, либо в Linux, с версии ядра 2.6.22 и выше.

В-третьих, AIO во FreeBSD имеет смысл включать только в версиях FreeBSD-6.4 STABLE, FreeBSD 7, или новее. В более ранних версиях, при включении AIO, сетевая подсистема начинает использовать Giant Lock, что означает невозможность одновременного выполнения какого-то другого системного вызова. Другими словами, почти никаких выгод от асинхронности мы не получим.

Ну и наконец, при использовании AIO под Linux надо также включать directio. Также, если я всё понял правильно, в линукс пока невозможно использовать AIO для подгрузки данных для sendfile, поскольку включение directio отключит использование sendfile автоматически.

Если вы по-прежнему считаете, что оно вам нужно, AIO включается очень просто. Для Linux, фрагмент конфига будет выглядеть примерно так:

aio on; # включаем AIO
directio 512; # включаем O_DIRECT для файлов, размером 512 байт или больше
output_buffers 128 512k; # зная размер и примерное количество одновременно отдаваемых файлов, можно подобрать более подходящие значения


Ссылки:
Описание AIO в документации на Nginx
Changelog
Total votes 37: ↑34 and ↓3+31
Comments63

Brain Fuck Scheduler — ставим за 5 минут

Reading time3 min
Views11K
О новом планировщике задач для Linux на Хабре уже написали вот тут. Весьма эпатажный «трейлер» с xkcd к новому планировщику, и не менее веселый FAQ, пробудили интерес. Расспросил знакомых, кто ставил, чтобы поделились впечатлениями — никто не ставил, ибо «влом ядро новое ставить» или «я подожду, пока оно в мейнстриме появится». Поставил и попробовал сам, и для тех кто хочет сделать то же самое — краткое руководство для Ubuntu 9.04, с описанием потенциальных граблей.

В качестве тизера, скажу лишь, что полноэкранное видео на youtube действительно не тормозит и система стала отзывчивее и шустрее.

Итак, дабы не быть голословным, приступим. Предполагается, что у вас установлена Ubuntu 9.04 (Jaunty).

Читать дальше →
Total votes 64: ↑58 and ↓6+52
Comments120

FreeCR — консольный форум

Reading time1 min
Views1.7K
Автор проекта и топика — TheShock, карму и благодарности слать ему.

Хочу представить вам альфа-версию нового проекта – console-like форума.

Комментариев будет мало — проект говорит сам за себя.

Адрес: http://freecr.ru/

Надеюсь, всем, здесь присутствующим, не составит труда разобраться в нем.

image
(по ссылке скриншот полностью)



P.S. Не забывайте, что это альфа-версия и потому возможна не совсем корректная работа.
Total votes 112: ↑102 and ↓10+92
Comments121

Linux-версия клиента Quake Live

Reading time1 min
Views2K
Благодаря многочисленным просьбам пользователей GNU/Linux (и MacOS), версии клиента Quake Live для этих операционных систем анонсированы на пресс-конференции QuakeCon-2009 в Далласе (США). С 18 августа текущего года клиенты и некоторые карты будут доступны для скачивания.

Quake Live бесплатный браузерный онлайновый многопользовательский шутер от первого лица (браузерный вариант Quake III, использует немного изменённую версию движка id Tech 3). Для игры необходим веб-браузер и сам клиент в виде плагина к нему.

Подробности тут
Взято с L.o.r.
Total votes 34: ↑28 and ↓6+22
Comments46

Sokso: сам себе last.fm

Reading time1 min
Views1.1K
Сколько уже ищу, но никак не могу найти нормальный плеер. XMMS и клоны, Listen Music Player, Rhythmbox Music Player, VLC Media Player, Banshee, mpd + обвязки — какое-то оно все не такое.

В результате гугления был нарыт Sockso — sockso.pu-gh.com — Personal Music Server под платформы Windows, Mac OSX, Linux.

Свободный, с открытыми исходниками, “ПМС” для всех и каждого. Основной упор в дизайне сделан, так что любой кто имеет мышку и несколько MP3 мог делиться с друзьями музыкой по интенету за секунды. Этакий сам себе last.fm. Sockso Personal Music Server умеет на сегодня:

* Без установки. Развернул файлы и понеслась!
* MP3, OGG Vorbis, Flac, and WMA
* Веб интерфейс для друзей и GUI для себя любимого.
* Онайновые флеш плееры, плейлисты, поиски и т.д.
* Скачивание из своей библиотеки песен, альбомов, или плейлистов.
* Статистика, что игралось, самое популярное и т.д.
* «Шкуркабельный» веб интерфейс
* Пользовательские и библиотечные плейлисты.
* Выключения GUI для запуска на headless серверах
* UAC (User account control) и собственные плейлисты
* Загрузка музыки в библиотеку через веб
* Подкачивает обложки для треков / альбомов
* Умеет перекодировать «вывод» если полосы пропускания не хватает
* «Cover Flow» стиль — выбор плейлиста из оболожек
* Умеет дружить с last.fm и скроблить туда
* Умеет SSL «искаропки»

p.s. Установка в убунту зависимостей: sudo apt-get install sun-java6-bin flac lame ffmpeg
Total votes 41: ↑39 and ↓2+37
Comments84

Марш против RDBMS или проекты распределенных хранилищ (key-value stores)

Reading time5 min
Views15K
candybar2Вот вы часто создаете проекты? И, наверное, везде применяете базу данных, в частности, MySQL (а кто-то и PostgreSQL). Но вот что интересно, по опыту да и просто после чтения описания различных архитектур видно, что далеко не везде в проекте нужны ключевые особенности баз данных, во многих случаях базу используют просто как некоторое хранилище обычных данных. Например, в системах кеширования базы обычно не применяются, более того, кеширование как раз используют для того, чтобы избежать лишних запросов. А что используют для кеширования наиболее часто? Memcached. А что это такое? Это распределенная система хранения данных на основе хеш-таблицы. В общих чертах, это просто хранилище пар ключ-значение, над которыми можно производить только основные операции — запись, чтение, удаление и проверку на присутствие. Да-да, нет никаких фильтров, выборок, сортировки, самый максимум — система тегов для выборки одним запросом всех связанных записей. И во многих случаях такого функционала вполне достаточно.
Читать дальше →
Total votes 50: ↑48 and ↓2+46
Comments31

Information

Rating
Does not participate
Location
Redmond, Washington, США
Date of birth
Registered
Activity