mstdmstd
Новичок
Привет,
Есть программа с поисковой системой (laravel5.8/mysql5 /vuejs 2.5 / bootstrap 4 ) где данные читаются с удаленного сервера используя ip этого сервера
и отображаются для юзера. Юзер может выбрать некоторые из этих слов и сохранить их в базе. Все просто.Таблица users обычна.
Когда юзер сохраняет данные то 1 строка сохранятется в базе :
где пользователь вручную заполняет поля title и description.
найденные строки имеют 40-50 полей которые сохраняются в таблице:
Мой вопрос как приложенние может быть протестировано на большую нагрузку в поиске узких мест?
На первый взгляд таким узким местом кажется удаленный сервер. Поскольку не каждый запрос юзером будет сохранен в mysql db.
Приходит мысль написать функцию для выполнения запроса curl-ом с удаленного сервера рендомно меняя параметры ввода запроса
(в запросе всего порядка 12 параметров).
Из JS устанавливая временной интервал запускать этот запрос скажем N-запросов в минуту
N - начиная с 10 и увеличивая для следующих тестов и выводя на экран результыт запросов на экран
(время выполнения запроса, параметры запроса, кол-во строк с сервера)...
Я выдумывал велосипед выше, какие еще benchmark-и / тесты существуют для таких целей?
Спасибо !
Есть программа с поисковой системой (laravel5.8/mysql5 /vuejs 2.5 / bootstrap 4 ) где данные читаются с удаленного сервера используя ip этого сервера
и отображаются для юзера. Юзер может выбрать некоторые из этих слов и сохранить их в базе. Все просто.Таблица users обычна.
Когда юзер сохраняет данные то 1 строка сохранятется в базе :
SQL:
CREATE TABLE `user_lists` (
`id` int(10) UNSIGNED NOT NULL,
`user_id` int(10) UNSIGNED NOT NULL,
`title` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL,
`description` text COLLATE utf8mb4_unicode_ci,
`saved_count` int(10) UNSIGNED NOT NULL DEFAULT '1',
`created_at` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
`updated_at` timestamp NULL DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
найденные строки имеют 40-50 полей которые сохраняются в таблице:
SQL:
CREATE TABLE `search_results` (
`id` bigint(20) UNSIGNED NOT NULL,
`user_list_id` int(10) UNSIGNED NOT NULL,
`source_id` int(10) UNSIGNED NOT NULL,
`field` varchar(50) COLLATE utf8mb4_unicode_ci NOT NULL,
`value` json NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
На первый взгляд таким узким местом кажется удаленный сервер. Поскольку не каждый запрос юзером будет сохранен в mysql db.
Приходит мысль написать функцию для выполнения запроса curl-ом с удаленного сервера рендомно меняя параметры ввода запроса
(в запросе всего порядка 12 параметров).
Из JS устанавливая временной интервал запускать этот запрос скажем N-запросов в минуту
N - начиная с 10 и увеличивая для следующих тестов и выводя на экран результыт запросов на экран
(время выполнения запроса, параметры запроса, кол-во строк с сервера)...
Я выдумывал велосипед выше, какие еще benchmark-и / тесты существуют для таких целей?
Спасибо !