All streams
Search
Write a publication
Pull to refresh
4
0
Андрей Нигматулин @anight

User

Send message
А между тем большинство предпочитает nginx ;-)
А у нее есть Sype или iChat ???
Кстати, ограниченная память это, похоже, ваш случай. Попробуйте.
Еще можно использовать collectd
Сильно зависит от конкретной ситуации. Если памяти впритык, то отказ от Apache может дать прирост в 2-3 раза легко, только лишь из-за того что файловый кеш будет лучше работать, т.к. свободной памяти стало больше.
Очень интересно услышать про объективные причины.
Первое, что нужно оптимизировать в LAMP — менять Apache на nginx.
И не мешайте системе. LD_PRELOAD это переменная окружения, которая будет там, где вы ее поставите.
Имхо это очень логично — если не устраивает системный аллокатор, то бороться с ним, а не дописывать nginx ;-)

> второе не удобно для отладки (я не уверен что он всегда будет запускаться с этм кодом, а так, этот код, в него жестово вставлен)

Код сам не запускается, это вы его запускаете или не запускаете.

PS. Не надо изобретать велосипеды, используйте LD_PRELOAD. Тема исчерпана.
Зато не забыли добавить копирайты ;-)
И соответственно, в nginx ему не место, как ни крути.
Вы вводите в заблуждение людей.
В nginx есть свой pool-based аллокатор. А тот что вы добавили — так это замена системному (libc), а никак «другой аллокатор nginx».
Непонятно, зачем вы сделали из нового аллокатора патч для nginx.

Проще его вынести в отдельную библиотеку (см freshmeat.net/projects/libhoard/ например), ну или хотя бы LD_PRELOAD модуль.

Он смог бы ускорять точно так же php, perl много еще чего ;-)
Вот это совсем ни к чему

+#include <pthread.h>
+static pthread_mutex_t gen_mutex = PTHREAD_MUTEX_INITIALIZER;
+
+#define _MALLOC_LOCK_INIT() {;}
+#define _MALLOC_LOCK() {pthread_mutex_lock(&gen_mutex);}
+#define _MALLOC_UNLOCK() {pthread_mutex_unlock(&gen_mutex);}

nginx однопоточен в настоящее время.
А еще decomposed unicode используется по-умолчанию в MacOSX.
Я написал модуль для прозрачного перекодирования NFD -> NFC для macosx, если кому будет полезно.

code.google.com/p/nfd2nfc/
Да вариантов как-бы и нет ;-)
php делает echo, через всякие ob_извращения дело доходит до sapi->ub_write(), который в случае с mod_php равен php_apache_sapi_ub_write. Там вызывается ap_rwrite() в блокирующийся сокет. Если памяти в буфере недостаточно — ядро блокирует вызов пока вся запись не пройдет.
Можно подкрутить SendBufferSize, по идее результат должен быть такой же.
Надо тюнить tcp_wmem, php и apache тут не при чем.
> user@stable:~/httpdocs/ $ rm pro && ln –s ../apps/myproject/rel_0.5.2.1 pro

Непрофессионально: если между двумя действиями случится запрос — юзер увидит ошибку. Надо переименовывать symlink, это атомарно.

Information

Rating
Does not participate
Location
Великобритания
Registered
Activity