LINUX.ORG.RU

Сообщения zdravnik

 

Почему зависает apache2?

Форум — Admin

Стоит nginx/1.8.0 и httpd 2.2.15 на CentOS 6.7 mpm конфиг следующий:

ServerLimit 500
StartServers 4
MinSpareServers 4
MaxSpareServers 8
MaxClients 500
KeepAlive On
KeepAliveTimeout 5
MaxRequestsPerChild 3000
ListenBacklog 512

В sysctl.conf задействованы следующие опции:

vm.overcommit_ratio = 100
vm.overcommit_memory = 2

Но я не уверен что эти опции влияют на проблему.

После имитации высокой нагрузки либо ддоса, с помощью siege и последующей остановки нагрузки, апач частенько подвисает, strace говорит следующее:

[pid 63565] <... restart_syscall resumed> ) = 0
[pid 63565] clone(child_stack=0, >flags=CLONE_CHILD_CLEARTID|CLONE_CHILD_SETTID|SIGCHLD, >child_tidptr=0x7f9421beeab0) = -1 ENOMEM (Cannot allocate >memory)
[pid 63565] write(2, «[Thu Jan 28 12:58:31 2016] [erro»..., 96) >= 96
[pid 63565] rt_sigprocmask(SIG_BLOCK, [CHLD], [], 8) = 0
[pid 63565] rt_sigaction(SIGCHLD, NULL, {SIG_DFL, [], 0}, 8) = 0
[pid 63565] rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0
[pid 63565] nanosleep({10, 0},
[pid 63565] <... nanosleep resumed> 0x7ffe6a49de20) = 0
[pid 63565] clone(child_stack=0, >flags=CLONE_CHILD_CLEARTID|CLONE_CHILD_SETTID|SIGCHLD, >child_tidptr=0x7f9421beeab0) = -1 ENOMEM (Cannot allocate >memory)
[pid 63565] write(2, «[Thu Jan 28 12:58:41 2016] [erro»..., 96) >= 96
[pid 63565] rt_sigprocmask(SIG_BLOCK, [CHLD], [], 8) = 0
[pid 63565] rt_sigaction(SIGCHLD, NULL, {SIG_DFL, [], 0}, 8) = 0
[pid 63565] rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0
[pid 63565] nanosleep({10, 0},

Бывает что подвисает не на долго, на 1-2 минуты например, а затем просыпается и начинает убивать своих детей и нормально работать, а иногда подвисания бывают и более долгие, например 20 минут (более ждать не мог, рестартанул железку). Но бывает и так что не зависает. Если в момент подвисания апача, попытаться рестартануть апач, то мастер процесс умрет и больше не запуститься потому что все дети остаются висеть в системе. В общем бьюсь уже неделю, не могу понять в чем проблема. Есть идеи?

P.S. Мне вот еще что интересно, даю нагрузку, затем нагрузку останавливаю, при этом в сторону приложения не идет ВООБЩЕ никаких запросов, но strace показывает что апач все еще продолжает обрабатывать в течении какого-то времни какие-то запросы. Думал что это нгинкс ему доотправляет то что наполучал, но если отключить нгинкс в этот момент, то апач все равно обраюатывает какие-то запросы, как-будто из какой то очереди. Пробовал ставить ListenBacklog 1, картина та же

 , , , ,

zdravnik ()

Использование перенаправления в find exec

Форум — General

Как заставить это работать?

find /tmp/ram -type f -exec echo «» > {} \;

Либо может есть другие идеи с аналогичным конечным результатом ?

 , ,

zdravnik ()

отображение полноценного hostname в в логах syslog

Форум — Admin

Всем привет!

При вводе в консоли hostname получаю server5.test.ggg.loc В сислоге переменная %hostname% выдает только часть хостнейма, а именно server5 Как сделать чтобы в сислог логах хостнейм отображался полноценно?

 , ,

zdravnik ()

rsyslog больше чем на 1024 байт

Форум — Admin

Добрый день!

Необходимо увеличить установленный лимит сислога в 1024 байт. Кто-то проделывал такое? Какие есть пути решения этого вопроса?

 

zdravnik ()

Оптимизация работы скрипта ( работа с .gz архивами на лету)

Форум — Development

Добрый день! Подскажите пожалуйста варианты оптимизации данного скрипта

arch_list=«a.gz b.gz c.gz» # может быть от одного до 30 архивов размером около 50 мб каждый. Внутри архива логи.Архивы имеют доступ readonly.

var1=`gunzip -c $arch_list | wc -l`; echo -e «result1: $var1\n»;

var2=`gunzip -c $arch_list | grep -v word1 | grep -v word2 | grep -v word3 | grep -v word4 | wc -l`; echo -e «result2: $var2\n »;

var3=`gunzip -c $arch_list| grep word2 | wc -l`; echo -e «result3: $var3\n»;

var4=`gunzip -c $arch_list| grep word3 | wc -l`; echo -e «result4: $var4\n»;

var5=`gunzip -c $arch_list| grep word4 | wc -l`; echo -e «result5: $var5\n»;

var6=`gunzip -c $arch_list| grep word3 | cut -f9 -d ' ' |sort | uniq -u | wc -l`; echo -e «result6: $var6\n»;

Соответственно скрипт выполняется слишком долго из-за того что каждый раз идет gunzip -c $arch_list.

 , ,

zdravnik ()

RSS подписка на новые темы