LinuxForum.Fans
Тема

Как установить пакет с конкретного репозитория

Автор: valet 89 сообщений 15446 просмотров
#161898

Добавил в список /etc/apt/sources.list репозитории дотдеба:
[console]deb http://packages.dotdeb.org stable all
deb-src http://packages.dotdeb.org stable all
[/console]

и установил php:
[console]aptitude install php5-cli php5-common php5-suhosin
aptitude install php5-fpm php5-cgi
aptitude install php5-mysql php5-curl php5-gd php5-json php5-mcrypt php5-memcache[/console]

Но появились глюки: страницы генерируются с бешеной задержкой (по хосттрекеру время загрузки главной около 16 сек), в логи пишется:

Показать
[console][12-May-2011 19:28:33] WARNING: [pool www] seems busy (you may need to increase start_servers, or min/max_spare_servers), spawning 8 children, there are 0 idle, and 42 total children
[12-May-2011 19:28:34] WARNING: [pool www] seems busy (you may need to increase start_servers, or min/max_spare_servers), spawning 16 children, there are 0 idle, and 47 total children
[12-May-2011 19:28:35] WARNING: [pool www] server reached max_children setting (50), consider raising it
[12-May-2011 19:43:46] WARNING: [pool www] seems busy (you may need to increase start_servers, or min/max_spare_servers), spawning 8 children, there are 0 idle, and 42 total children
[12-May-2011 19:43:47] WARNING: [pool www] seems busy (you may need to increase start_servers, or min/max_spare_servers), spawning 16 children, there are 1 idle, and 47 total children
[12-May-2011 19:43:48] WARNING: [pool www] server reached max_children setting (50), consider raising it[/console]

погуглив, понял, что виновато php, поэтому хочу ПОЛНОСТЬЮ УДАЛИТЬ php и установить с другого репозитория.
Но имеется 2 вопроса:
1. Как чисто удалить php, чтобы гарантировано не осталось никаких хвостов? Достаточно ли install заменить на remove или этого мало?
2. И вообще всегда интересовало как устанавливать пакеты с конкретного репозитория, это возможно?

#161917
valet написал:
Добавил в список /etc/apt/sources.list репозитории дотдеба:

погуглив, понял, что виновато php, поэтому хочу ПОЛНОСТЬЮ УДАЛИТЬ php и установить с другого репозитория.

aptitude full-upgrade перед этим сделан был?
У меня никаких тормозов - отличный репозиторий я доволен - может что сделано не так было?

valet написал:

Но имеется 2 вопроса:
1. Как чисто удалить php, чтобы гарантировано не осталось никаких хвостов? Достаточно ли install заменить на remove или этого мало?

Ну раз такая пьянка:
Секрет открою wink - сам себе чистил - спасибо говорим Darth Revan ну можно и мне :D

text
# Удаляем php5, apache, nginx, mysql:
aptitude purge -y `dpkg -l | sed -e 's/ /\n/g' | grep php5`
aptitude purge -y `dpkg -l | sed -e 's/ /\n/g' | grep apache`
aptitude purge -y `dpkg -l | sed -e 's/ /\n/g' | grep nginx`
aptitude purge -y `dpkg -l | sed -e 's/ /\n/g' | grep mysql`
# Чистим "остатки" от программ удаленных через apt-get remove:
dpkg -l | awk '/^rc/ {print $2}' | xargs dpkg --purge
#161922
newzenon написал:
aptitude full-upgrade перед этим сделан был?

Был сделан aptitude update - этого мало? aptitude full-upgrade мог бы кардинально поменять ситуацию?

newzenon написал:
У меня никаких тормозов - отличный репозиторий я доволен - может что сделано не так было?

может, я его тоже давно использую.

Спасибо за помощь, пробую....

#161925
valet написал:

Был сделан aptitude update - этого мало? aptitude full-upgrade мог бы кардинально поменять ситуацию?

Конечно мало, и конечно мог, ну хотя бы aptitude safe-upgrade

#161926

newzenon, вы советуете все таки не удалять репозиторий дотдеба, а удалить только php и после aptitude full-upgrade попробовать снова установить php?
Я правильно понимаю?

#161929

valet, если использовать только apache - то смысла в дотдебе не очень много, у меня nginx и поэтому мне он нужен, пробуйте потом рассказать не забудьте ... wink
ы. Сервер свой или у хостера?

#161935
newzenon написал:
если использовать только apache - то смысла в дотдебе не очень много, у меня nginx и поэтому мне он нужен

у меня как раз nginx без апача вообще.
Кстати там nginx появился недавно, причем последний 1.0.0.1, до этого устанавливать приходилось вручную с исходников. А в стандратных репозиториях squeeze валяется старый nginx 0.7.67-3. Прямо говоря странно, что его не обновляют. Самый быстрый в мире веб-сервер. Как я понимаю 1-ый nginx будет только в wheezy.

newzenon написал:
потом рассказать не забудьте
обязательно, но вот я погуглив понял, что aptitude full-upgrade обновляет все пакеты вплоть до дистрибутива. Разве мне оно надо? Как я понимаю, если бы у меня был не squeeze, а например lenny, то эта команда обновила бы мне систему до squeeze. Мне кажется это лишнее.

newzenon написал:
Сервер свой или у хостера?

хостера.

#161941
valet написал:

но вот я погуглив понял, что aptitude full-upgrade обновляет все пакеты вплоть до дистрибутива. Разве мне оно надо?

Так это может случится только если в sources.list указаны более старшие ветки, допустим если указаны только squeeze то full-upgrade за рамки squeeze не выйдет.

#162193

Удалил так:
[console]aptitude purge -y `dpkg -l | sed -e 's/ /\n/g' | grep php5`
dpkg -l | awk '/^rc/ {print $2}' | xargs dpkg --purge[/console]

Запустил full-upgrade, заново установил php5 и другие модули, получил тот же самый результат - абсолютно ничего не поменялось, вот лог с самого старта php:
[console][12-May-2011 19:44:16] NOTICE: Terminating ...
[12-May-2011 19:44:16] NOTICE: exiting, bye-bye!
[12-May-2011 19:44:16] NOTICE: fpm is running, pid 10997
[12-May-2011 19:44:16] NOTICE: ready to handle connections
[14-May-2011 00:29:23] NOTICE: Terminating ...
[14-May-2011 00:29:23] NOTICE: exiting, bye-bye!
[14-May-2011 12:34:03] NOTICE: configuration file /etc/php5/fpm/php-fpm.conf test is successful

[14-May-2011 12:34:03] NOTICE: fpm is running, pid 16701
[14-May-2011 12:34:03] NOTICE: ready to handle connections
[14-May-2011 12:34:04] NOTICE: Reloading in progress ...
[14-May-2011 12:34:04] NOTICE: reloading: execvp("/usr/sbin/php5-fpm", {"/usr/sbin/php5-fpm", "--fpm-config", "/etc/php5/fpm/php-fpm.conf"})
[14-May-2011 12:34:04] NOTICE: using inherited socket fd=6, "127.0.0.1:9000"
[14-May-2011 12:34:04] NOTICE: using inherited socket fd=6, "127.0.0.1:9000"
[14-May-2011 12:34:04] NOTICE: fpm is running, pid 16808
[14-May-2011 12:34:04] NOTICE: ready to handle connections
[14-May-2011 12:34:21] NOTICE: Terminating ...
[14-May-2011 12:34:21] NOTICE: exiting, bye-bye!
[14-May-2011 12:34:21] NOTICE: fpm is running, pid 17000
[14-May-2011 12:34:21] NOTICE: ready to handle connections
[14-May-2011 15:35:29] WARNING: [pool www] seems busy (you may need to increase start_servers, or min/max_spare_servers), spawning 8 children, there are 1 idle, and 27 total children
[14-May-2011 15:35:34] WARNING: [pool www] seems busy (you may need to increase start_servers, or min/max_spare_servers), spawning 8 children, there are 4 idle, and 36 total children
[14-May-2011 15:35:35] WARNING: [pool www] seems busy (you may need to increase start_servers, or min/max_spare_servers), spawning 16 children, there are 4 idle, and 37 total children
[14-May-2011 15:35:36] WARNING: [pool www] seems busy (you may need to increase start_servers, or min/max_spare_servers), spawning 32 children, there are 4 idle, and 38 total children
[/console]

#162204

newzenon написал:
text
# Удаляем php5, apache, nginx, mysql:
aptitude purge -y `dpkg -l | sed -e 's/ /\n/g' | grep php5`
aptitude purge -y `dpkg -l | sed -e 's/ /\n/g' | grep apache`
aptitude purge -y `dpkg -l | sed -e 's/ /\n/g' | grep nginx`
aptitude purge -y `dpkg -l | sed -e 's/ /\n/g' | grep mysql`
# Чистим "остатки" от программ удаленных через apt-get remove:
dpkg -l | awk '/^rc/ {print $2}' | xargs dpkg --purge

Это оптимизуется до:
text
aptitude purge -y `dpkg -l | sed -e 's/ /\n/g' | grep php5` `dpkg -l | sed -e 's/ /\n/g' | grep apache` `dpkg -l | sed -e 's/ /\n/g' | grep nginx` `dpkg -l | sed -e 's/ /\n/g' | grep mysql`

Дело в том, что "purge" сам чистит wink.

#162207
Darth Revan написал:
Дело в том, что "purge" сам чистит wink.

Так это понятно, просто это как бы бонус:

text
# Чистим "остатки" от программ удаленных через apt-get remove:
dpkg -l | awk '/^rc/ {print $2}' | xargs dpkg --purge

Очистит остатки от всех ранее удалённых программ через apt-get remove, а не только php5, apache, nginx, mysql как в нашем примере.

#162378
newzenon написал:
У меня никаких тормозов - отличный репозиторий я доволен - может что сделано не так было?

А вы уверены, что при нагрузке там тоже не будет никаких проблем. У меня тоже такая картина не сразу проявляется... Попробуйте имитировать нагрузку на тот ресурс и проверить скорость загрузки.

Проблема пока не решилась, ищу способ решения.

#162407

Меня 502 забодал, сейчас копаю в сторону -
/etc/sysctl.conf

text
vm.swappiness = 5
fs.file-max=8192
net.core.netdev_max_backlog = 10000
net.core.somaxconn= 16384
net.ipv4.conf.all.accept_redirects = 0
net.ipv4.tcp_max_orphans = 65536
net.ipv4.tcp_orphan_retries = 1
net.ipv4.tcp_fin_timeout = 10
net.ipv4.tcp_keepalive_intvl = 15
net.ipv4.tcp_keepalive_probes = 5
net.ipv4.tcp_max_syn_backlog = 4096
net.ipv4.tcp_synack_retries = 1
net.ipv4.tcp_syncookies = 1

вообще основное по ходу somaxconn и ulimit, еще удалить php5-suhosin:
и

text
/etc/php5/fpm/pool.d/www.conf
pm.max_children = 1000
pm.max_requests = 500

А как имитировать нагрузку?

ы. Пока нашёл Siege.

#162432

Решил с 502:
/etc/nginx/nginx.conf
worker_rlimit_nofile 10240;
Может многовато.

#162435
valet написал:
[quote=newzenon]У меня никаких тормозов - отличный репозиторий я доволен - может что сделано не так было?

А вы уверены, что при нагрузке там тоже не будет никаких проблем. У меня тоже такая картина не сразу проявляется... Попробуйте имитировать нагрузку на тот ресурс и проверить скорость загрузки.

Проблема пока не решилась, ищу способ решения.[/quote]
Если такая необходимость в Nginx разве самому собрать тяжело?

#162439
newzenon написал:
Меня 502 забодал, сейчас копаю в сторону

а вы говорите проблем нет, вполне возможно, что как раз с php5-fpm проблема, например не хватает этих самых children'ов - проверьте лог /var/log/php5-fpm.log - нет ли у вас там того, что у меня.

newzenon написал:
А как имитировать нагрузку?

да честно говоря примитивно - взял сайтмеп сайта, перемешал и вгетом: сначала все нормально, а через какое-то время начинаются проблемы - страницы генерятся по 16 сек, это можно проверить тем же хосттрекером в этот момент и что самое интересное - нагрузка в этот момент по load average нулевая.

#162444

valet, всё в процессе,
Вот кусок того, что меня бодало (php5-fpm.log):

text
[14-May-2011 01:45:31] NOTICE: fpm is running, pid 879
[14-May-2011 01:45:31] NOTICE: ready to handle connections
[15-May-2011 01:13:12] WARNING: [pool www] child 913 exited on signal 11 (SIGSEGV) after 84461.065942 seconds from start
[15-May-2011 01:13:12] NOTICE: [pool www] child 2607 started
[15-May-2011 01:13:13] WARNING: [pool www] child 904 exited on signal 11 (SIGSEGV) after 84462.307949 seconds from start
[15-May-2011 01:13:13] NOTICE: [pool www] child 2608 started
[15-May-2011 01:13:18] WARNING: [pool www] child 912 exited on signal 11 (SIGSEGV) after 84467.507875 seconds from start
[15-May-2011 01:13:18] NOTICE: [pool www] child 2609 started
[15-May-2011 01:14:01] WARNING: [pool www] child 907 exited on signal 11 (SIGSEGV) after 84509.864128 seconds from start
[15-May-2011 01:14:01] NOTICE: [pool www] child 2623 started
[15-May-2011 01:14:03] WARNING: [pool www] child 885 exited on signal 11 (SIGSEGV) after 84512.611071 seconds from start
[15-May-2011 01:14:03] NOTICE: [pool www] child 2624 started
[15-May-2011 01:14:32] NOTICE: Terminating ...
[15-May-2011 01:14:32] NOTICE: exiting, bye-bye!
[15-May-2011 01:14:52] NOTICE: configuration file /etc/php5/fpm/php-fpm.conf test is successfu

Изменения сегодня:
/etc/nginx/nginx.conf

text
worker_rlimit_nofile 10240;

/etc/security/limits.conf

text
nginx soft nofile 10000
nginx hard nofile 30000

/etc/php5/fpm/pool.d/www.conf

text
pm.max_children = 1000
pm.max_requests = 500

Пока работает уверенно 502 больше нет.
Интересно что неделю-полторы после обновления до 1.0.0.1 всё было хорошо.

#162447
newzenon написал:
Пока работает уверенно 502 больше нет.

я так и не понял, а какая там нагрузка вообще - не пробовали туда дать нагрузку, что тогда будет?

#162452
valet написал:
не пробовали туда дать нагрузку, что тогда будет?

попробовать решил siege - пока не разобрался полностью с ней, но вот примерно что сейчас:

text
$ siege zenon.sytes.net -d1 -r10 -c25
** SIEGE 2.70
** Preparing 25 concurrent users for battle.
The server is now under siege...
...
...
...
...
HTTP/1.1 200   8.31 secs:    9163 bytes ==> /
HTTP/1.1 200   8.73 secs:    9163 bytes ==> /
HTTP/1.1 200   8.76 secs:    9163 bytes ==> /
HTTP/1.1 200   8.76 secs:    9163 bytes ==> /
HTTP/1.1 200   8.83 secs:    9163 bytes ==> /
HTTP/1.1 200   8.92 secs:    9163 bytes ==> /
HTTP/1.1 200   8.98 secs:    9163 bytes ==> /
...
...
...
...
HTTP/1.1 200   3.23 secs:    9163 bytes ==> /
HTTP/1.1 200   1.91 secs:    9163 bytes ==> /
done.
Transactions:                 250 hits
Availability:              100.00 %
Elapsed time:               90.50 secs
Data transferred:            2.18 MB
Response time:                8.48 secs
Transaction rate:            2.76 trans/sec
Throughput:                0.02 MB/sec
Concurrency:               23.42
Successful transactions:         250
Failed transactions:               0
Longest transaction:           13.69
Shortest transaction:            1.91

ы. Сайт на виртуалке (Kvm).

Войдите или зарегистрируйтесь, чтобы ответить.