Помогите разобраться с медленным ответом сервера


Dtachkov
837

Есть код, который вставлен в файл test.php на двух разных сайтах на одном хостинге

На первом сайте он выполняется больше 10 сек, на другом практически мгновенно.

Пробывал выполнять вручную в консоли php test.php выполняется мгновенно для первого сайта

Проблема не в самом коде php, а в сервере.

Помогите, куда копать апач один и тот же, настройки nginx и апача ничем не отличаются для двух сайтов.

По идее апач одинаково должен выполнять этот код, но такое не происходит…


<?php
$time_start = microtime(true);
require_once('wp-load.php');


wp_update_post( array( 'ID' => 322974, 'post_status' => 'publish' ) );
$time_end = microtime(true);
$execution_time = ($time_end - $time_start);
var_dump($execution_time);
?>


ivan-lev

Попробуйте после

Dtachkov:
****require_once(‘wp-load.php’);

ещё одну метку времени засечь

        $time_middle = microtime(true); 

А потом


echo "wp-load:" . ($time_middle - $time_start)."<br>";
echo "update post:" . ($time_end - $time_middle)."<br>";

И да.. попробуйте всё это выполнить в браузере в режиме инкогнито (без авторизации)


Anamnado

чо ее засекать

надо смотреть чо там

потому что оно и есть и больше тупо нечему !

а число страниц у сайтов одинаковое?

а то wp_update_post — штука может быть тонкая ( и ID’ => 322974 это одно а D’ => 2674 совсем другое (если что )


Dtachkov

ivan-lev:
Попробуйте

ещё одну метку времени засечь

И да.. попробуйте всё это выполнить в браузере в режиме инкогнито (без авторизации)

Проблема в том, напрямую этот код выполняется мгновенно

Т..е. по ssh выполнить php test.php практически мгновенно выполнится и время будет где то полсекунды.

Естественно что число страниц у сайта разное, но дело не в запросе. Если бы дело было в SQL, То в логах медленных запросов был бы этот запрос…


Sitealert

Dtachkov:
Если бы дело было в SQL

Зачем рассуждать, если можно проверить?


Dtachkov

Sitealert:
Зачем рассуждать, если можно проверить?

Так я проверил, дело не в самом SQL запросе. Он выполняется быстро менее 1 секунды.


ivan-lev

Dtachkov:
Проблема в том, напрямую этот код выполняется мгновенно

Я читал первое сообщение.

А Вы попробовали осмысленно прочитать и сделать то, что написано в моём? ))


Dtachkov

ivan-lev:
Я читал первое сообщение.
А Вы попробовали осмысленно прочитать и сделать то, что написано в моём? ))

Код сейчас выглядит так

<?php
$time_start = microtime(true);
require_once('wp-load.php');
//require_once($_SERVER['DOCUMENT_ROOT'] . 'wp-includes/wp-load.php');
//dividing with 60 will give the execution time in minutes otherwise seconds

wp_update_post( array( 'ID' => 322974, 'post_status' => 'publish' ) );
$time_end = microtime(true);
$execution_time = ($time_end - $time_start);
var_dump($execution_time);
?>

В ответе

float(0.50223898887634)

Сам запрос в режиме инкогнито выполняется также долго

Почему то в браузере появляется запрос на ftp авторизацию, см. картинку https://yadi.sk/i/h16KnuezBZn5-g, причем таких картинок несколько


lonelywoolf

Больше похоже на исчерпание лимитов апача на одновременное количество клиентов. Подключите mod_status и посмотрите разницу.

———- Добавлено 13.05.2020 в 15:01 ———-

Dtachkov:
Почему то в браузере появляется запрос на ftp авторизацию

Прогоните айболитом на всякий случай.


Sitealert

Dtachkov:
Код сейчас выглядит так

Это уже было в стартпосте. Зачем повторять?

Dtachkov:
На первом сайте он выполняется больше 10 сек, на другом практически мгновенно.
Dtachkov:
В ответе
float(0.50223898887634)

Это никак не тянет на 10 секунд.

Dtachkov:
Почему то в браузере появляется запрос на ftp авторизацию, см. картинку https://yadi.sk/i/h16KnuezBZn5-g, причем таких картинок несколько

Такое впечатление, что Вы что-то там у себя делаете, но сами не понимаете, что.


ivan-lev

Dtachkov:
Почему то в браузере появляется запрос на ftp авторизацию,

Обычно этот запрос означает невозможность обновить плагин (или файлы CMS) из-за ограничений доступа к файлам (не хватает разрешений на перезапись файлов).

Можно «вылечить», к примеру, заданием владельца и/или прав доступа к соответствующим файлам, или указанием FTP-доступа в конфиге https://wordpress.org/support/article/editing-wp-config-php/#wordpress-upgrade-constants

Не исключено, что ожидание (и не только в этом случае.. ) связано с тем, что вместо просто обновления поста система занимается проверкой обновлений, скачиванием файлов-плагинов и т.д.

Можно проверить, добавив

define( 'WP_AUTO_UPDATE_CORE', false );

в начало файла (до wp-load)

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *