Мы — долго запрягаем, быстро ездим, и сильно тормозим.

FreeBSD
  настройка
  подсчёт трафика
  программы
  почтовые системы
  Шелезяки
  Мелочи
  Файловая система
  WWW
  hosting
  mod_gzip
  mod_log_sql
  mod_geoip
  mod_bandwidth
  mod_accounting
  mod_bunzip2
  mod_mp3
  mod_shapvh
  mod_limitipconn
  mod_sqlinclude
  mod_auth_imap
  webalizer
  Apache + SSL
  auth_ldap
  Настройка AWStats
  apache 2.0
  mod_auth_external
  CMS - TYPO3
  phpBB-2/3
  mod_ntlm
  mod_ntlm2
  Nginx+php+fcgi
  OTRS на Apache1
  OTRS на Apache20
  ApacheStats
  mod_evasive
  Lighttpd
  nginx+php-fpm+mysql
  php + mssql
  MySQL + кодировки
  svn+apache+trac
  php5-oci8
  Lighttpd + Apache
  CMS Drupal 6.9
  Apache22+MySQL
  Оптимизация хоста для CMS
  блокировка spam на www
  PostgreSQL 8
  Apache 22 + PHP5 + suPHP
  lighttpd + mod_uploadprogress
  VirtualBox + phpVirtualBox
  DNS API
  Security
  system
  Games Servers
  X11
  Programming
Очумелые Ручки
OpenBSD
Cisco


www.lissyara.su —> статьи —> FreeBSD —> WWW —> Оптимизация хоста для CMS

Оптимизация хоста для CMS

Автор: Raven2000.


>>> Это старая статья ее новая и переделанная версия находится тут
http://www.ignix.ru/book/freebsd/bonus/optimization_server_to_work_with_cms_cmf <<<


В последнее время на старый и не очень быстрый ПК (Celeron 800 RAM 256) мною было навешано с десяток сайтов и некоторые были из серии тяжелых CMS. И так нам дано FreeBSD 7.1 и ~10 сайтов/CMS. Необходимо немного настроить систему для улучшения отклика веб сервера и скорости выдачи запросов.

Содержание:

  • Узкие места
  • Оптимизация PHP
         Memcached
  • Оптимизация APACHE
         FastCGI
         Nginx
  • Оптимизация MYSQL
  • Настройка TMP (TMPFS)
  • Заключение
  • Ссылки

    Узкие места

    Немного лирики. Изначально нужно изучить и понять пациента. Я не буду много расписывать, но вкратце упомяну следующие важные моменты.

  • Необходимо посмотреть утилиту top и выявить некоторые узкие места, связанные с загруженностью процессора и объеме используемой оперативной памяти. Если ЦП загружен на 100% и\или оперативной памяти не хватает, то выясните что потребляет все ресурсы и попытайтесь исправить положение. Это может быть и сам веб сервер и СУБД и тп.

  • Так же проверьте дисковую подсистему (Разбивка HDD корректировка Swap и диагностика дисковой системы.) инструментом типа vmstat. И если вы видите, что дисковая активность неадекватна при наличие достаточного объема оперативной памяти и не загруженного ЦП значит у вас проблема ввода-ввывода. Это может быть  неверно сконфигурированная БД, фоновое выполнение сценариев, неподходящее использование RAID для приложения с частыми операциями чтения\записи и т.п.

  • Убедитесь в эффективности свопа и tmp. Возможно, его не хватает и\или находится на медленном диске и тп. Решений два это увеличении и\или перенос свопа, а второе это использованиеtmpfs

  • Удостоверьтесь что линия связи не перегружена. Решений два увеличьте канал связи и\или сжимайте передаваемые данные. (существует интересный продукт YSlow и YSlow-Doc это плагин для Firefox интегрирующийся в плагин фокса Firebug. Вкратце YSlow сможет помочь в поисках причины, почему странички на сайте не грузятся так быстро, как хотелось бы, когда ЦП, память, дисковая подсистема не уперлись в потолок)

    Оптимизация PHP

    PHP - язык программирования, созданный для генерирования HTML-страниц на веб сервере и работы с базами данных. В настоящее время поддерживается подавляющим большинством хостинг-провайдеров. Входит в LAMP\BAMP — «стандартный» набор для создания веб-сайтов (Linux\FreeBSD, Apache, MySQL, PHP (Python или Perl)).

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

  • eAccelerator
  • Zend Performance Suite (пропреитарный продукт)
  • Alternative PHP Cache (имеется web интерфейс)
  • XCache

    Я остановился на eAccelerator, и мы начнем его установку.
    cd /usr/ports/ ; make search name=eaccelerator
    Port:   eaccelerator-0.9.5.3
    Path:   /usr/ports/www/eaccelerator
    Info:   An opcode cache for PHP with encoder and loader
    Maint:  ale@FreeBSD.org
    B-deps: autoconf-2.62 autoconf-wrapper-20071109 libiconv-1.11_1 
    libxml2-2.7.3 m4-1.4.12,1 perl-5.8.9_2 php5-5.2.9 php5-session-5.2.9 
    pkg-config-0.23_1
    R-deps: libiconv-1.11_1 libxml2-2.7.3 php5-5.2.9 php5-session-5.2.9 
    pkg-config-0.23_1
    WWW:    http://eaccelerator.net/
    cd /usr/ports/www/eaccelerator ;make install clean
    


    В конце eAccelerator выдал свои пожелания и предложения:
    *********************************************************

    You have installed the eaccelerator package.

    Edit /usr/local/etc/php.ini and add:

    zend_extension="/usr/local/lib/php/20060613/eaccelerator.so"

    Then create the cache directory:

    mkdir /tmp/eaccelerator
    chown www /tmp/eaccelerator
    chmod 0700 /tmp/eaccelerator
    *********************************************************


    Создадим директорию tmp акселератору.
    mkdir /tmp/eaccelerator ;chown www /tmp/eaccelerator
    

    chmod 0700 /tmp/eaccelerator
    


    Прописываем запуск модуля в основной php.ini, но если у вас FastCGI, то у каждого хоста\юзверя будет свой файл и необходимо добавлять эту строчку в нужный php.ini.
    echo "zend_extension="/usr/local/lib/php/20060613/eaccelerator.so"" >> 
    /usr/local/etc/php.ini
    


    Если вы хотите всем и сразу внедрить eAccelerator, то правильней будет добавлять здесь.
    echo "zend_extension="/usr/local/lib/php/20060613/eaccelerator.so"" >> 
    /usr/local/etc/php/extensions.ini
    

    Но ввиду того что у меня есть 2-3 проекта которым акселератор был не нужен да и память жаль и я не добавил в extensions.ini.

    README eAccelerator можно прочитать здесь.
    cat /usr/local/share/doc/eaccelerator/README |more
    


    Меня, например не устраивало расположение eaccelerator.cache_dir и я его поменял и тп.
    # Для установки как модуля Zend:
    
      zend_extension="/usr/lib/php4/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"
    
    # Если вы используете нити безопасной сборки PHP то вы должны использовать
    # "zend_extension_ts" вместо "zend_extension". 
    
    # Для установки как модуля PHP:
    
      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"
    


    И так разберемся с переменными:

  • eaccelerator.shm_size - Объем общей памяти (в мегабайтах), который будет использовать, eAccelerator. "0" назначается ОС по умолчанию. Значение по умолчанию  "0".

  • eaccelerator.cache_dir - Каталог, который используется для дискового кэша. Здесь eAccelerator хранит скомпилированный код, данные сессии, содержание и записей пользователей. Те же данные могут храниться в общей памяти (для более быстрого доступа). Значение по умолчанию "/tmp/eaccelerator".

  • eaccelerator.enable - Включение или выключение eAccelerator. Включение "1" и чтобы отключить "0". Значение по умолчанию "1".

  • eaccelerator.optimizer - Включение или выключение внутреннего оптимизатора, которых может ускорить выполнение кода. Необходимо включить "1" и для того чтобы отключить "0". Значение по умолчанию "1".

  • eaccelerator.debug - Включение или выключение журнала отладки. Должно быть "1" для включения или "0" чтобы отключить. По умолчанию значение "0"

  • eaccelerator.check_mtime - Включение или выключение проверки изменения файлов PHP. Должно быть "1" для включения или "0" чтобы отключить. Вы должны выставить значение на "1", если потребуется проверить перекомпиляцию PHP файлов после изменения. Значение по умолчанию "1".

  • eaccelerator.filter - Определите, какие файлы PHP должна быть кэшированы. Вы можете указать типы шаблонов (например, "*.php *.phtml"), которое указывают направлять это в кэш или нет. Если шаблон начинается со символа "!" то это означает игнорировать файлы которые сопоставляются по следующему шаблону. Значение по умолчанию "", что означает, все PHP скрипты будут кэшироваться.

  • eaccelerator.shm_max - Отключает, размещения больших значений в общую память "eaccelerator_put ()" функции. Он указывает на большой допустимый размер в байтах (10240, 10K, 1М). "0" отключает лимит. Значение по умолчанию "0".

  • eaccelerator.shm_ttl - Когда eAccelerator не может получить в общей памяти место для нового сценария она удаляет все скрипты, которые не обращались к ней последние "shm_ttl" секунд из общей памяти. Значение по умолчанию "0", что означает - не удалять никакие файлы из общей памяти.

  • eaccelerator.shm_prune_period - Когда eAccelerator не может получить общей памяти для нового скрипта он должен удалить старый скрипт, если предыдущие попытки были сделаны более чем "shm_prune_period" секунд назад. Значение по умолчанию "0", что означает - не не удалять файлы из общей памяти.

  • eaccelerator.shm_only - Включение или выключение кэширование скомпилированных скриптов на диске. Это никак  не влияет на данные сессии или содержание кэша. Значение по умолчанию "0", что означает - использовать диск и общую память для кэширования.

  • eaccelerator.compress - Включение или выключение сжатия кэшированного контента. Значение по умолчанию "1", что включает сжатие.

  • eaccelerator.compress_level - Уровень сжатия, использованный для содержимого кэша. Значение по умолчанию "9", что является максимальным значением.

  • eaccelerator.name_space - Эта строка для всех ключей. Она позволяет двум приложениям, которые используют одни и те же ключевые имена запускаться на том же хосте, установив это в htaccess либо в основном конфигурационном файле веб-сервера.

  • eaccelerator.keys
  • eaccelerator.sessions
  • eaccelerator.content
        Определите, какие ключи, данные сеанса и содержимого будут кэшироваться. Возможны
        следущие значения:
       "shm_and_disk" - кэш данных в общей памяти и на диске (значение по умолчанию)
       "shm"          - данные кэша в общей памяти или на диске в общей памяти и при большом
                        заполнением данными применяется "eaccelerator.shm_max"
       "shm_only"     - данные в кэше в общей памяти
       "disk_only"    - данные в кэше в диске
       "none"         - не кэшировать данные

  • eaccelerator.allowed_admin_path - Путь для скриптов, которым разрешено получать информацию и управление администратора.

    После включения eAcceleratorа вы уже можете почувствовать разницу =)

  • Memcached
    Часто система показывает падение производительности MYSQL, например, когда данные должны быть перемещены на более медленное устройство, например HDD и\или получены с него. Можно обойти эту ситуацию для данных, которых сохранять не нужно (например, данные о сеансе)? Можно и использовать Memcached

    Port:   pecl-memcached-0.1.4
    Path:   /usr/ports/databases/pecl-memcached
    Info:   PHP extension for interfacing with memcached via libmemcached library
    Maint:  gslin@gslin.org
    B-deps: ~~~
    R-deps: ~~~
    WWW:    http://pecl.php.net/package/memcached
    


    Не  работает с CGI версией php5 и ему нужен CLI, а это убивает желание жить =)
    This port requires the CLI version of PHP, but you have already
    installed a PHP port without CLI.


    Из-за этого мне не получится ее поюзать =) Если вкратце, то memcached сохраняет данные в RAM и обслуживает данные с максимальной возможной скоростью недоступной HDD отсюда следует прирост производительности.

    Оптимизация Apache

    Теперь Apache...

  • RAM - ну что можно сказать в первых отключите в Apache те модули, которые вами не используются.

  • MaxClients - RAM не резиновый и надо экономить для этого будем корректировать MaxClients. Воспользуемся утилитой top чтобы понять сколько в среднем используется памяти для каждого запроса у меня составило примерно 15 Mb на процесс вычислим значение, к примеру, у меня 1 Gb Ram.
    1024 Ram / 15 Ram на процесс = 70 (68,266) MaxClients
    Вот это значение 70 мы и выставляем в MaxClients.

  • MaxRequestsPerChild - если RAM на сервере мало, а CPU быстрый то можно сделать так. При использования памяти процессами веб сервер имеет тенденцию увеличится до уровня самой требовательной к памяти страницы, которую обслуживает этот дочерний процесс, память можно вернуть установим низкое значение MaxRequestsPerChild к примеру 300-400 (в зависимости от ситуации) Работа Apache несколько замедлится тк ему придется генерировать новые дочерние процессы, однако последние будут использовать меньше оперативной памяти. И в итоге мы сможем обслужить больше запросов при меньшем объеме памяти. Значение 0 - означает, что дочерние процессы никогда не завершаются.

  • mod_expires -Этот модуль Apache позволяет  посылать HTTP-заголовки Expires, кэшируя все статические файлы в пользовательском браузере, например в течение 2х недель либо до появления новых версий файлов. Касаемо файлов изображений, CSS, JavaScript и тп. В выводе меньший трафик и освобождение полосы пропускания.
    # cat /usr/local/etc/apache2/httpd.conf |grep expires
    LoadModule expires_module libexec/apache2/mod_expires.so
    


    И в .htaccess вашего CMS включите следующее.
    # Requires mod_expires to be enabled.
    <IfModule mod_expires.c>
      # Разрешить истечение срока.
      ExpiresActive On
    
      # Кешировать все файлы сроком на 2 недели после доступа(A).
      ExpiresDefault A1209600
    
      # Не кешировать динамически генерируемые страницы.
      ExpiresByType text/html A1
    </IfModule>
    


  • .htaccess - так же можно перенести директивы из .htaccess в httpd.conf. Поиск, чтение  и разбор файлов .htaccess происходит при каждом запросе. С другой стороны httpd.conf читается один раз при запуске Apache. Вам будет необходимо перенести содержимое .htaccess в httpd.conf и запретить поиск файлов .htaccess в пределах корневого каталога сервера, установив AllowOverride в None
    <Directory />
    AllowOverride None
    ...
    </Directory>
    


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

  • FastCGI - Очень рекомендую использовать FastCGI в виду конечной скорости обработки. Не буду изобретать велосипед см Apache2 + php5 + mod_fastcgi
    Процитирую wiki:
    Интерфейс FastCGI — клиент-серверный протокол взаимодействия вебсервера и приложения, дальнейшее развитие технологии CGI. По сравнению с CGI является более производительным и безопасным.
    FastCGI ликвидирует множество ограничений CGI-программ. Проблема CGI-программ в том, что они должны быть перезапущены веб-сервером при каждом запросе, что приводит к понижению производительности.


  • Nginx - Так же на фронт можно установить и Nginx - про частичную установку его можно прочитать тут Веб сервер на много коннектов и высокую нагрузку (nginx+php-fpm+mysql)

    Оптимизация MYSQL

    Дошли и до муси. В MYSQL есть возможность кэширования часто встречающихся запросов в оперативной памяти, и при поступлении конкретного запроса в MYSQL она возвратит его непосредственно из кеша. Однако в MYSQL по умолчанию эта функция отключена. И нам необходимо править конфигурационный файл MYSQL my.cnf Мы для примера добавим кэш размером в 64МБ. И на будущее с этим кэшом необходимо экспериментировать, чтобы добиться максимальной эффективности. Слишком маленький кэш приведет к тому, что кэшируемые запросы очень часто будут недействительными, а чересчур большой повлечет за собой относительно длительный поиск в кэше. Память будет неэффективно использоваться которая, могла бы пригодится другим службам.
    [mysqld]
    # Включам кэш запросов равным 64МБ
    query_cache_size=64M
    # Для индификации ресурсоемких запросов включаем следующее.
    # Это приведет к регистрации
    # всех запросов, для которых требуется больше 5 секунд (порог можете менять)
    long_query_time = 5
    log-slow-queries = /var/log/mysql/slow.log
    


    Создаем лог меделенных запросов.
    touch /var/log/mysql/slow.log
    chown mysql:mysql /var/log/mysql/slow.log
    


    Перезапустим mysql-server
    /usr/local/etc/rc.d/mysql-server restart
    


    Проверим настройку
    mysql -u otor --password=*****
    Welcome to the MySQL monitor.  Commands end with ; or \g.
    Your MySQL connection id is 692516
    Server version: 5.0.77 FreeBSD port: mysql-server-5.0.77_1
    
    Type 'help;' or '\h' for help. Type '\c' to clear the buffer.
    
    mysql> show variables like 'query_cache%';
    +------------------------------+----------+
    | Variable_name                | Value    |
    +------------------------------+----------+
    | query_cache_limit            | 1048576  |
    | query_cache_min_res_unit     | 4096     |
    | query_cache_size             | 67108864 |
    | query_cache_type             | ON       |
    | query_cache_wlock_invalidate | OFF      |
    +------------------------------+----------+
    5 rows in set (0.00 sec)
    


    Как видим мы включили кэш (query_cache_type ON) и установили размер его равным 64МБ (query_cache_size 67108864)

  • Изменение типа таблиц с MyISAM на InnoDB
    MYSQL использует два варианта типа таблиц MyISAM и InnoDB. По умолчанию MYSQL использует MyISAM.
    MyISAM использует блокировку на уровне таблиц, а InnoDB на уровне строк. Блокировка очень важна для сохранении целостности базы данных она препятствует одновременному обновлению одних и тех же данных двумя разными процессами БД. Посмотрим, является ли причина плохой производительности блокировка таблиц. Для этого посмотрим кол-во конфликтных блокировок в MySQL это Table_locks_immediate и Table_locks_waited
    mysql> show status like 'Table%';
    +-----------------------+-------+
    | Variable_name         | Value |
    +-----------------------+-------+
    | Table_locks_immediate | 29958 |
    | Table_locks_waited    | 0     |
    +-----------------------+-------+
    2 rows in set (0.00 sec)
    


    Table_locks_immediate - количество случаев, когда блокировка таблицы была получена немедленно.
    Table_locks_waited - когда получение блокировка таблиц сопровождалось ожиданием. Если это значение велико, то у вас проблемы =)
    Если у вас CMS, например Drupal то можно некоторые таблицы преобоазовать в InnoDB, например cache, watchdog, session, acceslog делается это так.
    mysql> alter table cache type='InnoDB';
    


    (Для настройки производительности MYSQL можно загрузить сценарий MySQL Performance Tuning Primer Script) который позволяет корректировать переменные сервера MySQL.

    Настройка TMP (TMPFS)

    TMPFS - использование RAM в качестве tmp, что само собой разумеется, быстрей и эффективней чем, он бы располагался на HDD. TMPFS появился только в [url=http://www.freebsd.org/releases/7.0R/relnotes.htmlFreeBSD 7.0-RELEASE [/url], так что меня не спрашивать, почему у меня на 6.х она не работает =) Пробежимся по настройке.
    Для включения в ядро добавьте:
    options TMPFS
    


    Если не хотите встраивать в ядро можете добавить модуль в loader.conf:
    tmpfs_load="YES"
    


    Переменные
    gid - root группа(group) id.
    uid - root пользователь(user) id.
    mode - разрешений в восьмеричной форме.
    inodes - максимальное количество индексных дескрипторов.
    size - максимальный размер (в байтах) для файловой системы.
    


    Вручную можно примонтировать так:
    mount -t tmpfs -o size=1024M tmpfs /tmp
    


    Незабудем в fstab закомментить старый слайс tmp и добавить новый.
    #/dev/mirror/gm0s1f      /tmp            ufs     rw              2       2
    tmpfs                   /tmp            tmpfs   rw              0       0
    


    Hint - Для работы MSQL необходимо выставить правильные права на директорию /tmp
    и примонтировать tmpfs или ребутнутся.
    chmod 1777 /tmp
    


    Перезагрузитесь и tmpfs вас порадует. =)

    Заключение

    В свете вышесказанного и при применении даже некоторой части рекомендованного здесь вы увидите как ваш веб сервер "оживет". Ну, если этого не произошло или вы не добились значительных результатов, то видимо вам пришло время закупать более мощное железо. На сим откланиваюсь нижайшее вам кисточкой вечно ваш Raven2000 =)

    Ссылки

  • eAccelerator
  • Zend Performance Suite
  • Alternative PHP Cache
  • XCache
  • TMPFS
  • Improving Drupal's page loading performance
  • CMS Drupal 6 Pro Drupal Development



    Ссылка на обсуждение: http://forum.lissyara.su/viewtopic.php?f=14&t=16840.

    размещено: 2009-04-03,
    последнее обновление: 2011-03-19,
    автор: Raven2000

    оценить статью:

    junqed, 2009-04-04 в 18:06:52

    Проект Eaccelerator что то как то загнулся, пхп обновился, а акселератор - нет, в итоге апач после обновления падает в корку

    Sadok, 2009-04-04 в 18:46:16

    2 junqed Ну, АРС последний у меня тоже не собрался на FreeBSD 7.2-PRERELEASE :)

    lissyara, 2009-04-04 в 20:35:02

    В документации чётко написано, что при обновлении php надо пересобирать акселератор.
    Тока её никто не читает, зато все умеют делать далекоидущие выводы о том кто почему загнулся =))

    Sadok, 2009-04-04 в 20:40:59

    Не. Сервак с нуля ставился. Порты обновил, конечно. Ставил мускул, потом апач, потом пэхопэ. А АСР не собрался новый (впрочем, он бета). 3.0.19 - без вопросов. Фря amd64 - может и поэтому...

    junqed, 2009-04-06 в 7:50:50

    Читал я и документацию. Имею в виду сам проект, последний релиз был Release-0.9.5.3 - 2008/05/18, и с послед. версиями пхп он как-то не дружит.

    Raven2000, 2009-04-06 в 9:07:16

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

    terr0rist, 2009-04-08 в 12:51:36

    Cтатья неплохая, но уж очень много ошибок, опечаток или не знаю чего. Автору совет - работать над грамотностью.
    Кстати, tmpfs может быть успешно заменён tmpmfs, т.е. просто ФС в RAM - см. rc.conf.

    Raven2000, 2009-04-08 в 13:19:04

    to terr0rist
    если заметили опечатки или есть просьба добавить что-то то постить тут Ссылка на обсуждение и я откорректирую статью.

    mahoro, 2009-04-10 в 1:45:42

    В MySQL нужно обязтельно увеличить значение переменной key_buffer_size. Результат будет куда заметней, чем от query_cache.

    playnet, 2009-04-14 в 16:24:25

    Вот пишут про оптимизации... А почему никто не пишет, как смотреть загрузку того же апача или мускуля?
    Сколько они реально едят памяти, буферов, кэша..
    Загрузку того же query_cache хорошо бы посмотреть, key_buffer итд.
    И если у апача можно /server-status настроить, то как мускуь смотреть?

    sens, 2009-04-23 в 21:39:47

    к чему критика
    автор поделился своими наработками
    естественно, никто не знает всего ;)

    лучше б контсруктивно дополняли

    titan, 2009-05-28 в 12:00:22

    Спасибо RAVEN2000. Отличная статья.

    HOSTER, 2009-09-12 в 0:32:49

    АРС вместе с ZendOptimizer вместе НЕ работают и не работали.
    Апач падает, уже сколько версий проверил. :(

    sens, 2009-09-12 в 9:26:01

    а на какой ОС ? случайно не на 64-х битной?

    adre, 2009-10-29 в 12:45:28

    Помоему лучше ставить в мускул сразу оптимизаю запросов при вставке, вставляться конечно подольше, но при большем кол-ве обращений устойчивее почему-то работает, + производительность можно нахаляву смотреть в phpmyadmin (там же вкыл выкл снятия статистики).... т.к. всеравно запросов типа select очень много, под выполнение сценариев (как правило хватает 16mb (имеется ввиду для скорости) для пхп)....

    незнаю зачем я это написал =/

    paix, 2009-12-05 в 9:33:23

    это что у тебя мыскиль данные хранит на tmpfs ?
    этоже диверсия!

    risk94, 2011-01-14 в 10:32:37

    так и нет поддержки php 5.3.* у eaccelerator ....

    kav, 2011-03-19 в 17:43:24

    вообще то работает отлично.
    а по поводу статьи, в пункте "Оптимизация APACHE" надо было коротко написать - "не используем апач вообще".


    Оставьте свой комментарий:
    Ваше имя:   *
    e-mail:  
    жирный
    наклонный
    подчёркнутый
    ссылка
    цвет
    Нынешний год:   *
     


  • Хостинг HOST-FOOD

    2014-07-27, lissyara
    gmirror

    Удалённое создание софтверного зеркала средствами gmirror, на диске разбитом с использованием gpart. Использование меток дисков для монтирования разделов.
    2013-08-20, zentarim
    Scan+Print server FreeBSD 9

    Настройка сервера печати и сервера сканирования под управлением операционной системы FreebSD 9 для МФУ Canon PIXMA MP540
    2011-11-20, BlackCat
    Разъём на WiFi-карту

    Делаем съёмной несъёмную антену на WiFi-карте путём установки ВЧ-разъёма
    2011-09-14, manefesto
    Настройка git+gitosis

    Настройка системы контроля версия исходного кода в связке git+gitosis+ssh
    2011-08-14, zentarim
    Wi-FI роутер + DHCP + DNS

    Настройка Wi-Fi роутера на Freebsd 8 + DNS сервер + DHCP сервер: чтобы Wi-Fi клиенты были в одной подсети с проводными, проводные и беспроводные клиенты получали адреса автоматически по DHCP, кэширующ
    2011-06-15, -ZG-
    Охранная система на FreeBSD+LPT

    В этой статье описана попытка реализации простой охранной системы на базе FreeBSD с подключением к ней охранных устройтсв на LPT порт и видеорегистрацией.
    2011-03-13, terminus
    ng_nat

    Описание работы ng_nat, практическое использование, достоинства и недостатки в сравнении с ipfw nat
    2011-02-20, Капитан
    Nagios+Digitemp

    Статья описывает создание системы оповещения о превышении температуры в специальных помещениях на основе Nagios с использованием программы Digitemp.
    2011-02-17, Le1
    Zyxel Configuration

    Скрипт для массового изменения конфига свичей Zyxel. Берет из файла iplist список ip-шек, заходит последовательно на каждый и выполняет комманды из файла commands, записывая происходящее в лог файл.
    2011-02-16, fox
    hast carp zfs ucarp cluster

    HAST (Highly Available Storage), CARP, UCARP, ZFS, Cluster настройка и одаптация плюс личные размышления…
    2011-02-04, BlackCat
    Восстановление ZFS

    История о том, как был восстановлен развалившийся RAIDZ ZFS-пул (перешедший в FAULTED) с помощью скотча и подручных средств. Или о том, какие приключения ожидают тех, кто не делает резервных копий.
    2011-02-03, Капитан
    1-Wire

    Статья описывает самостоятельное изготовление контроллера DS9097 для съёма показаний с датчиков температуры DS1820 с помощью программы Digitemp.
    2011-01-28, Капитан
    Температура в серверной

    Статья описывает построение системы наблюдения за температурой в помещении серверной с использованием программы Digitemp и выводом графиков в MRTG
    2011-01-21, m4rkell
    Syslog server

    Как то буквально на днях, у нас завалилось, что то в еве) или не в еве не суть. Суть в том, что когда захотели снять логи с хостов esx обнаружили, что хранят эти негодяи логии только за последнии сутк
    2011-01-07, lissyara
    Canon/gphotofs

    Монтирование цифровых фотоаппаратов Canon (PTP) как файловой системы, автоматизация этого процесса через события devd и внешние скрипты.
    2010-12-13, Al
    IPSec

    Описание принципов работы IPSEC и способов аутентификации.
    2010-12-07, manefesto
    FreeBSD on flash

    Было принято решении переехать на USB Flash и установить минимальный джентельменский набор для работы своего роутера. Делаем =)
    2010-12-05, Fomalhaut
    root ZFS, GPT

    Инструкция по установке FreeBSD с использованием в качестве таблицы разделов GPT и в качестве основной файловой системы - ZFS
    2010-09-05, Cancer
    Настройка аудиоплеера на ximp3

    Цели: Простенький аудиоплеер, для того что бы тетя продавец в магазине утром пришла нажала на кнопку Power и заиграла в зале музыка, так же был доступ по сети, общая шара куда можно заливать музыку, к
    2010-08-31, Cancer
    Установка и настройка OpenVPN

    На днях появилась задача - объединить головной офис и 3 филиала в одну сеть через интернет посредством OpenVPN, чтобы люди могли подключаться через RDP к базам 1С на серверах.
    2010-08-25, manefesto
    freebsd lvm

    Использование linux_lvm для работы с LVM разделами из-под FreeBSD. Проблемы которые возники при монтирование lvm раздела
    2010-04-30, gonzo111
    proftpd file auth&quota

    Proftpd - квоты и авторизация из файлов, без использования базы данных и/или системных пользователей
    2010-04-22, lissyara
    tw_cli

    Пошаговая инструкция по восстановлению RAID на контроллере 3ware, из которого выпал один диск. Настройка мониторинга состояния рейда и отчётов о его состоянии на email.
    2010-04-14, fox
    MySQL Master+Master

    MySQL (Master Master) and (Master Slave) Как настроить репликацию…
    2010-03-22, Mufanu
    named 9.7.0

    Система доменных имен (Domain Name Service, DNS) - одна из тех незаметных, закулисных программ, которым не уделяется и половины того внимания, которого они заслуживают.
    2010-03-09, terminus
    DNS zones

    Краткий ликбез про управление DNS зонами. Примеры проведения делегирования прямых и обратных DNS зон.
    2010-03-09, aspera
    Squid+AD (group access)

    Настройка прокси сервера SQUID с автроризацией пользователей в AD. Разделение пользователей на группы
    2010-03-02, BlackCat
    Шлюз: Часть 4

    Настройка дополнительных сервисов: синхронизация времени (OpenNTPD), клиент DynDNS.org.
    2010-03-01, BlackCat
    Шлюз: Часть 3

    Настройка DHCP и DNS серверов для работы внутри частной сети, c поддержкой внутренних (частных зон) DNS, а так же интеграция DHCP и DNS сервисов.
    2010-03-01, BlackCat
    Шлюз: Часть 2

    Конфигурация МСЭ pf для проброса портов с изменением порта назначения и без, а так же поддержки активного режима FTP и ограничения максимального размера сегмента
    2010-03-01, BlackCat
    Шлюз: Часть 1

    Быстрая настройка шлюза/маршрутизатора с установлением PPPoE-соединения, поддержкой NAT и DNS-forwarding.
    2010-02-23, Morty
    darkstat

    Простая считалка траффика, со встроенным веб-сервером. Очень маленькая, может делать отчеты трафика по хостам, портам, протоколам, а также строить графики
    2010-01-23, gonzo111
    squid+sams+sqstat

    Пилим squid и sams - примеры конфигов с объяснениями. Установка SqStat.
    2009-12-19, schizoid
    mpd5 + radius + ng_car + Abills

    Настройка pppoe-сервера с биллинговой системой Abills и шейпером ng_car
    2009-11-16, lissyara
    UFS->ZFS

    Удалённая миграция с UFS на ZFS. Загрузка с раздела zfs. Настройка для работы с малым количеством памяти под архитектурой i386.
    2009-11-13, gx_ua
    fusefs-ntfs

    Установка, настройка и использование fusefs-ntfs, драйвер NTFS, предназанченного для монтирования NTFS разделов под FreeBSD
    2009-11-12, Morty
    LiveCD

    Создание собственного LiveCD с необходимыми вам изменениями, автоматизирование данного процесса, а так же вариант скоростной сборки СД.
    2009-09-27, lissyara
    Samba как PDC

    Контроллер домена - аналог M$ NT4 домена под самбой, без использования LDAP и прочей хиромантии. Просто и быстро =)
    2009-08-30, terminus
    ipfw nat

    Подробное руководство по ipfw nat, сложные случаи конфигурации.
    2009-08-24, levantuev
    HotSpot

    Установка Hotspot системы в общественное заведение.
    2009-08-18, lissyara
    diskless

    Создание бездисковых терминалов под управлением FreeBSD - с загрузкой по сети. Используются для старта rdesktop и подключения к виндовому серверу терминалов.
    2009-07-29, BAV_Lug
    Видеонаблюдение

    Настройка бюджетного варианта видеонаблюдения на удаленном объекте
    2009-07-22, Cancer
    OpenLDAP адресная книга

    Настройка и создание адресной книги на базе OpenLDAP + phpLDAPadmin
    2009-06-30, SergeySL
    AimSniff

    Руководство по созданию системы мониторинга ICQ-переписки на базе AimSniff, использующей базу данных MySQL для хранения и Web-интерфейс WAS (Web Aim Sniff) для просмотра перехваченных сообщений
    подписка

        вверх      
    Статистика сайта
    Сейчас на сайте находится: 11 чел.
    За последние 30 мин было: 78 человек
    За сегодня было
    6952 показов,
    1032 уникальных IP
     

      Этот информационный блок появился по той простой причине, что многие считают нормальным, брать чужую информацию не уведомляя автора (что не так страшно), и не оставляя линк на оригинал и автора — что более существенно. Я не против распространения информации — только за. Только условие простое — извольте подписывать автора, и оставлять линк на оригинальную страницу в виде прямой, активной, нескриптовой, незакрытой от индексирования, и не запрещенной для следования роботов ссылки.
      Если соизволите поставить автора в известность — то вообще почёт вам и уважение.

    © lissyara 2006-10-24 08:47 MSK

    Время генерации страницы 0.1815 секунд
    Из них PHP: 48%; SQL: 52%; Число SQL-запросов: 86 шт.
    Исходный размер: 155251; Сжатая: 30738