Перейти к содержимому


Фотография
- - - - -

Memcached - Joomla - JBZoo


Сообщений в теме: 42

#11 udjin

udjin

Отправлено 24 February 2016 - 16:02

Вот, что посоветуете?)

А в чём, собственно, проблема-то?

Сначала окружение замените, поставьте как я и говорил nginx+php5-fpm+mysql
А потом уже посмотрите что грузит систему.


Сообщение отредактировал udjin: 24 February 2016 - 16:03

  • 1

#12 SmetDenis

SmetDenis

Отправлено 24 February 2016 - 16:13

Костыль. В пхп есть Opcache. Его нужно крутить.

Opcache - Это о другом. Как понимаю, тут вопрос о драйвере кеширования.
опкод-кешер просто должен быть. Всегда. Желательно нативный из php 5.6

memcache в joomla работает замечательно но не быстрее чем простейшие функции работы с файлами.
если сделать RAM для папки с кешем, то скорость кеша будет максимальной и мы не тратим время на сетевое подключение к демону
я тестировал разницу у себя на Debian.

база данных в памяти лежит? т.е оптимизировали все что можно в my.ini ? типы таблиц?
есть еще такая штука - партиции

и да, apache - очень тяжелая штука. это прям первым делом)

можешь показать phpinfo ?
  • 1
JBZoo v4.0 и новый чудный мир Open Source GPL
Отключайте проверку лицензий как можно скорее!



— Есть два типа людей: Кто еще не делает бекапы и кто уже делает бекапы.


#13 udjin

udjin

Отправлено 24 February 2016 - 16:26

Opcache - Это о другом. Как понимаю, тут вопрос о драйвере кеширования.
опкод-кешер просто должен быть. Всегда. Желательно нативный из php 5.6

memcache в joomla работает замечательно но не быстрее чем простейшие функции работы с файлами.
если сделать RAM для папки с кешем, то скорость кеша будет максимальной и мы не тратим время на сетевое подключение к демону
я тестировал разницу у себя на Debian.

база данных в памяти лежит? т.е оптимизировали все что можно в my.ini ? типы таблиц?
есть еще такая штука - партиции

и да, apache - очень тяжелая штука. это прям первым делом)

можешь показать phpinfo ?

Насколько я знаю, opcaсhe именно тем и занят, что кеширует в памяти неизменённый пхп код. Нам нужно кешировать веб-сервром : css js html, картинки и иконки. Opcache кеширует нам код. Код приложения грамотно строит запросы к бд. Что ещё тут кешировать? Phpinfo в лс отправил

опкод-кешер просто должен быть. Всегда. Желательно нативный из php 5.6

дело в том что opcache нужно ещё настроить, обьяснить ему как много кешировать, сколько хранить в памяти, когда кеш обновлять. Я думаю, вам следует просто настроить в пуле хоста php директивы opache и всё.


 


Сообщение отредактировал udjin: 24 February 2016 - 16:32

  • 1

#14 SmetDenis

SmetDenis

Отправлено 24 February 2016 - 17:21

Насколько я знаю, opcaсhe именно тем и занят, что кеширует в памяти неизменённый пхп код.

Все верно, у нас просто не будет этапа прекомпиляции и чтения кода. Но все равно останутся медленные участки кода.
Эти медленные участки обычно используют какие-то постоянные данные, которые не нужно вычислять снова (less, рендеринг цены, http-запросы и прочее). Т.е все то что лежит в папке кешf по умолчанию. Обычно в эту папку очень много обращений, и nginx в том числе.
Т.к файловая система - это самое медленная часть у любого компьютера, то логично будет вынести это в RAM, либо переложить на демон вроде memcached. RAM работает со скоростью оперативно памяти и процессора, т.е в районе 5-10 Гигабайт в секунду.

Помимо опкода есть еще ряд параметров на которые стоит обратить внимание. Там из важных настроек только размер и папка для временных файлов.
Много важных мелочей. С миру по нитке - голому веревка =)

Phpinfo в лс отправил

Да, спасибо. Извините что не уточнил, я хотел глянуть phpinfo Евгения.
Ваш тоже глянул, жесткого криминала не заметил.
  • 1
JBZoo v4.0 и новый чудный мир Open Source GPL
Отключайте проверку лицензий как можно скорее!



— Есть два типа людей: Кто еще не делает бекапы и кто уже делает бекапы.


#15 udjin

udjin

Отправлено 24 February 2016 - 17:52

Все верно, у нас просто не будет этапа прекомпиляции и чтения кода. Но все равно останутся медленные участки кода.
Эти медленные участки обычно используют какие-то постоянные данные, которые не нужно вычислять снова (less, рендеринг цены, http-запросы и прочее). Т.е все то что лежит в папке кешf по умолчанию. Обычно в эту папку очень много обращений, и nginx в том числе.
Т.к файловая система - это самое медленная часть у любого компьютера, то логично будет вынести это в RAM, либо переложить на демон вроде memcached. RAM работает со скоростью оперативно памяти и процессора, т.е в районе 5-10 Гигабайт в секунду.

Помимо опкода есть еще ряд параметров на которые стоит обратить внимание. Там из важных настроек только размер и папка для временных файлов.
Много важных мелочей. С миру по нитке - голому веревка =)

Да, спасибо. Извините что не уточнил, я хотел глянуть phpinfo Евгения.
Ваш тоже глянул, жесткого криминала не заметил.

У вас эта папка в которую идёт много обращений, содержит результативные файлы этих обращений? (В смысле код выполнился - создался файлик) Если да - то просто с помощью nginx закешировать её да и всё. 

Ещё момент:  можно на vps создать в раме, как уже говорили, отдельную partition и в неё положить ваши папки в которе идёт много обращений. На Debian - подобных дистрибутивах это делается примерно так:

mount -t tmpfs -o size=1024m tmpfs /tmp/tmpfs

И не используйте memcache - он устарел) Here, in Russia, we use memcached)))  

https://ru.wikipedia.../wiki/Memcached
http://thehighload.c...лиенты-для-php/


Сообщение отредактировал udjin: 24 February 2016 - 18:05

  • 1

#16 CB9TOIIIA

CB9TOIIIA

Отправлено 24 February 2016 - 18:08

top - 14:25:38 up 45 days, 14:57,  1 user,  load average: 92.88, 67.02, 37.59
Tasks: 313 total, 126 running, 187 sleeping,   0 stopped,   0 zombie
Cpu0  : 88.0%us,  9.6%sy,  0.0%ni,  0.0%id,  0.0%wa,  0.0%hi,  2.3%si,  0.0%st
Cpu1  : 98.0%us,  2.0%sy,  0.0%ni,  0.0%id,  0.0%wa,  0.0%hi,  0.0%si,  0.0%st
Cpu2  : 98.3%us,  1.7%sy,  0.0%ni,  0.0%id,  0.0%wa,  0.0%hi,  0.0%si,  0.0%st
Cpu3  : 97.7%us,  2.3%sy,  0.0%ni,  0.0%id,  0.0%wa,  0.0%hi,  0.0%si,  0.0%st
Cpu4  : 98.0%us,  2.0%sy,  0.0%ni,  0.0%id,  0.0%wa,  0.0%hi,  0.0%si,  0.0%st
Cpu5  : 96.7%us,  2.3%sy,  0.0%ni,  0.0%id,  0.0%wa,  0.0%hi,  1.0%si,  0.0%st
Cpu6  : 98.0%us,  2.0%sy,  0.0%ni,  0.0%id,  0.0%wa,  0.0%hi,  0.0%si,  0.0%st
Cpu7  : 96.3%us,  3.7%sy,  0.0%ni,  0.0%id,  0.0%wa,  0.0%hi,  0.0%si,  0.0%st
Mem:  16393000k total, 12625560k used,  3767440k free,   234752k buffers
Swap:   998844k total,    83096k used,   915748k free,  5379696k cached

phpinfo - отправил Денису. 

 

 

Евгений: RAM Disk для папки кеша? у нас нельзя?

да не это через задний проход, если делать то мемкешед, он напрямую работает, отслеживает время переполнение.....
 Евгений: ну и еще сказали:
 
Проблема в том что используется апач. Рекомендую поставить nginx+php5-fpm. Проще рулить слейв-процессами пхп + гибкость nginx. Успешно юзаю уже больше 3 лет.
Евгений: у нас вроде это был такой вариант?
да проблема не в апаче, это называется забить костыль, нгинкс не умеет пхп он его как скрипт через шелл запускает
не поможет это
будет пхп модуль тормозить
ничего не поменяется

  • 0

#17 udjin

udjin

Отправлено 24 February 2016 - 18:17

Извините - это бред. 
 

 

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


Человек не знает как работает связка. Ставится Nginx - это вебсервер. Он не выполняет код вообще - он просто вебсервер. Он общается с php через сокет. Ставится php5-fpm - среда исполнения пхп. В этом случае - пхп это не модуль, ничего тормозить не будет. Судя по его словам - это такой закоренелый адепт апача из 1993 года)
Я ещё раз повторяю, смените связку с апача и модуля пхп, на nginx+php-fpm вы СРАЗУ увидите разницу в топе. Я и многие другие используют эту связку не просто так) 

Тут работы на 10 минут. 
apt-get install nginx - правим nginx.conf и файл виртуального хоста

apt-get install php5-fpm - правим файл php.ini и файл пула сайта
опционально доставляем пакеты mysql или что там у вас, mongo, redis, tarantool. Все конфиги я скинул выше - они рабочие. Рестартуем nginx и php-fpm, смотрим топ и блаженно улыбаемся)

 

 

показывают мне топ сервера не меняя связки и вопрошают - щито делать? я говорю смените связку, они не меняя связки опять говорят - не, это фигня, ничо не изменится, мы НЕ пробовали)


Сообщение отредактировал udjin: 24 February 2016 - 18:25

  • 2

#18 SmetDenis

SmetDenis

Отправлено 24 February 2016 - 18:28

У вас эта папка в которую идёт много обращений, содержит результативные файлы этих обращений? (В смысле код выполнился - создался файлик) Если да - то просто с помощью nginx закешировать её да и всё.

Я говорю о серилизованных файлах php. Их там сотни и даже тысячи для больших сайтов. И них статики процентов 5 максимум.
  • 1
JBZoo v4.0 и новый чудный мир Open Source GPL
Отключайте проверку лицензий как можно скорее!



— Есть два типа людей: Кто еще не делает бекапы и кто уже делает бекапы.


#19 udjin

udjin

Отправлено 24 February 2016 - 18:31

Я говорю о серилизованных файлах php. Их там сотни и даже тысячи для больших сайтов. И них статики процентов 5 максимум.

Тогда memcached. И связку сменить. 


  • 1

#20 SmetDenis

SmetDenis

Отправлено 24 February 2016 - 18:43

nginx выполняет php код ровно столько же.
только он жрет памяти гораздо меньше, умеет использовать такие системные вещи как sendfile и не плодит процессов. парсит конфиги только раз. инициализирует свои модули тоже только при старте.

apache же создает на каждый чих отдельный под процесс и запускается с нуля снова и снова, т.е каждый раз парсит конфиги, потом htaccess, переключается на нужного пользователя от сайта (ftp), инициализирует модули и только потом PHP. Таким образом съедает ресурсы. как минимум память и примерно 20-50% процессора. + нужно учитывать особенность воркера apache

Думаю админ это все прекрасно знает, просто пытается переложить проблему на CMS и разработчика.
Мол "Joomla - Г, разработчики - М, я - Дартаньян".
Либо и правда - это жесткий адепт апача :)

Кстати, далеко не все оптимизируют my.ini - помещают sql-кеш в память сервера + ram для временных файлов при join и сортировках с учетом типов таблиц (myisam, innodb)
И я советую задуматься о партициях для больших таблиц в базе.
  • 1
JBZoo v4.0 и новый чудный мир Open Source GPL
Отключайте проверку лицензий как можно скорее!



— Есть два типа людей: Кто еще не делает бекапы и кто уже делает бекапы.





Click to return to top of page in style!