Подскажите пожалуйста, при при запросах к manticoresearch через SQL прыгает TTFB от 0,6-5 сек при этом сам запрос (0.11 сек.), через консоль на CentOS 7 все отлично(запрос 0.09 sec), локально на Windows TTFB 300ms , какие настойки сервера могут влиять на это?
nginx+php-fpm + php7.4
На сервере ресурсов хватает.
TTFB - имеется в виду время замеренное в браузере от начала connection’а до сервера до начала отправки данных сервером, который включает в себя:
- nginx
- какое-то приложение на php
- которое обращается к Manticore Search
?
В таком случае боюсь, что слишком много неизвестных в вопросе. Вы же сами говорите:
через консоль на CentOS 7 все отлично(запрос 0.09 sec)
Наверное, проблема тогда не в Manticore, а в чём-то из:
- php mysql библиотека
- само php приложение
- nginx
- сеть от клиента до сервера
- особенности клиента (браузера)
Нужно на каждом этапе время замерить и тогда будет видно что больше влияет.
Я понял что не в Manticore.
НА сервере много сайтов , где база mysql до 1G и индекс 300Mb все работает замечательно.
TTFB от 0,6-5 сек только на сайте с базой 7G и индекс Manticore1,5G.
Сделал вывоз что проблема с mysql из за большой базы.
Играл с настойками и помогло my.cfg и nginx ничего не помогло.
Решил проблему так:
php-fpm
pm = dynamic
поменял на
pm = static
pm.max_children = от 10 до 100
TTFB стал от 0,2-0.6 сек
Все еще прыгает при нагрузке TTFB
Выяснил что провисание связано с mysqli_connect(), сами запросы работают быстро
Подскажите пжайлуcта
Подключаюсь через
listen = 127.0.0.1:9306:mysql
listen = localhost:9306:mysql
WARNING: multiple addresses found for ‘localhost’, using the first one (ip=127.0.0.1)
mysqli_connect()
‘host’ => ‘localhost’, ‘port’ => 9306 - не работает
‘host’ => ‘127.0.0.1’, ‘port’ => 9306 - работает
[host_info] => 127.0.0.1 via TCP/IP
‘host’ => 'localhost:9306 ’ - работает но TCP/IP
[host_info] => 127.0.0.1 via TCP/IP
сам mysql работает на localhost и via UNIX socket
Можно ли вообще конектится к manticoresearch по UNIX socket и как?
пробовал через listen = /var/run/sphinxo.s так же не выходит
PHP: mysqli::__construct - Manual ?
Можно ли вообще конектится к manticoresearch по UNIX socket и как?
пробовал через listen = /var/run/sphinxo.s так же не выходит
Да, можно. Вот пример:
snikolaev@dev:~$ cat socket.conf
searchd {
listen = /home/snikolaev/socket:mysql
data_dir = data
pid_file = 9315.pid
}
snikolaev@dev:~$ searchd -c socket.conf
Manticore 3.5.0 1d34c49@200722 release
Copyright (c) 2001-2016, Andrew Aksyonoff
Copyright (c) 2008-2016, Sphinx Technologies Inc (http://sphinxsearch.com)
Copyright (c) 2017-2020, Manticore Software LTD (http://manticoresearch.com)
[11:48.309] [3296701] using config file 'socket.conf' (96 chars)...
listening on UNIX socket /home/snikolaev/socket
snikolaev@dev:~$ mysql -S socket
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 1
Server version: 3.5.0 1d34c49@200722 release git branch HEAD (no branch)
Copyright (c) 2000, 2020, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql> status;
--------------
mysql Ver 14.14 Distrib 5.7.31, for Linux (x86_64) using EditLine wrapper
Connection id: 1
Current database: Manticore
Current user: Usual
SSL: Not in use
Current pager: stdout
Using outfile: ''
Using delimiter: ;
Server version: 3.5.0 1d34c49@200722 release git branch HEAD (no branch)
Protocol version: 10
Connection: Localhost via UNIX socket
Server characterset:
Db characterset:
Client characterset: utf8
Conn. characterset: utf8
UNIX socket: socket
Uptime: 8 sec
Threads: 8 Queue: 3 Clients: 1 Tasks: 3 Queries: 0 Wall: 0us CPU: 0us
--------------
mysql>
Спасибо большое, само соединение через socket:mysql сало в 2 раза быстрее чем через 127.0.0.1:9306, протестирую на нагрузке отпишусь, может снизится и нагрузка на CPU
Наконец поборол нагрузку на CPU и TTFB высокий
Оказалось дело вот в чем.
Ранее запускал searchd так:
/var/www/САЙТ/data/manticore/bin/searchd --config /var/www/САЙТ/data/manticore/1.conf
Была нагрузка от 99.9 - 1000%
Запустил так т.к. ранее тестировал manticore и так и оставил
Но изменил путь
/usr/manticore/searchd --config /var/www/САЙТ/data/manticore/1.conf
нагрузка от 2 - 60%
И так на всех сайтах - только путь изменил
Кто может объяснить почему так и с чем это связано?
Может быть через cgroups какие-то ограничения применяются?