Довольно интересное исследование опубликовано в статье Linux-сайты: ОСи посетителей. Честно говоря, не ожидал таких результатов. В чём грабли?
Архив категории «Linux»
eAccelerator — модуль для ускорения, оптимизации и кеширования ваших PHP-скриптов. Самый простой способ его установки — это установка из RPM-пакета, но это не всегда получается так как версия PHP на вашем сервере может отличаться (быть старше), чем версия PHP для которой был собран RPM-пакет. Так что я расскажу как собрать eAccelerator из исходных текстов.
Итак, для начала установим пакет php-devel. Он нам нужен для сборки eAccelerator’а:
sudo yum install php-devel
Скачаем исходные тексты последней версии eAccelerator’a (на момент написания это была версия 0.9.5):
wget http://bart.eaccelerator.net/source/0.9.5/eaccelerator-0.9.5.tar.bz2
Перед распаковкой архива убедитесь, что тот раздел, из которго вы его будете запускать имеет права на запуск:
cat /etc/mtab
Один раз я долго не мог понять, почему у меня не запускался скрипт из директории /tmp, оказалось, что для этого раздела были установлены права noexec.
Распакуйте архив
tar xjf eaccelerator-0.9.5.tar.bz2
и перейдите в распакованную директорию
cd eaccelerator-0.9.5
Выполните команды
phpize
./configure
make
make install
После этого появится надпись
Installing shared extensions: /путь/до/модулей
этот путь и надо будет указать в настройках.
Допишите в файл php.ini настройки для eAccelerator’а:
zend_extension="/путь/до/модулей/eaccelerator.so"
eaccelerator.shm_size="16"
eaccelerator.cache_dir="/tmp/eaccelerator"
eaccelerator.enable="1"
eaccelerator.optimizer="1"
eaccelerator.check_mtime="1"
eaccelerator.debug="0"
eaccelerator.filter=""
eaccelerator.shm_max="0"
eaccelerator.shm_ttl="0"
eaccelerator.shm_prune_period="0"
eaccelerator.shm_only="0"
eaccelerator.compress="1"
eaccelerator.compress_level="9"
Перезапускаем Apache:
/etc/init.d/httpd restart
Готово!
Итак, мальчики и девочки, сегодня мы с вами поговорим о переходном возрасте… Наверное, вы уже заметили, что в последнее время с вами происходят какие-то непонятные изменения. На вашем сервере запущено уже несколько сайтов, но скорость, с которой они работают вас не очень-то устраивает. Да, вот такие они плоды популярности… И что же делать? Экономить деньги на школьных завтраках, чтобы оплатить более качественный хостинг? Нет, нет и ещё раз нет! Я, как отец подрастающего ребёнка, просто не могу допустить того, чтобы подрастающий организм недополучал питания в период роста и развития. Поэтому, вот вам мои советы по настройке и оптимизации сервера и того, что на нём установлено.
Apache
- Поиграйтесь со значением
MaxClients, чтобы найти баланс между производительностью и мощностью сервера. Можно начать со значения 32. - Не позволяйте серверу писать много в логи:
LogLevel warn - Отключите DNS lookups:
HostNameLookups off - Отдельно стоит сказать о директиве
AllowOverride— она отвечает за то, можно ли переопределять настройки сервера. Грубо говоря, будут или нет работать файлы .htaccess. Если эта директива включена глобально:<Directory /> AllowOverride All </Directory>то в каждой директории сервер будет пытаться искать файл .htaccess, поэтому следует либо отключить эту директиву, либо включить её только для тех директорий, где это необходимо.
- И последнее по настройке Apache. Директива
KeepAliveTimeout. Рекомендую уменьшить её значение до 1–2 секунд.
MySQL
Добавьте или измените следующие опции в my.cnf:
- Отключите bin log
log-bin - Включите и увеличте размер
query_cachequery_cache_limit = 2M # по умолчанию было 1M query_cache_size = 64M # по умолчанию было 0 query_cache_type = 1 - Увеличте
table_cache
table_cache = 256 # по умолчанию было 64 - Увеличте
key_buffer
key_buffer_size = 64M # по умолчанию было 8M - Установите параметр
max_connectionsтак, чтобы он равнялся параметруMaxClientsв настройках Apache
PHP
- Установите eAccelerator и примените к нему следующие настройки:
eaccelerator.shm_size="32" eaccelerator.enable=1 eaccelerator.shm_ttl="1800"
Тестируем конфигурацию
Для тестов мы воспользуемся утилитой ab (Apache Benchmark).
ab -n 1000 -c 100 http://yourserver/
Тем самым сы выполним 1000 запросов к серверу, при том 100 запросов будут выполняться одновременно. В полученных результатах смотрите на строчку Requests per second. Я так же рекомендую запустить тест до начала оптимизации и после, чтобы сравнить результаты.
Успехов и удачи!
Итак, представим, что нам необходимо написать простенький shell-скрипт, который, например, копирует директорию с одного удалённого сервера на другой при помощи команды rsync.
Для rsync‘а необходимы следующие параметры:
- имя пользователя удалённого сервера, с которго мы собираемся копировать
- адрес сервера, с которго мы собираемся копировать
- путь до директории, которую мы будем копировать
- имя пользователя другого удалёного сервера, на который мы собираемся копировать
- адрес сервера, на который мы собираемся копировать
- путь, куда мы будем копировать
Следовательно, наш конфигурационный файл, назовём его .myrsync, будет выглядеть следующим образом:
# Configure options for myrsync
SRC_USER = jsmith
SRC_HOST = example.com
SRC_PATH = /home/jsmith/data
DEST_USER = admin
DEST_HOST = dummy.org
DEST_PATH = /tmp
Теперь приступим непосредствено к написанию самого скрипта, который будет брать параметры из конфигурационного файла и выполнять команду rsync. Итак, получаем параметры:
if [ -f "/etc/myrsync" ]; then
for var in `awk 'BEGIN {FS="[= ]"} /^[^#]+/ \
{ print $1 "=" $(NF) }' /etc/myrsync`; do
eval $var
done
elif [ -f "$HOME/.myrsync" ]; then
for var in `awk 'BEGIN {FS="[= ]"} /^[^#]+/ \
{ print $1 "=" $(NF) }' $HOME/.myrsync`; do
eval $var
done
fi
Как видно из куска кода, скрипт сначала пытается прочитать настройки из файла /etc/myrsync, а после этого пытается читать настройки из файла .myrsync, хранящегося в домашней директории пользователя, который запускает скрипт. Таким образом, параметры определённые в общем настроечном файле переопределяются пользовательским файлом настроек.
И теперь непосредственно копирование:
rsync -avzh --stats --progress \
$SRC_USER@$SRC_HOST:$SRC_PATH \
$DEST_USER@$DEST_HOST:$DEST_PATH
После этого нам остаётся лишь сохранить файл как myrsync.sh, установить у него права на запуск:
chmod +x myrsync.sh
Вчера обновил Firefox до версии 1.5.0.6, а сегодня с утра начались проблемы — лисичка не захотела заходить на сайты через безопасное соединение (по протоколу HTTPS).
Погугилв немного нашёл выход. Надо установить новую версию NSS, а потом переустановить Firefox:
# yum install nss
# yum remove firefox
# yum install firefox
Видимо те, кто собирал Firefox RPM для Fedora Core 5 забыли в списке требуемых для установки пакетов указать новую версию NSS.
Компания ЭргоСОЛО сообщила о выходе версии их популярного клавиатурного тренажёра для операционных систем семейства Linux.
На сегодняшний день установочные пакеты СОЛО на клавиатуре доступны для дистрибутивов ASP Linux 11, Fedora Core 5, SuSE 10 и Mandriva 2006.
Установочные пакеты для Debian, FreeBSD, Slackware, Arch Linux, Gentoo, Ubuntu и AltLinux Master должны появиться в самое ближайшее время.
Так же в планах компании выпустить версии для операционных систем GNU HURD, OpenBSD, OpenSolaris, QNX и Mac OS.
Похоже, что финальному релизу дистрибутива Fedora Core 5 не миновать судьбы своего последнего тестового предшественника — Fedora Core 5 test 3, а именно задержки с выходом.
Как сообщил Джереми Кац (Jeremy Katz), дата релиза переносится с 15 на 20 марта по независящим от разработчиков Fedora Core причинам:
Due to circumstances outside of our control, we’re going to be unable to
keep to the scheduled date of March 15th for the release of FC5 and
instead are going to have to make the release date Monday, March 20th.
While unfortunate in some ways, this gives us the opportunity to pull in
the final GNOME 2.14 tarballs which should be available on Monday
assuming the changes are suitably minor.Jeremy
Вот мне интересно, чем этот Google Page Creator лучше, чем SWsoft’s SiteBuilder?
Таким вопросом задаётся Дэвид Нильсен (David Nielsen). Fedora Core 5 test3 вышла 20 февраля — на неделю позже, чем планировалось ранее — таким образом Дэвид пришёл к выводу, что пришло время начать планировать разработку Fedora Core 6.
Томас Чанг (Thomas Chung) из FedoraNEWS.ORG только что сообщил, что они решили отказаться от использования MediaWiki в качестве CMS в пользу системы управления содержимым Drupal.
Кстати, в период с ноября 2004 по июнь 2005 на FedoraNEWS.ORG использовался Wordpress.
Недавно обнаружил довольно досадный баг в Thunderbird 1.5. Если несколько элементов RSS-фида имеют одинаковый параметр link, то в Thunderbird’е отобразится только один из них. Даже несмотря на различные параметры pubDate и guid!
Запланированный на 13 февраля выпуск Fedora Core 5 test 3 — последней тестовой версии дистрибутива перед финальным релизом — откладывается на неделю. Об этом сообщил Jeremy Katz — один из разработчиков дистрибутива Fedora Core. По его словам задержка с выходом тестовой версии связана с существенными изменениями в стеке gcc/glib, которые требуют пересборки всего дистрибутива целиком. Таким образом, выход Fedora Core 5 test 3 переносится на 20 февраля, а на 13 февраля запланирован code-freeze.
Для всех тех, кто задаётся подобным вопросом создан замечательный Linux Distribution Chooser.
Очередной — пятый по счёту — релиз дистрибутива Linux Fedora Core намечен на 15 марта этого года — одновременно с выходом новой версии рабочего стола Gnome. Мне пока остаётся ждать и смотреть на скриншоты тестового билда.
Кстати, разработчики Fedora Core 5 “сделают” мне небольшой подарок на день рождения — именно на этот день — 13 февраля — у них намечен финальный code freeze
Update: На LinClips.com появился Fedora Core 5 Test 2 Screencast.
- Complete .com Address
- Ctrl+Enter
- Complete .net Address
- Shift+Enter
- Complete .org Address
- Ctrl+Shift+Enter
Удобно!
Комментарии