Size: a a a

QA — Load & Performance

2019 November 20

VG

Viktor Ganeles in QA — Load & Performance
Aliaksandr Kavaliou
да по ходу так и должно быть
Тогда смена утилиты мониторинга мне не поможет.

Буду смотреть количество потоков и classload

И, как Владимир советует, кем cpu потребляется (хотя про это пока не понимаю, что оно даст)
источник

AK

Aliaksandr Kavaliou in QA — Load & Performance
пытаюсь понять что такое 0.017t (конкретно буква t - tebibyte) в RES?
источник

VG

Viktor Ganeles in QA — Load & Performance
Думаю, что да.
Других идей нет.

В пользу терабайт ещё говорит «75%»
0.017Tb = 17Gb ~= 75% от 23 гигов памяти, прописанных в total
источник

AK

Aliaksandr Kavaliou in QA — Load & Performance
a ты можешь сделать "pmap -x 35107"?
источник

AK

Aliaksandr Kavaliou in QA — Load & Performance
где 35107 - пид того процесса
источник
2019 November 21

AK

Alexander Koptyaev in QA — Load & Performance
Alexander Koptyaev
Привет, вопрос по базисному термину, на который не отыскал детального объяснения в чатике и первой странице гугла:
что из себя представляет VU (virtual user) с точки зрения клиентской и серверной машинки, а также взаимодействия клиент-сервер?
Или же зависит от используемого протокола и/или фреймворка нагрузки?

Вводные данные:
фреймворк/инструмент: k6, http-запросы.

Профили нагрузки:
1) rps:1; vus:1; на энное кол-во минут — в графане вижу, что увеличение кол-ва запросов действительно минимально: + ~1rps. Всё хорошо;
2) rps:1; vus: 1..1000 с разгоном в течение энного кол-ва минут — вижу, что нагрузка увеличилась на ~+100rps в пике, хотя по документации k6 опция "rps" —  "The maximum number of requests to make per second, in total across all VUs" , т.е.  вместо ~+100rps ожидал увидеть нагрузку в ~1rps, по аналогии с опытом №1
— т.е. либо баг k6, что лимит по rps ошибочно не учитывает сумму rps по всем потокам VUs, либо же скрытое законное поведение для VUs, необходимое для существования каждого VU.

Куда копать и что почитать о тонкостях сущности VU?
Проблема была во мне: пытался использовать фичу, которая ещё только в планах. Сейчас в k6 нет возможности локально задать rps-лимит для каждого шага нагрузки (stage) — допустимо объявлять лишь глобально для сценария.
источник

VG

Viktor Ganeles in QA — Load & Performance
Aliaksandr Kavaliou
a ты можешь сделать "pmap -x 35107"?
Попробую :)
источник

ΙΤ

Ιωάννης Τσεκούρι in QA — Load & Performance
Сталкивался кто-то с профилированием цпу и памяти haskell? какие инструменты там нормальные есть? * кхе кхе *
источник
2019 November 22

AP

Alexander Petrov in QA — Load & Performance
Народ, Tsung только под линухом пашет?
источник

AP

Alexander Petrov in QA — Load & Performance
для винды его нет?
источник

AP

Alexander Petrov in QA — Load & Performance
Ιωάννης Τσεκούρι
Сталкивался кто-то с профилированием цпу и памяти haskell? какие инструменты там нормальные есть? * кхе кхе *
источник

ВС

Вячеслав Смирнов in QA — Load & Performance
Хорошие вопросы пошли! Один интереснее другого
источник

ВС

Вячеслав Смирнов in QA — Load & Performance
Сегодня видел интересный эффект. В конфиге лога одного сервиса параметр http://logback.qos.ch/manual/appenders.html#immediateFlush выставлен в false. Сделано явно (по умолчанию true). И уровень логирования был Debug.

1. На диаграмме работы потоков видно, что пока один поток пишет в лог событие с тестом SQL-запроса, все другие ждут. А в режиме DEBUG все потоки пишут события.
Возможно это особенность логирования именно SQL-запросов, именно той библиотекой, что используется в приложении (doobie). Возможно, особенность отключения  immediateFlush. Но приложение стало работать со скоростью записи в лог одного потока — очень медленным.

2. События попадают в лог неотсортированными по времени. С небольшой погрешностью. Тут думаю точно дело в immediateFlush = false.

Починили 1 отключением DEBUG для SQL. Но вопрос к immediateFlush остался. А ведь возможно, это моя рекомендация когда-то была. Хотел, как лучше
источник

O

Oleg in QA — Load & Performance
Вячеслав Смирнов
Сегодня видел интересный эффект. В конфиге лога одного сервиса параметр http://logback.qos.ch/manual/appenders.html#immediateFlush выставлен в false. Сделано явно (по умолчанию true). И уровень логирования был Debug.

1. На диаграмме работы потоков видно, что пока один поток пишет в лог событие с тестом SQL-запроса, все другие ждут. А в режиме DEBUG все потоки пишут события.
Возможно это особенность логирования именно SQL-запросов, именно той библиотекой, что используется в приложении (doobie). Возможно, особенность отключения  immediateFlush. Но приложение стало работать со скоростью записи в лог одного потока — очень медленным.

2. События попадают в лог неотсортированными по времени. С небольшой погрешностью. Тут думаю точно дело в immediateFlush = false.

Починили 1 отключением DEBUG для SQL. Но вопрос к immediateFlush остался. А ведь возможно, это моя рекомендация когда-то была. Хотел, как лучше
а какой аппендер используется?
источник

O

Oleg in QA — Load & Performance
Например FileAppender будет писать на диск и занимать ресурсы, что может приводить в тормозам. То есть он ждет когда запись реально запишется на диск. А SyslogAppender пишет в сислог по udp, тормозов от диска нет, сообщения могут терятся и реордерится.  У меня частенько они оказываются не в правильном порядке без всякого immediateFlush
источник

ВС

Вячеслав Смирнов in QA — Load & Performance
Oleg
Например FileAppender будет писать на диск и занимать ресурсы, что может приводить в тормозам. То есть он ждет когда запись реально запишется на диск. А SyslogAppender пишет в сислог по udp, тормозов от диска нет, сообщения могут терятся и реордерится.  У меня частенько они оказываются не в правильном порядке без всякого immediateFlush
File
источник

O

Oleg in QA — Load & Performance
Попробуй сислог  ;)
источник

P

PsyDebug in QA — Load & Performance
Alexander Petrov
для винды его нет?
Для всего, где запускается beam, я полагаю
источник

СЧ

Сергей Чепкасов in QA — Load & Performance
Oleg
Например FileAppender будет писать на диск и занимать ресурсы, что может приводить в тормозам. То есть он ждет когда запись реально запишется на диск. А SyslogAppender пишет в сислог по udp, тормозов от диска нет, сообщения могут терятся и реордерится.  У меня частенько они оказываются не в правильном порядке без всякого immediateFlush
Можно попробовать писать в файл, обернув FileAppender в AsyncAppender:
https://github.com/qos-ch/logback/blob/master/logback-examples/src/main/resources/chapters/appenders/conf/logback-async.xml
В gatling так делаем, при необходимости писать логи в файл
источник

ВС

Вячеслав Смирнов in QA — Load & Performance
Сергей Чепкасов
Можно попробовать писать в файл, обернув FileAppender в AsyncAppender:
https://github.com/qos-ch/logback/blob/master/logback-examples/src/main/resources/chapters/appenders/conf/logback-async.xml
В gatling так делаем, при необходимости писать логи в файл
Спасибо огромное
источник