Точное сетевое время от сервера приложений php до сервера базы данных mysql

У меня есть два сервера Один сервер приложений, на котором PHP-приложение работает и еще один сервер, на котором База данных Mysql бежит. Я хочу измерить время, необходимое для отправки запроса с сервера приложений на запрос, полученный на сервере базы данных для выполнения любого запроса.

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

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

Может кто-нибудь предложить способ сделать это с php-сервера на одной машине до mysql db-сервера на другой машине.
И запишите это время где угодно в базе данных или файле или любом другом инструменте, который может быть полезен.
То, что я делаю до сих пор, это загрузка любого файла с php-сервера и время записи перед выполнением запроса mysql и попытка получить метку времени на уровне базы данных, когда он получает запрос на выполнение запроса, но проблема в том, что время теперь занято () Не думаю, что это тот момент, когда база данных попадает в первый раз.

Код написан так

<?php
include('db_config.php');
if (isset($_FILES['data'])) {

if (!file_exists('files/')) {
mkdir('files/', 0777, true);
}
if (!file_exists('img/')) {
mkdir('img/', 0777, true);
}
$errors = array();
$file_name = $_FILES['data']['name'];
$file_size = $_FILES['data']['size'];
$file_tmp = $_FILES['data']['tmp_name'];
$file_type = $_FILES['data']['type'];
if (move_uploaded_file($file_tmp, "img/" . $file_name)) {
$l = 1;

$t = microtime(true);
$micro = sprintf("%03d", ($t - floor($t)) * 1000);
$d = new DateTime(date('Y-m-d H:i:s.' . $micro, $t));
$dd = 'Receiving Time : ' . $d->format("Y-m-d H:i:s.u");
$fileSize = 'File Size : ' . $file_size;
$res = 'Sending Time : ' . $_REQUEST['hidd'] . ' ' . $dd . ' ' . $fileSize;$directory = 'files/';

if (glob($directory . "*.txt") != false) {
$filecount = count(glob($directory . "*.txt"));
$filecount ++;
$file = "files/record_" . $filecount . ".txt";
$fd = fopen($file, "a");
if (!$fd) {
die("Could not open $file to write in");
}
fwrite($fd, $res);
} else {
$file = "files/record_" . $l . ".txt";
$fd = fopen($file, "a");
if (!$fd) {
die("Could not open $file to write in");
}
fwrite($fd, $res);
}

fclose($fd);
}

$db = new Database();
$db->connect();

echo $send_time = date("Y-m-d H:i:s");
$db->insert('request_record', array("$file_name", "$file_size", $send_time, "$res"), "file_name,
file_size,
request_generated_time,
file_uploaded
");
$res = $db->getResult();
print_r($res);
echo $end_time = date("Y-m-d H:i:s"); } ?>
<html>
<body>

<form action="" method="POST" enctype="multipart/form-data" id="frm1">
<input type="file" name="data" />
<input type="hidden" name="hidd" id="hd" />
<input type="button" value="Submit" onclick="pdfSubmit()"/>
</form>

</body>

<script type="text/javascript" src="./jquery-1.9.1.min.js"></script>
<script>
function pdfSubmit() {
var currentTime = new Date();
var hours = currentTime.getHours();
var minutes = currentTime.getMinutes();
var seconds = currentTime.getSeconds();
var miliseconds = currentTime.getMilliseconds();

if (minutes < 10) {
minutes = "0" + minutes;
}
if (seconds < 10) {
seconds = "0" + seconds;
}
var year = pad(currentTime.getFullYear());
var month = pad(currentTime.getMonth() + 1);
var day = pad(currentTime.getDate());

var n = year + '-' + month + '-' + day + ' ' + hours + ':' + minutes + ':' + seconds + '.' + miliseconds;
$('#hd').val(n);
$('#frm1').submit();
}
function pad(numb) {
return (numb < 10 ? '0' : '') + numb;
}
</script>
</html>

-2

Решение

PHP синхронен, так что это может быть довольно просто. Используйте что-то очень простое, что должно вернуться сразу.

использование microtime(true) возвращать метку времени (до и после).

Тогда это зависит от того, какой API SQL вы используете, но запустить что-то вроде SELECT 1,

Затем сравните метки времени.

1

Другие решения

Я бы использовал функцию time () на сервере приложений перед отправкой запроса и после. Разделите разницу на два, и вы получите среднее время.

0