W" - Apache. Добрый день . Прошу помощи гуру форума. Перелопатила гугл, голова кругом, выхода не нашла. C недавнего времени периодически зависает апач.
Помогает только перезапуск службы. После чего некоторое время всё работает отлично, но потом снова начинает расти количество процессов апача, они съедают всё процессорное время (до 9. Нагрузка на сервере не большая, количество посетителей не выросло, да и первоначально всё работало отлично. Code. 1. top - 0.
Tasks: 2. 10 total, 1. Cpu(s): 9. 2. 0%us, 6. Mem: 2. 06. 61. Swap: 5. 91. 19. PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND.
R 4. 4. 2 1. 6 0: 1. R 4. 2. 9 1. 5 0: 0. R 4. 1. 9 1. 6 0: 0.
R 4. 1. 2 1. 8 0: 0. R 3. 8. 6 1. 6 0: 0.
Проверка количества процессов, запущенных в момент повышенной нагрузки, и анализ объема памяти, используемой всеми процессами Apache, дает.
R 3. 6. 3 1. 6 0: 1. R 3. 3. 0 1. 5 0: 2.
Куча процессов сжирает всю оперативу. Скуль не справлялся и apache создавал много ожидающих запросов от www-data.. Посмотрите здесь: Apache Apache Apache Apache периодически зависает апач, много процессов в статусе 'W' Apache Apache.. Что ищем. Много процессов апача. Добрый день сообществу.
абсолютно нормально, это не недостаток, и количество форков тридов можно указать в httpd.conf (или apache2.conf). При просмотре в htop слишком много процессов apache, в результате чего не отвечает ни один сайт. Когда начинаю вручную тушить процессы — сайты начинают работать! Но процессы продолжают плодиться. DDOS нету. По Apache -status можно видеть довольно много "OPTIONS * HTTP/1.0 ". С помощью. И если их очень много, при большом кол-ве пользователей хостера, на максимальное количество Процессов Апач в 10 шт.? Просто у. Это то, где мы говорим Apache генерировать много процессов. По умолчанию выделяется большое количество, что и приводит к.
S 2. 9. 0 1. 5 0: 0. S 2. 8. 7 1. 4 0: 0. R 2. 6. 4 1. 8 0: 0. Code. 1. Server uptime: 5 hours 1.
У FastCGI-модулей тоже есть опции, задающие максимально допустимое количество процессов. Должны ли их значения совпадать?
Total accesses: 1. Total Traffic: 4. MB. CPU Usage: u. CPU load. 6. 5. 9 requests/sec - 2.
B/second - 4. 04. B/request. 4. 50 requests currently being processed, 0 idle workers. WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW. WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW. WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW. WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW.
WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW. WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW. WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW. Scoreboard Key. "_" Waiting for Connection, "S" Starting up, "R" Reading Request. W" Sending Reply, "K" Keepalive (read), "D" DNS Lookup. C" Closing connection, "L" Logging, "G" Gracefully finishing. I" Idle cleanup of worker, "." Open slot with no current process.
Srv PID Acc M CPU SS Req Conn Child Slot Client VHost Request. W 9. 9. 2 2. GET/srednevekovaya- evropa. HT. 1- 0. 18. 15.
W 2. 9. 8 2. GET/zaexal- v- pos. HTTP/1. 0. 2- 0. 18.
W 0. 0. 2 2. GET/chat/? ajax=true& last. ID=8. 72. 99 HTTP/1.
W 2. 8. 9 2. GET/rodovye- dvorcy. HTTP/1. 0. 4- 0. 16. W 3. 0. 1. 4 2. GET/tag/sozvezdie- oriona HTTP/1. W 2. 8. 2 2. GET/proletaya- nad.
HTTP/1. 0. 6- 0. 17. W 2. 9. 3 2. GET/vozvrashhenie. HTTP/1. 0. 7- 0. 17. W 1. 1. 9 2.
GET/kontakt HTTP/1. W 2. 9. 0 2. GET/chat/? ajax=true& last. ID=8. 72. 99 HTTP/1. W 3. 1. 8 2. GET/chat/? ajax=true& last. ID=8. 72. 99 HTTP/1.
W 5. 3. 5 2. GET/kreuskaya. html HTTP/1.
W 7. 7. 4 2. GET/viewtopic. php? HTTP/1. 1. 12- 0 1.
W 2. 8. 6 2. GET/video- vnutrennego- interera. W 2. 9. 3 2. GET/topograficheskie- karty. HTTP/1. 0. 14- 0 1. W 1. 6. 7 2.
GET/rodovye- dvorcy. HTTP/1. 0. 15- 0 1. W 0. 6. 8 2. GET/fotografii- s- vystavki. HTT. 1. 6- 0 1.
W 0. 5. 3 2. GET/lesnaya- reka. HTTP/1. 0. 17- 0 1. W 2. 8. 7 2.
GET/chat/? ajax=true& last. ID=8. 72. 99 HTTP/1. W 0. 0. 0 2. GET/fotografii- ostatkov. HTT. 1. 9- 0 1. W 8. 5. 1 2.
GET/vystavka- krasivogo- starinnogo. HTTP/1. 0. 20- 0 1. W 2. 9. 1 2. GET/wallpapers- c- kalendarem.
HTTP/2. 1- 0 1. W 2. 7. 7. 2 2. GET/tag/zhkx/ HTTP/1. W 3. 7. 8. 5 2. GET/v- krayu- ozer. HTTP/1. 0. и ещё много- много аналогичных процессов.. Code. 1. 2- 0. 18.
W 9. 7. 8 6. GET/wp- content/themes/desire/images/headers/x. HTTP/3- 0. 11. 92 0/2. GET/wp- content/uploads/xxx_2- 3. HTTP/1. 4- 0. 27.
W 2. 3. 1 4 0 1. GET/wp- content/uploads/xxx_6- 2. HTTP/1. 5- 0. 28. W 0. 9. 9 4 0 0. GET/wp- content/uploads/xxx_4- 3. HTTP/1. 6- 0. 19.
W 1. 3. 0. 4 4 0 2. GET/wp- content/uploads/x. HTTP/1. 7- 0. 28. W 8. 7. 2 4 0 0. GET/wp- content/uploads/shh_3- 3. HTTP/1. 8- 0. 29. GET/chat/? ajax=true& last.
ID=9. 23. 54 HTTP/1. K 0. 2. 7 0 1. GET/chat/? ajax=true& last. ID=9. 23. 55 HTTP/1. W 8. 5. 4 4 0 2. GET/wp- content/uploads/dfhndxh.
HTTP/1. 1. 1- 0 2. C 8. 6. 4 0 1. NULL1. 2- 0 2. W 2. 8. 8 4 0 2. GET/wp- content/uploads/hbjfh. K 0. 8. 5 0 8.
GET/chat/? ajax=true& last. ID=9. 23. 54 HTTP/1. W 0. 0. 0 0 0 0. GET/server- status?
HTTP/1. 1. 15- 0 2. W 1. 6. 2. 6 4 0 4. GET/wp- content/uploads/gfbfg.
Как лечить? А самое главное почему так стало? Ведь работало всё как часы..
Помогите Apache 2.
Оптимизируем VPS за 5$ (5. MB RAM / 1 CPU) так, что сайт на wordpress выдерживает нагрузку в 4. Хабрахабр. Когда вы приобретаете сервер VPS с 2. MB или 5. 12. MB оперативной памяти на борту и лишь часть мощности процессора, то использовать для таких сервисов как My. SQL/PHP/Apache настройки по умолчанию является очень плохой идеей. В настоящее время у меня запущено 3 сайта на самом дешевом тарифном плане с 5.
MB RAM/1 CPU. Не уверен полностью, но посещаемость составляет порядка 5- 1. Далее я хочу поделиться инструкцией как оптимизировать LAMP используя всего лишь 5. MB и при этом не уходя в swap. Обычно при такой настройки используется 2.
Mb памяти и все работает довольно быстро. Определяем доступную память и активность swap. Перед началом оптимизации давайте взглянем на количество используемой памяти. Для этого необходимо выполнить следующую команду: $ free - m.
Для того. чтобы посмотреть список запущенных процессов и отсортировать их по использованию памяти, необходимо выполнить вот такую команду: $ ps - eo pmem,pcpu,rss,vsize,args | sort - k 1 - r | less. Настраиваем LAMP сервер для потребления малого количества оперативной памяти. Останавливаем, отключаем ненужные сервисы. Первый и очевидный вопрос, который необходимо задать — это «какие сервисы мне не нужны в использовании?». Недавно, я обнаружил очень удобную утилиту для управления сервисами.
Она называется "sysv- rc- conf" и управляет сервисами при помощи псевдографики и флажками. Выгдялит вот так: Здесь представлен список сервисов, которые я изменил. Postfix. Этот сервис позволяет отправлять и получать почтовые email сообщения для домена. Я использую для этих целей Google Apps для отправки почты и mailchimp для новостных подписчиков.
Таким образом я остановил и отключил этот сервис. Bind. 9. Он нужен для управления DNS записями Вашего домена. Его можно отключить, так как все DNS записи хранятся у хостера.
SSHD. Имеются и другие реализации, которые используют гораздо меньше памяти, но они не поддерживают sftp, поэтому данный сервис я оставил без изменений. Не запускайте X- сервер, выключите все ненужные сервисы и настройте Apache, My. SQL, PHP только с базовой необходимой функциональностью. Apache. Самая большая проблема Apache — это объем оперативной памяти, который он использует.
Я буду рассматривать следующие способы ускорения работы и снижения потребления оперативной памяти: Обрабатывать меньшее количество одновременных запросов; Меньшая загрузка модулей(отключить неиспользуемые); Меньше журналирования. Настроить Apache на использование только наименьшего количество запущенных дочерних процессов. Prefork — это где случается настоящая магия. Это то, где мы говорим Apache генерировать много процессов. По умолчанию выделяется большое количество, что и приводит к потреблению оперативной памяти сервера.
Убедитесь, что apache. Ниже пример. < If. Module mpm_prefork_module>. Start. Servers 1.
Min. Spare. Servers 1. Max. Spare. Servers 3. Max. Clients 1. Max. Requests. Per. Child 3. 00. 0. < /If. Module>. < If. Module mpm_worker_module>.
Start. Servers 1. Min. Spare. Threads 5. Max. Spare. Threads 1. Thread. Limit 2. Threads. Per. Child 5. Max. Clients 2.
Max. Requests. Per. Child 2. 00. < /If.
Module>. Также обязательно отрегулируйте параметр "Keep. Alive. Timeout", установив значение 1. На мой взгляд, 1.
Загружайте только самые необходимые модули. Настроенный по умолчанию веб- сервер Apache подгружает слишком много ненужных модулей. Проверить какие модули установлены и включены можно следующей командой. M. Ниже представлен список модулей, которые необходимы для работы Wordpress.
Load. Module dir_module modules/mod_dir. Load. Module log_config_module modules/mod_log_config. Load. Module mime_module modules/mod_mime. Load. Module setenvif_module modules/mod_setenvif. Load. Module alias_module modules/mod_alias.
Load. Module authz_host_module modules/mod_authz_host. Load. Module rewrite_module modules/mod_rewrite. Вам необходимо закомментировать остальные модули для экономии памяти. Или же вы можете включить/отключить модули через командную строку.
Для включения воспользуйтесь командой. Для отключения. # a. После проделанных манипуляций вам необходимо обязательно перезагрузить веб- сервер Apache. Уменьшаем журналирование. Если вы хотите добиться максимальной производительности, вам определенно нужно ограничить журналирование. На моем сервере я установил уровень «error» (ошибок). Также, если вам не нужна детальная статистика, вы можете отключить логирование User- Agent или the http- referer.
Error. Log: The location of the error log file. If you do not specify an Error.
Log directive within a < Virtual. Host>. # container, error messages relating to that virtual host will be. If you *do* define an error logfile for a < Virtual. Host>. # container, that host's errors will be logged there and not here. Error. Log ${APACHE_LOG_DIR}/error.
Log. Level: Control the number of messages logged to the error_log. Possible values include: debug, info, notice, warn, error, crit. Меня устраивают такие настройки, ну а вы сами решайте. Оптимизация My. SQL сервера. Тонкая настройка My. SQL для использования малого количества оперативной памяти довольно проста.
Далее мы будем рассматривать следующие типы настроек My. SQL: Вещи, которые мы можем отключить; Оптимизация параметров My. SQL сервера; Сторонние инструменты настройки конфигурации My. SQL. Для оптимизации My. SQL нам необходимо отредактировать файл /etc/mysql/my. Вещи, которые нам необходимо выключить.
Mysql предоставляет несколько движков хранения таблиц. Два их них наиболее популярны — это Inno. DB и My. ISAM. Основные различия между ними: My. ISAM предлагает блокировки на уровне таблиц, это значит, что когда информация записывается в таблицу, то вся таблица блокируется и если в этот момент будут еще записи, которые должны выполнится одновременно в ту же таблицу, то они должны будут подождать, пока первая запись добавиться успешно; Inno. DB, с другой стороны предлагает блокировки на уровне строк, это значит, что когда происходит запись в строку, то только эта единичная строка блокируется; остальные же доступны для записи. Проблемы блокировок табличного уровня заметны только на очень нагруженных серверах.
Для обычных же веб- сайтов, My. ISAM показывает лучшую производительность на дешевых серверах. Если вы решили использовать My. ISAM таблицы, то вам необходимо добавить следующие строки в конфигурационный файл my. My. ISAM. default- tmp- storage- engine=My.
ISAM. Если у вас будут только My. ISAM таблицы, вы можете отключить Inno. DB движок, тем самым сэкономив оперативную память, добавив лишь одну строку в my. Если вы в прошлом использовали Inno. DB, то ниже я предоставляю вам скрипт, который автоматически переконвертирует все таблицы Inno. DB в My. ISAM. for db in `echo show databases | $MYSQLCMD | grep - v Database`; do. MYSQLCMD $db | grep - v Tables_in_`; do.
TABLE_TYPE=`echo show create table $table | $MYSQLCMD $db | sed - e's/.*ENGINE=\([[: alnum: ]\]\+\)[[: space: ]].*/\1/'|grep - v 'Create Table'`. TABLE_TYPE = "Inno. DB" ] ; then. mysqldump $db $table > $db.$table. ALTER TABLE $table ENGINE = My. ISAM" | $MYSQLCMD $db. Оптимизируем параметры My.
SQL сервера. Ниже представлены несколько параметров, которые могут быть отрегулированы с целью ускорения My. SQL сервера. Key buffer size. Это один из самых важных параметров, влияющий на потребление оперативной памяти и производительности, который необходимо оптимизировать. My. SQL пытается положить все, что проиндексировано в key buffer, поэтому этот параметр приносит огромную производительность. SQL- запрос будет подан непосредственно из оперативной памяти RAM.
Я не могу сказать, какой размер вы должны установить для key buffer, потому что только вы знаете, сколько RAM имеется у вас свободной. The Query Cache. Если вы делаете одинаковые запросы два раза подряд, то результат помещается в кэш запросов, таким образом mysql не придется делать запрос снова. Если вы собираетесь повышать производительность, то этот параметр может принести огромную пользу, но возрастет потребление памяти. Поэтому вам необходимо установить этот параметр не слишком огромным, но и не слишком маленьким, то есть столько, сколько необходимо вашему веб- сайту.
Ниже приведены три переменные, которые влияют на то, как работает ваш кэш запросов. Maximum Number of Connections. Это опциональный параметр.
Если вы уже ограничили количество процессов apache, то все уже хорошо. Если нет, и вам необходимо обрабатывать тысячи пользователей одновременно, необходимо увеличить значение этого параметра. The table Cache. Каждый раз вы обращаетесь к таблице, My. SQL подгружает ссылку на таблицу как одну запись в кэш таблицы. Это делается для каждого параллельного доступа к таблице, это действительно важно для производительности, незначительно для использования памяти. Вы можете постоянно увеличивать кэш таблицы, но тогда лы упретесь в лимит на количество открытых файлов в вашей операционной системе, так что имейте это в виду.
Если установлен слишком маленький кэш таблицы, то mysql будет блевать на вас, вы же не хотите этого. Ниже приведен корректный my. VPS с самым низким тарифным планом. Мой my. cnf. port = 3. K. max_allowed_packet = 1. M. table_cache = 4.
K. read_buffer_size = 2. K. read_rnd_buffer_size = 2. K. net_buffer_length = 2. K. thread_stack = 6.
K. # For low memory, Inno. DB should not be used so keep skip- innodb uncommented unless required. Uncomment the following if you are using Inno. DB tables. #innodb_data_home_dir = /var/lib/mysql/. M: autoextend. #innodb_log_group_home_dir = /var/lib/mysql/.
You can set ._buffer_pool_size up to 5. RAM but beware of setting memory usage too high. M. #innodb_additional_mem_pool_size = 2. M. # Set ._log_file_size to 2.
M. #innodb_log_buffer_size = 8. M. #innodb_flush_log_at_trx_commit = 1. M. no- auto- rehash. Remove the next comment character if you are not familiar with SQL. M. sort_buffer_size = 8. M. [myisamchk]. key_buffer = 8.
M. sort_buffer_size = 8. M. [mysqlhotcopy]. Сторонние мастера настройки My.