Как стать автором
Обновить
51
0
Alexander Fedora @ghisguth

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

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

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

Время на прочтение2 мин
Количество просмотров16K
image

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

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

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



а так же плейлист целиком.
пояснения...
Всего голосов 103: ↑100 и ↓3+97
Комментарии42

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

Время на прочтение5 мин
Количество просмотров274K
Пару месяцев назад нами (2Товарища и Антон Исайкин) была обнаружена уязвимость, присущая в основном большим интернет-проектам (вроде Рамблера, Мейла, Яндекса, Оперы и пр.). Удалось получить доступ к файловым структурам известнейших сайтов (в общей сложности 3320 сайтов) и в ряде случаев их полные исходные коды.
Читать дальше →
Всего голосов 1226: ↑1190 и ↓36+1154
Комментарии909

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

Время на прочтение16 мин
Количество просмотров40K
Нравится мне эта картинка, у меня, вот никогда такие красивые графики в какти не получались =(

Введение


С момента написания мной предыдущей статьи по оптимизации этой связки прошло довольно много времени. Тот многострадальный 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. Минусы оптимизации

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

Игры в OLTP

Время на прочтение23 мин
Количество просмотров2.8K
В последнее время на Хабре стала популярной тема реализации высокопроизводительных приложений. Решили тоже немножко поэкспериментировать в этом направлении и поделиться текущими результатами наших изысканий.

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



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

Подробности под катом...
Всего голосов 39: ↑36 и ↓3+33
Комментарии31

Файловый AIO в nginx

Время на прочтение2 мин
Количество просмотров17K
В последних версиях 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
Всего голосов 37: ↑34 и ↓3+31
Комментарии63

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

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

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

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

Читать дальше →
Всего голосов 64: ↑58 и ↓6+52
Комментарии120

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

Время на прочтение1 мин
Количество просмотров1.7K
Автор проекта и топика — TheShock, карму и благодарности слать ему.

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

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

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

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

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



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

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

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

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

Подробности тут
Взято с L.o.r.
Всего голосов 34: ↑28 и ↓6+22
Комментарии46

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

Время на прочтение1 мин
Количество просмотров1.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
Всего голосов 41: ↑39 и ↓2+37
Комментарии84

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

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

Информация

В рейтинге
Не участвует
Откуда
Redmond, Washington, США
Дата рождения
Зарегистрирован
Активность