Size: a a a

QA — Load & Performance

2021 March 02

AA

Artem Astaxov in QA — Load & Performance
Апельсин
Это не авторитетное мнение. Это просто мое сложившееся впечатление в процессе настройки мониторинга постгреса и покуривания гугла. Если гуглить, обычно натыкаешься на решения через заббикс или прометеус
лучше когда все в одном месте имхо, было когда несколько заббиксов, графана и еще более узкие мониторинги, не оч удобно все же
источник

VB

Viktor Bashkatov in QA — Load & Performance
Alexey Kübler-Ross
Хм, а чем прометеус лучше?
В церкви метрик пишут следующее: https://github.com/freeseacher/metrics_ru_faq#про-influxdb

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

На одном проекте заказчик мониторит Prometheus'ом, на другом - Zabbix'ом. На втором нас к имеющемуся мониторингу пока не допустили, потому поднял промы на машинах с джметром и заглушками. Уже было так, что диски забивались, в этом случае запись метрик в InfluxDB прекратилась бы. Зачем 2 прома? Сначала был только на машине с джметром, но иногда при подаче нагрузки дашборд показывает пустоту. Грешу на диски (машины уже сбоили из-за них), потому поднял резервный. Конечно, с самого начала нужно было выбить машину для мониторинга, но пришлось использовать то, что есть.
источник

VB

Viktor Bashkatov in QA — Load & Performance
В общем, у нас InfluxDB для метрик НТ и Prometheus для мониторинга машин.
источник

AK

Alexey Kübler-Ross in QA — Load & Performance
Прикольно)
источник

A

Alexander in QA — Load & Performance
Vlad Shabalov
Коллеги, добрый день! Скажите, пожалуйста, вопрос задавал когда-то уже, но есть дополнительный. Если я, к примеру, хочу считать в память все строки из .csv, т.е я использую что-то в таком виде:                        List<String> records = new ArrayList<String>();
records.put(vars.get("issue_key")
vars.get("issue_key")
try (BufferedReader br = new BufferedReader(new FileReader("202102251137.csv"))) {
   String issue_key;
   while ((issue_key = br.readLine()) != null) {
       records.add(issue_key);
   }
   vars.put("issue_key", records.toString()); }
, то нормально ли прописывать это в JSR223 Sampler, а вот уже сам рандом в BeanShell Preprocessor              import java.util.Random;
var issue_key;
Random random = new Random();
vars.put("issue_key", vars.get("issue_key" + random.nextInt(Integer.parseInt(vars.get("issue_key")))));  Вопрос все тот же, никак не получается прям вытащить рандомное количество строк из .csv. У меня есть тесты по последовательному чтению файла и рандомному, но там рандом одной строки, а мне нужно, к примеру, рандом 10, 54, 87 строк с последующей подстановкой в тело POST-запроса в виде простого списка. В нагрузке совсем недавно, не судите строго.
Может csv по рэндомному принципу составить и тянуть подряд строки?
источник

AK

Alexey Kübler-Ross in QA — Load & Performance
Alexander
Может csv по рэндомному принципу составить и тянуть подряд строки?
Хотят вроде, что бы потоки обрабатывали разные данные... А если составить рандомно - будет просто работа со сдвигом, но как вариант, можно завелосипедить - для каждого потока рандомить csv перед тестом 😅
источник

AK

Alexey Kübler-Ross in QA — Load & Performance
Alexey Kübler-Ross
Хотят вроде, что бы потоки обрабатывали разные данные... А если составить рандомно - будет просто работа со сдвигом, но как вариант, можно завелосипедить - для каждого потока рандомить csv перед тестом 😅
Но зависит от размера файла и кол-ва данных в нем 🤔
источник

AK

Alexey Kübler-Ross in QA — Load & Performance
Может быть и смысла разломить нет... Когда файл маленький ,а потоков много 🤔
источник

VS

Vlad Shabalov in QA — Load & Performance
Строк порядка 52000, сам файл 600 Кб
источник

VS

Vlad Shabalov in QA — Load & Performance
Alexey Kübler-Ross
Хотят вроде, что бы потоки обрабатывали разные данные... А если составить рандомно - будет просто работа со сдвигом, но как вариант, можно завелосипедить - для каждого потока рандомить csv перед тестом 😅
А так можно?
источник

A

Alexander in QA — Load & Performance
Alexey Kübler-Ross
Хотят вроде, что бы потоки обрабатывали разные данные... А если составить рандомно - будет просто работа со сдвигом, но как вариант, можно завелосипедить - для каждого потока рандомить csv перед тестом 😅
Не знаю, что за задача, но может рэндомно генерить тогда по ходу теста?
источник

VS

Vlad Shabalov in QA — Load & Performance
Я просто читал, мол, много обращаться к файлу - не OK, а из памяти как это делать - я ХЗ. Скрипт не работает, а сама программа в Groovy на VSCode, вроде, да.
источник

AK

Alexey Kübler-Ross in QA — Load & Performance
Vlad Shabalov
Я просто читал, мол, много обращаться к файлу - не OK, а из памяти как это делать - я ХЗ. Скрипт не работает, а сама программа в Groovy на VSCode, вроде, да.
Какой скрипт не работает?
источник

AK

Alexey Kübler-Ross in QA — Load & Performance
Vlad Shabalov
А так можно?
Что именно?
источник

A

Alexander in QA — Load & Performance
Непонятна задача
источник

AK

Alexey Kübler-Ross in QA — Load & Performance
Vlad Shabalov
Строк порядка 52000, сам файл 600 Кб
А потоков сколько? И время выполнения одного цикла?
источник

A

Alexander in QA — Load & Performance
Что там такого в csv
источник

VS

Vlad Shabalov in QA — Load & Performance
В csv тупо номера задач из JIRA, к примеру, FОC7-4861 и т.д. Я подставляю их в POST-запрос с телом вида: POST data:
[
"UX-1"
]

[no cookies], но мне нужно, чтобы было типа вот такого: POST data:
[
"UX-1",                                                                              "JHYTG-645".                                                                     "NHYD-675"
]

[no cookies]. Про число потоков - тут не скажу, требований мне не дали, главное, чтобы прям совсем не было больших задержек, так как иногда релизные задачи (они же задачи JIRA) содержат большое количество хешей релиза в release notes и долго тянутся.
источник

A

Alexander in QA — Load & Performance
Vlad Shabalov
В csv тупо номера задач из JIRA, к примеру, FОC7-4861 и т.д. Я подставляю их в POST-запрос с телом вида: POST data:
[
"UX-1"
]

[no cookies], но мне нужно, чтобы было типа вот такого: POST data:
[
"UX-1",                                                                              "JHYTG-645".                                                                     "NHYD-675"
]

[no cookies]. Про число потоков - тут не скажу, требований мне не дали, главное, чтобы прям совсем не было больших задержек, так как иногда релизные задачи (они же задачи JIRA) содержат большое количество хешей релиза в release notes и долго тянутся.
Все равно пока не пойму для чего рэндомизация
источник

A

Alexander in QA — Load & Performance
Навскидку, сделать csv в виде матрицы, в одной строке сколько-то номеров задач, например 10, из них рэндомно забираешь одну
источник