Red Drag 18 Опубликовано: 11 января 2010 Рассказать Опубликовано: 11 января 2010 Многие сайты на DLE уже стали крупными порталами требующие больших ресурсов от сервера.Но денег на собственный сервер нет,а сайт продолжает расти и потребляет все больше,одним из возможных способов уменьшить нагрузку является не только отключение некоторых возможностей самой CMS но и оптимизация сервера как VPS,виртуального хостинга,так же есть смысл оптимизировать собственный сервер. На своих сайтах я пока что настраивал только php,и могу немного рассказать как это делать.Для надо вообще узнать свои настройки для этого создаем в корневой папке сайта файл с разрешением .php с содержимым <?php phpinfo() ?> Далее открываем этот файл http://ваш_сайт.ru/название_файла.php Я могу описать очень мало пунктов. memory_limit - Ограничивает оперативную память под выполнение скриптов. post_max_size и upload_max_filesize - ограничивают максимальный размер загружаемого файла. Все что я привел выше это конечно не оптимизация сервера,но многие спрашивают как увеличить максимальный размер загружаемого файла Где настраивается php зависит от операционной системы вашего сервера,у меня Windows и настраивается в папке C:\php\php.ini На виртуальном хостинге настраивать php можно только в режиме cgi,и если я не ошибаюсь это поддерживают не все хостеры. Что касается Linux серверов то я с ними не работал. С настройками Apache и иных программ на сервере и не сталкивался. В общем,смысл темы делиться опытом и настройками серверов Цитата Ссылка на сообщение Поделиться на других сайтах
WWW.ZEOS.IN 1 161 Опубликовано: 11 января 2010 Рассказать Опубликовано: 11 января 2010 Чтобы в Linux найти свой php.ini можно запустить комманду: find / -name "php.ini" Также хорошая статья про MySQL кеширование После изменений в файле php.ini не забываем перезапустить Apache, чтобы он прочитал новые данные конфигурационного файла. Для того, чтобы перезапустить Apache можно использовать комманду: /etc/init.d/httpd restartУ кого на сервере редактор VI и других нет, вот документация по этому редактору: http://lib.ru/unixhelp/vi.txt Цитата Ссылка на сообщение Поделиться на других сайтах
Red Drag 18 Опубликовано: 11 января 2010 Рассказать Опубликовано: 11 января 2010 (изменено) Автор Чтобы в Linux найти свой php.ini можно запустить комманду: find / -name "php.ini" Также хорошая статья про MySQL кеширование После изменений в файле php.ini не забываем перезапустить Apache, чтобы он прочитал новые данные конфигурационного файла. Для того, чтобы перезапустить Apache можно использовать комманду: /etc/init.d/httpd restart У кого на сервере редактор VI и других нет, вот документация по этому редактору: http://lib.ru/unixhelp/vi.txt Да,совсем забыл про апач,на windows его тоже не забываем перезапустить! Также надеюсь celsoft выложит рекомендуемые настройки php,апача и других Изменено 11 января 2010 пользователем Red Drag Цитата Ссылка на сообщение Поделиться на других сайтах
WWW.ZEOS.IN 1 161 Опубликовано: 11 января 2010 Рассказать Опубликовано: 11 января 2010 CRON Ищем свой CRON: find / -name "crontab" Открываем: vi /etc/crontab и добавляем правило для autobackup.php (файл обязательно переименовать!) #minute hour mday month wday who command 0 1 * * * root wget http://site.ru/autobackup.php && rm autobackup.php*.php wget это тем, у кого нет интерпритатора php Между цифрами и звёздочками ставим только табуляцию (клавиша TAB) Первая цифра означает срабатывать в 0 минут Вторая цифра означает срабатывать в 1 час ночи Первая звёздочка означает срабатывать каждый день Вторая звёздочка означает срабатывать каждый месяц Третья звёздочка означает срабатывать каждый день недели Там где написано who это значит от имени какого пользователя запускать комманду CRON-ом command - соответственно сама команда Например, если мы хотим сделать, чтобы наш файл запускался каждый день в 12:34, то в CRON надо прописать так: 34 12 * * * root wget http://site.ru/autobackup.php && rm autobackup.php*.php После внесения изменений в файл: /etc/crontab необходимо перезапустить CRON, чтобы он прочитал новые правила. Цитата Ссылка на сообщение Поделиться на других сайтах
Red Drag 18 Опубликовано: 11 января 2010 Рассказать Опубликовано: 11 января 2010 Автор Общие настройки Так же как и в случае с "httpd.conf", вам нужно будет сделать правку файла "php.ini". Директива, разрешающая заключать PHP-код в короткие тэги: short_open_tag = On Т. е. вот в такие "<? ?>", вместо таких "<?php ?>" или "<script>". Вывод ошибок в браузер. Для облегчения отладки сценариев: display_errors = On Показывать все ошибки, кроме замечаний: error_reporting = E_ALL & ~E_NOTICE Запись ошибок в файл журнала. Для локального тестирования лучше отключить: log_errors = Off Порядок, в котором PHP будет регистрировать перменные (E - встроенные переменные, G - GET переменные, P - POST переменные, C - Cookies, S - сессии). Отсутствие какой-либо из букв не позволит вам работать с соответствующими переменными. Задайте следующий порядок: variables_order = "EGPCS" Возможность обращения к переменным, поступающим через GET/POST/Cookie/сессии, как к обычным переменным (например, "$переменная"). Не рекомендуется включать эту опцию, но включайте, иначе вы сможете обращаться к этим переменным только через суперглобальные массивы (например, "$_POST['переменная']): register_globals = On Отключение автоматической обработки кавычек, поступающих через POST/GET/Cookie: magic_quotes_gpc = Off Загрузка файлов Разрешает загрузку файлов: file_uploads = On Каталог для временных закачанных файлов (не забудте создать этот каталог!): upload_tmp_dir = C:\Temp\uploadtemp Максимальный размер закачиваемого файла: upload_max_filesize = 5M Динамически загружаемые расширения Путь к папке с расширениями PHP: extension_dir = extensions или абсолютный: extension_dir = C:\Server\PHP\extensions Подключение динамических библиотек. Включайте только те, которые вам нужны. Для подключения того или иного расширения просто раскомментируйте нужную строку. Например, для подключения графической библиотеки GD, раскомментируйте следующую строку: extension=php_gd2.dll Настройка SMTP-сервера Используемый SMTP-сервер: SMTP = localhost Порт: smtp_port = 25 Адрес, который будет указываться в поле "From" в элетронных письмах: sendmail_from = your@email.name Настройка MySQL Внимание: В каких-то версиях PHP, поддержка MySQL встроена в ядро, и следовательно, никаких дополнительных расширений для работы с этой БД подключать не надо, а в каких-то нет. Так что, если в архиве с расширениями, который вы скачали, нет библиотеки "php_mysql.dll", то ваша версия PHP поддерживает MySQL, если же эта библиотека присутствует, то вам нужно ее подключить: extension=php_mysql.dll Указание порта: mysql.default_port = 3306 и хоста MySQL по умолчанию: mysql.default_host = localhost Настройка сессий Хранить данные сессий в файлах: session.save_handler = files Папка для хранения файлов сессий (не забудте создать этот каталог!): session.save_path = C:/Temp/session Использовать cookie в сессиях: session.use_cookies = 1 Исользовать в качестве имени сессии и сессионной cookie ID сессии: session.name = PHPSESSID Запрет на инициализацию сессии при начале соединения: session.auto_start = 0 Время жизни сессионных cookie ("0" - до закрытия окна браузера): session.cookie_lifetime = 0 ID сессии будут добавляться ко всем ссылкам на странице автоматически (если у пользователя отключены cookie): session.use_trans_sid = 1 Настройка PHP завершена. Перезапустите Apache для вступления в силу сделанных изменений. Цитата Ссылка на сообщение Поделиться на других сайтах
WWW.ZEOS.IN 1 161 Опубликовано: 12 января 2010 Рассказать Опубликовано: 12 января 2010 MySQL Выкачка *********************************************** Для того, чтобы выкачать информацию из базы данных MySQL в отдельный файл, нам надо найти: mysqldump Запускаем команду: find / -name "mysqldump" Допустим это будет: /usr/mysql/bin/mysqldump Запускаем команду: /usr/mysql/bin/mysqldump -uЛОГИН -pПАРОЛЬ НАЗВАНИЕ БАЗЫ > /volume1/web/123.sql В этом примере у нас по адресу: /volume1/web/ будет лежать файл 123.sql в котором будет бекап нужной нам базы. Если Вы хотите, чтобы название файла было не 123.sql, а каждый раз разное, то можно прописывать так: Запускаем команду: /usr/mysql/bin/mysqldump -uЛОГИН -pПАРОЛЬ НАЗВАНИЕ БАЗЫ > /volume1/web/`date "+%d-%m-%Y_%H:%M:%S"`.sql В итоге файл будет иметь имя, например, 13-10-2009_23:30:52.sql Если Вы хотите сделать полный бекап баз данных (всех её баз, а не какой-то конкретной), то нужно делать так: Запускаем команду: /usr/mysql/bin/mysqldump -uЛОГИН -pПАРОЛЬ --opt --all-databases > /volume1/web/123.sql Если Вы не хотите делать бекап через файл: autobackup.php при помощи PHP, то можно в CRON добавить правило: 0 0 * * * root /usr/mysql/bin/mysqldump -uЛОГИН -pПАРОЛЬ --opt --all-databases > /volume1/web/`date "+%d-%m-%Y"`.sqlПосле этого у Вас каждый день в 0 часов 0 минут будет создаваться полный бекап баз данных и он будет сохраняться по адресу /volume1/web/ и будет иметь имя, например, 13-10-2009.sql Закачка *********************************************** Для того, чтобы закачать свой дамп базы в MySQL нам надо найти: mysql Запускаем команду: find / -name "mysql" Допустим это будет: /usr/mysql/bin/mysql Запускаем команду: /usr/mysql/bin/mysql --user=ЛОГИН --password=ПАРОЛЬ --default-character-set=КОДИРОВКА БАЗА ДАННЫХ < /volume1/web/123.sql Пример: /usr/syno/mysql/bin/mysql --user=root --password=12345 --default-character-set=cp1251 test < /volume1/web/proba.sql Вот этим: /volume1/web/proba.sql - мы указываем откуда брать нашу базу. Перед тем, как запускать данный код, убедитесь, что существует такая база (в примере test) и что она обязательно пустая! Если она не будет пустая и таблицы будут одинаковые, то будет ошибка. Если Вы хотите восстановить бекап всех баз данных с одного файла, то просто в предыдущем примере не указывайте: БАЗА ДАННЫХ После того, как Вы закачали свою базу данных в MySQL перезапустите MySQL Цитата Ссылка на сообщение Поделиться на других сайтах
WWW.ZEOS.IN 1 161 Опубликовано: 13 января 2010 Рассказать Опубликовано: 13 января 2010 Включаем: Server-Status http://httpd.apache.org/docs/2.0/mod/mod_status.html Картинка пример: Находим файл: httpd.conf, для этого надо запустить команду: find / -name "*httpd.conf*" Допустим это будет: /usr/apache/conf/httpd.conf Заходим в файл: /usr/apache/conf/httpd.conf и в самом низу добавляем такой код: ExtendedStatus On <Location /server-status> SetHandler server-status Order Allow,Deny Allow from all </Location> После изменений в файле httpd.conf не забываем перезапустить Apache, чтобы он прочитал новые данные конфигурационного файла. Теперь по адресу: _http://site.ru/server-status/index.html?refresh=5 будет показываться информация о сервере, с интервалом обновления 5 секунд. Если Вы хотите, чтобы данная статистика была доступна не для всех, то можно разрешить показывать её только для определённых IP. Для этого надо заменить: Order Allow,Deny Allow from all на: Order Deny,Allow Deny from all Allow from 123.123.123.123 Allow from 234.234.234.234 Также Вам надо убедиться, что у Вас присутствует и подключён данный модуль: LoadModule status_module modules/mod_status.so ExtendedStatus On в запросах (Request) показывает только первые 63 знака, а потом обрезает. Если хочется увидеть последние 63 знака, то надо добавить строчку: SeeRequestTail On, чтобы вышло так: ExtendedStatus On SeeRequestTail On <Location /server-status> SetHandler server-status Order Allow,Deny Allow from all </Location> Например, запрос: GET /disk1/storage/apache/htdocs/images/imagestore1/food/apples.jpg HTTP/1.1 При ExtendedStatus On будет отображатся так: GET /disk1/storage/apache/htdocs/images/imagestore1/food/apples Вместе с SeeRequestTail On будет отображатся так: orage/apache/htdocs/images/imagestore1/food/apples.jpg HTTP/1.1 То, что я отметил красным, это одинаковое, а черным это разница. 1 Цитата Ссылка на сообщение Поделиться на других сайтах
WWW.ZEOS.IN 1 161 Опубликовано: 14 января 2010 Рассказать Опубликовано: 14 января 2010 Включаем ведение логов доступа и ошибок Apache Находим файл: httpd.conf, для этого запускаем команду: find / -name "*httpd.conf*" Допустим это будет адрес: /usr/apache/conf/httpd.conf Далее в файле: /usr/apache/conf/httpd.conf ищем строчку: ErrorLog /dev/null и заменяем на: ErrorLog /volume1/logs/error.log Этим мы включаем ведение логов ошибок. Лог файл будет создаваться по адресу: /volume1/logs/error.log ищем строчку: CustomLog /dev/null combined и заменяем на: CustomLog /volume1/logs/access.log combined Этим мы включаем ведение логов доступа. Лог файл будет создаваться по адресу: /volume1/logs/access.log После изменений в файле httpd.conf не забываем перезапустить Apache, чтобы он прочитал новые данные конфигурационного файла. Если после этого Вы удалите файлы access.log и error.log, то чтобы они появились снова, надо перезапустить Apache и он создаст их снова. Пример лога ошибок: [Tue Jan 12 02:24:28 2010] [error] [client 195.210.57.83] File does not exist: /var/services/web/robots.txt [Tue Jan 12 02:54:14 2010] [error] [client 66.249.67.154] File does not exist: /var/services/web/robots.txt [Tue Jan 12 04:03:29 2010] [error] [client 65.55.106.204] File does not exist: /var/services/web/robots.txt [Tue Jan 12 04:21:15 2010] [error] [client 67.218.116.162] File does not exist: /var/services/web/robots.txt [Tue Jan 12 04:44:26 2010] [error] [client 207.46.199.179] File does not exist: /var/services/web/robots.txt [Tue Jan 12 07:56:37 2010] [error] [client 87.194.30.85] File does not exist: /var/services/web/robots.txt [Tue Jan 12 09:07:06 2010] [error] [client 66.249.67.154] File does not exist: /var/services/web/images [Tue Jan 12 09:30:00 2010] [error] [client 65.55.215.75] File does not exist: /var/services/web/robots.txt [Tue Jan 12 13:32:27 2010] [error] [client 65.55.207.21] File does not exist: /var/services/web/robots.txt [Tue Jan 12 14:18:10 2010] [error] [client 195.210.57.83] File does not exist: /var/services/web/robots.txt [Tue Jan 12 15:39:10 2010] [error] [client 66.249.67.154] File does not exist: /var/services/web/robots.txt [Tue Jan 12 15:56:24 2010] [error] [client 207.46.199.182] File does not exist: /var/services/web/robots.txt [Tue Jan 12 20:19:44 2010] [error] [client 87.250.254.242] File does not exist: /var/services/web/robots.txt [Tue Jan 12 21:51:28 2010] [error] [client 87.250.254.242] File does not exist: /var/services/web/uploads/sitemap.xml [Tue Jan 12 22:06:59 2010] [error] [client 66.249.67.154] File does not exist: /var/services/web/robots.txt [Tue Jan 12 23:06:51 2010] [error] [client 216.131.91.232] File does not exist: /var/services/web/store [Tue Jan 12 23:06:51 2010] [error] [client 216.131.91.232] File does not exist: /var/services/web/zen-cart [Tue Jan 12 23:06:52 2010] [error] [client 216.131.91.232] File does not exist: /var/services/web/e-commerce [Tue Jan 12 23:06:52 2010] [error] [client 216.131.91.232] File does not exist: /var/services/web/includes [Tue Jan 12 23:06:52 2010] [error] [client 216.131.91.232] File does not exist: /var/services/web/zencart [Tue Jan 12 23:06:56 2010] [error] [client 216.131.91.232] File does not exist: /var/services/web/zen [Tue Jan 12 23:06:56 2010] [error] [client 216.131.91.232] File does not exist: /var/services/web/cart [Tue Jan 12 23:06:57 2010] [error] [client 216.131.91.232] File does not exist: /var/services/web/ZenCart [Tue Jan 12 23:56:44 2010] [error] [client 212.76.100.186] File does not exist: /var/services/web/favicon.ico [Tue Jan 12 23:59:44 2010] [notice] caught SIGTERM, shutting down Как видно из логов ошибок, разные IP-адреса обращались к файлу robots.txt, но так как его нет, то они получали ошибку. Скорее всего это были поисковые роботы. Логи ошибок очень полезны для выявления разных ошибок на сервере и Вашем сайте Пример лога доступа: 87.250.254.242 - - [12/Jan/2010:00:01:02 +0200] "GET /2008/12/17/ HTTP/1.1" 200 726 "-" "Yandex/1.01.001 (compatible; Win16; I)" 87.250.254.242 - - [12/Jan/2010:00:03:04 +0200] "GET /tags/%EC%E8%EB%EB%E8%EE%ED%E5%F0%FB/ HTTP/1.1" 200 726 "-" "Yandex/1.01.001 (compatible; Win16; I)" 87.250.254.242 - - [12/Jan/2010:00:05:06 +0200] "GET /erotika/3222-bianca-beauchamp-18-foto-nyu.html HTTP/1.1" 200 726 "-" "Yandex/1.01.001 (compatible; Win16; I)" 87.250.254.242 - - [12/Jan/2010:00:07:08 +0200] "GET /tags/%E2%E8%E4%E5%EE%EF%F0%E8%EA%EE%EB%FB/ HTTP/1.1" 200 726 "-" "Yandex/1.01.001 (compatible; Win16; I)" 87.250.254.242 - - [12/Jan/2010:00:09:10 +0200] "GET /tags/%F0%E0%E7%ED%FB%E5/ HTTP/1.1" 200 726 "-" "Yandex/1.01.001 (compatible; Win16; I)" 87.250.254.242 - - [12/Jan/2010:00:11:12 +0200] "GET /eto-interesno/4367-chelovek-xameleon-17-foto.html HTTP/1.1" 200 726 "-" "Yandex/1.01.001 (compatible; Win16; I)" 87.250.254.242 - - [12/Jan/2010:00:13:14 +0200] "GET /avto-prikoli/4489-motocikl-skrestili-s-avtomobilem-6-foto.html HTTP/1.1" 200 726 "-" "Yandex/1.01.001 (compatible; Win16; I)" 87.250.254.242 - - [12/Jan/2010:00:15:16 +0200] "GET /devushki/4458-gruppa-podderzhki-plyazhnogo-volejbola-50-foto.html HTTP/1.1" 200 726 "-" "Yandex/1.01.001 (compatible; Win16; I)" 87.250.254.242 - - [12/Jan/2010:00:17:17 +0200] "GET /tags/%F8%ED%EE%E1%E5%EB%E5%E2%F1%EA%E0%FF/ HTTP/1.1" 200 726 "-" "Yandex/1.01.001 (compatible; Win16; I)" 87.250.254.242 - - [12/Jan/2010:00:19:19 +0200] "GET /user/Sandei/ HTTP/1.1" 200 726 "-" "Yandex/1.01.001 (compatible; Win16; I)" 87.250.254.242 - - [12/Jan/2010:00:21:21 +0200] "GET /ne-smogli-proiti-mimo/4612-kulinarnoe-masterstvo-39-foto.html HTTP/1.1" 200 726 "-" "Yandex/1.01.001 (compatible; Win16; I)" 87.250.254.242 - - [12/Jan/2010:00:23:23 +0200] "GET /devushki/3703-lyubitelskie-fotki-devchonok-24-foto.html HTTP/1.1" 200 726 "-" "Yandex/1.01.001 (compatible; Win16; I)" 87.250.254.242 - - [12/Jan/2010:00:25:25 +0200] "GET /devushki/4202-ozornye-devchonki-28-foto-nyu.html HTTP/1.1" 200 726 "-" "Yandex/1.01.001 (compatible; Win16; I)" 87.250.254.242 - - [12/Jan/2010:00:27:27 +0200] "GET /photoprikol/3925-demotivatory-20-foto.html HTTP/1.1" 200 726 "-" "Yandex/1.01.001 (compatible; Win16; I)" 87.250.254.242 - - [12/Jan/2010:00:29:29 +0200] "GET /tags/%EF%F0%E8%E2%FB%F7%EA%E8/ HTTP/1.1" 200 726 "-" "Yandex/1.01.001 (compatible; Win16; I)" 125.230.161.110 - - [12/Jan/2010:00:30:55 +0200] "CONNECT 203.188.201.253:25 HTTP/1.1" 200 1059 "-" "-" 87.250.254.242 - - [12/Jan/2010:00:31:31 +0200] "GET /avto-prikoli/3277-tyuning-honda-accord-28-foto.html HTTP/1.1" 200 726 "-" "Yandex/1.01.001 (compatible; Win16; I)" 87.250.254.242 - - [12/Jan/2010:00:33:33 +0200] "GET /photoprikol/3873-prikolnyj-pes-4-foto.html HTTP/1.1" 200 726 "-" "Yandex/1.01.001 (compatible; Win16; I)" 87.250.254.242 - - [12/Jan/2010:00:35:35 +0200] "GET /tags/%EC%FB%EB%FC%ED%FB%E5/ HTTP/1.1" 200 726 "-" "Yandex/1.01.001 (compatible; Win16; I)" Логи доступа дают очень ценную информацию, такую как: IP-адрес с которого был запрос к серверу, время в которое был запрос, дата, путь к файлу к которому был запрос, реферер (если интересно знать с какого сайта к Вам зашли в гости или с какого сайта тянут картинки, файлы Вашего сервера), браузер посетителя и т.д. Если у Вас высокопосещаемый сайт, то за неделю или месяц файлы логов доступа и ошибок могут занимать около ~5 гигабайт. Для этого их стоит периодически удалять и разбивать на более мелкие по размеру файлы. Допустим создавать логи доступа и ошибок за каждые сутки в новых файлах. Цитата Ссылка на сообщение Поделиться на других сайтах
bonhead 0 Опубликовано: 21 января 2010 Рассказать Опубликовано: 21 января 2010 (изменено) Ребата помогите выставляю все как написано для загрузки больших файлов, но после этого сайт не хочет работать, тоесть не переходит на другие ссылки к примеру... при удалении загруженых файлов - он их не удаляет... при сохрании в админке он не сохраняет... помогите max_execution_time = 30 ; Maximum execution time of each script, in seconds max_input_time = 60 ; Maximum amount of time each script may spend parsing request data ;max_input_nesting_level = 64 ; Maximum input variable nesting level memory_limit = 128M ; Maximum amount of memory a script may consume (128MB) post_max_size=3072M upload_max_filesize = 2048M Начинает работать только если я уменьшу значение post_max_size... помогите плиизззз Версия 8,3 С Уважением Богдан Изменено 21 января 2010 пользователем bonhead Цитата Ссылка на сообщение Поделиться на других сайтах
abasive 41 Опубликовано: 21 января 2010 Рассказать Опубликовано: 21 января 2010 Снижение нагрузки на VPS (OpenVZ) Задача: Снизить потребление памяти на VPS построенной по технологии OpenVZ, снижение нагрузки. Купил недавно себе VPS построенный на технологии OpenVZ, конфигурация – CPU 1100 Mhz / RAM 512 Mb. Технология виртуализации OpenVZ отличается к примеру от XEN тем, что в OpenVZ ограничивается виртуальная память и это снижает производительность, в моменты когда системе нужно больше ресурсов, а их нету. Изначально не настроенный VPS с ОС Debian Lenny и установленным LAMP со всеми приблудами потреблял около 300 – 350 Mb RAM, что было очень странно. После оптимизации потребление сократилось вдвое. В статье я опишу как снизить потребление памяти путем уменьшения размера стека выделяемого под каждый запущенный процесс, ускорить обработку PHP скриптов средствами eAccelerator. 1. Подрежем стек Итак как я выше написано, на каждый запущенный тред в виртуальной памяти выделяется место под стек. В моем случае в Debian Lenny размер стека равен 10 Mb. Это очень много и при большом количестве тредов потребление памяти будет огромным. Просмотреть размер стека можно командой: root@vds:~# ulimit –s 1024 в ответ будет получен объем в килобайтах. У меня это уже измененный размер. Размер стека в 10 Mb велик и его можно и нужно снизить, дабы не порождались пустые выделения памяти на каждый тред. Погуглив и почитав манов я остановился на размере в 1 Mb. Уменьшить его можно командой: ulimit -s <размер стека на тред в Кб> В итоге прописываем ulimit -s 1024 в файле /etc/init.d/rc (по выше), ребутим сервер и радуемся снижением потребления памяти. 2. eAccelerator eAccelerator по сути своей является PHP-акселератором, основное назначение которого состоит в кэшировании бинарного представления кода. Каждый раз при выполнении скрипта, PHP читает все подключаемые файлы и переводит их в бинарный код, при запросе скрипта операция повторяется. Задача eAccelerator состоит в сохранении бинарного кода для повторного использования, уменьшая время выполнения скрипта. Установка и настройка его довольно проста и не должна вызвать никаких проблем. Для установки и компиляции акселератора понадобится пакет php5-dev, устанавливаем его: apt-get install build-essential php5-dev Теперь нужо скачать и становить акселератор, так как он не входит в состав репозиторий для Debian: cd /tmp wget http://bart.eaccelerator.net/source/0.9.5.2/eaccelerator-0.9.5.3.tar.bz2 tar xvfj eaccelerator-0.9.5.2.tar.bz2 cd eaccelerator-0.9.5.2 phpize ./configure make make install После удачной установки необходимо создать файл конфигурации : vi /etc/php5/conf.d/eaccelerator.ini И внести в него строки: extension="eaccelerator.so" eaccelerator.shm_size="16" eaccelerator.cache_dir="/var/cache/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" Директория /var/cache/eaccelerator будет испотзоваться акселератором для хранения кэша, поэтому ее необходимо создать и выставить на нее права 0777: mkdir -p /var/cache/eaccelerator chmod 0777 /var/cache/eaccelerator После всех действий рестартим апач и наблюдаем работу акселератора: /etc/init.d/apache2 restart Используемые материалы при написании: http://www.howtoforge.com/eaccelerator_php5_debian_etch http://www.eaccelerator.net/wiki/Settings Цитата Ссылка на сообщение Поделиться на других сайтах
Ginko 0 Опубликовано: 16 марта 2012 Рассказать Опубликовано: 16 марта 2012 Снижение нагрузки на VPS (OpenVZ) Вопрос по второму пункту. У меня уже болтается сайт на VPS (Debian6) Как узнать, стоит ли php5-dev или тот же eAccelerator? Цитата Ссылка на сообщение Поделиться на других сайтах
ower_xz 117 Опубликовано: 16 марта 2012 Рассказать Опубликовано: 16 марта 2012 php -v[/CODE] Если акселератор стоит, то вывод будет вроде этого: PHP 5.2.17 (built: Feb 4 2012 07:16:03) Copyright © 1997-2012 The PHP Group Zend Engine v2.3.0, Copyright © 1998-2012 Zend Technologies with eAccelerator v0.9.6.1, Copyright © 2004-2010 eAccelerator, by eAccelerator Цитата Ссылка на сообщение Поделиться на других сайтах
IgorA100 90 Опубликовано: 16 марта 2012 Рассказать Опубликовано: 16 марта 2012 В итоге прописываем ulimit -s 1024 в файле /etc/init.d/rc (по выше), ребутим сервер и радуемся снижением потребления памяти. Для сервера под управлением Centos изменяется стек в файле: /etc/secutity/limits.conf В данный файл нужно добавить строку следующего содержания: * hard stack 1024[/CODE] Цитата Ссылка на сообщение Поделиться на других сайтах
Ginko 0 Опубликовано: 17 марта 2012 Рассказать Опубликовано: 17 марта 2012 (изменено) php -v[/CODE] Если акселератор стоит, то вывод будет вроде этого: PHP 5.2.17 (built: Feb 4 2012 07:16:03) Copyright © 1997-2012 The PHP Group Zend Engine v2.3.0, Copyright © 1998-2012 Zend Technologies with eAccelerator v0.9.6.1, Copyright © 2004-2010 eAccelerator, by eAccelerator Написано вот такое: PHP 5.3.10-1~cl+1 (cli) (built: Feb 21 2012 06:25:51) Copyright © 1997-2012 The PHP Group Zend Engine v2.3.0, Copyright © 1998-2012 Zend Technologies with Suhosin v0.9.32.1, Copyright © 2007-2010, by SektionEins GmbH Не повлияет установка акселератора на работоспособность в данном случае? И как сделать откат, если что? Добавлю, что на сервере стоит nginx Изменено 17 марта 2012 пользователем Ginko Цитата Ссылка на сообщение Поделиться на других сайтах
ower_xz 117 Опубликовано: 17 марта 2012 Рассказать Опубликовано: 17 марта 2012 (изменено) Не повлияет установка акселератора на работоспособность в данном случае? И как сделать откат, если что? Добавлю, что на сервере стоит nginx Не повлияет, наоборот сервер должен шустрее работать. С nginx eAccelerator отлично работает. Удаляется одной командой в случае чего. Изменено 17 марта 2012 пользователем ower_xz Цитата Ссылка на сообщение Поделиться на других сайтах
Ginko 0 Опубликовано: 19 марта 2012 Рассказать Опубликовано: 19 марта 2012 Удаляется одной командой в случае чего. Какой? Цитата Ссылка на сообщение Поделиться на других сайтах
Ginko 0 Опубликовано: 26 марта 2012 Рассказать Опубликовано: 26 марта 2012 Парни помогите справиться с проблемой. Хостер только разводит руками. Ситуация такая: Сайт стоит на VPS (Debian6, ngnix, 1gb оперативки, акселератор) Помимо для стоит еще два мода (оба лицензионные, с поддержкой, широкими настройками, в т.ч. времени кеширования). На сайте порядка 7500 новостей. Почти весь день сайт летает без проблем. Однако ближе к вечеру начинается дурдом: ровно каждый час резко прыгает нагрузка. И при том, что все равно еще остается значительный запас ресурсов, сайт ложится с 504 ошибкой. Иногда это длится не больше нескольких секунд, иногда - до 15 минут! Конечно же, были проверены все возможные настройки движка, отключались все модули, отключалось общее кеширование и т.д. - и ничего не помогает. Самое главное, что из доступных настроек ни один процесс не выполняется с наступлением нового часа, а разбросаны в разное время. Ну и, повторюсь, почти все время сайт летает, до определенного времени... Пожалуйста, помогите найти причину. Цитата Ссылка на сообщение Поделиться на других сайтах
Рекомендованные сообщения
Присоединяйтесь к обсуждению
Вы можете опубликовать сообщение сейчас, а зарегистрироваться позже. Если у вас есть аккаунт, войдите в него для написания от своего имени.