185 похожих чатов

Запустил с четырех SSH-сессий вот этот скрипт (т.е. 4 экземпляра) #!/bin/bash for

i in {1..1000000}
do
curl localhost:8080/health?uptime=isodate
done


В обработчике Vapor выполняется такой код:

res.headers.replaceOrAdd(name: "X-Stats-Uptime", value: statsService.getUptime(type))


В statsService.getUptime() выполняется такой код:

let date = Date(timeIntervalSinceReferenceDate: bootTime)
return "since \(DateFormatter.iso8601ShortUTCZ.string(from: date))"

т.е. задействуется глобально определенный DateFormatter.
Вот он:

static let iso8601ShortUTCZ: DateFormatter = {
let formatter = DateFormatter()
formatter.dateFormat = "yyyy-MM-dd'T'HH:mm:ss'Z"
formatter.calendar = Calendar(identifier: .iso8601)
formatter.timeZone = TimeZone(secondsFromGMT: 0)
formatter.locale = Locale(identifier: "en_US_POSIX")
return formatter
}()

По выдаче htop видно, что CPU 100%, причем оба процесса Vapor загружены примерно равномерно. Т.е. используются оба ядра. Никаких проблем, крашей, в логе чисто. Единственное — перестал срабатывать VaporCron.

13 ответов

44 просмотра

у них там в примере не крешилось, а строка портилась (становилась другой длины от ожидаемой)

Alex-Sherbakov Автор вопроса
Andrey
у них там в примере не крешилось, а строка портила...

У них — да. Но я их код тоже крутил, выше писал — ничего.

Alex Sherbakov
У них — да. Но я их код тоже крутил, выше писал — ...

Я бы сказал что лучше перестраховаться. У нас 10 микросервисов и падал только 1 причем падал когда с фронта приходило сразу 2 запроса с разницей в миллисекунды. Фронт конечно решил эту проблему со своей стороны но мы перестраховались и сделали постоянную инициализацию форматера

Alex-Sherbakov Автор вопроса
ROST 🇺🇦🇩🇪
Я бы сказал что лучше перестраховаться. У нас 10 м...

О, соломки подстелить — это наше ффсё. По я пока не знаю, какую именно именно можно подстелить, особо не не влезая в код. Поразбираюсь с локами сейчас.

Alex Sherbakov
О, соломки подстелить — это наше ффсё. По я пока н...

диспатч в мейн или выделить для него свою очередь

Alex Sherbakov
https://t.me/server_side_swift/81170

Только что проверил на дедике (Ryzen 3600x), завершается успешно

Alex-Sherbakov Автор вопроса

А ты уверен что у тебя цикл тут не дожидается результата прежде чем отправить следующий запрос?

Alex-Sherbakov Автор вопроса
ROST 🇺🇦🇩🇪
А ты уверен что у тебя цикл тут не дожидается резу...

Конечно дожидается. Но их 4 штуки. А ядер только 2.

Alex Sherbakov
Конечно дожидается. Но их 4 штуки. А ядер только 2...

Попробуй увеличить объем данных которые кодируются. Возможно у тебя слишком быстро они обрабатываются и не попадают на гонку)

Похожие вопросы

Обсуждают сегодня

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Гайс, вопрос для разносторонее развитых: читаю стрим с юарта, нада выделять с него фреймы с определенной структурой, если ли чо готовое, или долбаться с ринг буффером? нада у...
Vitaly
9
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
длина пакета фиксированная, или меняется?
Okhsunrog
7
Карта сайта