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

Приложение на asp.net деплоится в Google cloud platform с лимитом

по оперативке в 256mb

При активной работе с коллекциями память переваливает за 256mb и приложение перезапускается

В то же время если в некоторых местах прописать GC.Collect(), то приложение магическим образом перестаёт падать

Получается, что приложение не знает, сколько ему доступно памяти и пытается использовать более 256 мегабайт, хотя вполне может уложиться в них, если будет чаще делать сборку мусора

Так вот вопрос, знает ли приложение сколько ему физически доступно памяти, и если да, то почему может быть такая ситуация, может нужно как-то вручную это прописать?

13 ответов

14 просмотров

SO ведет в https://learn.microsoft.com/en-us/dotnet/api/system.gcmemoryinfo.totalavailablememorybytes

Вы там AWS Lambda изобрели? А нельзя ли просто увеличить объём памяти для этого? Ну или вообще слезть с GCP, потому что оно очень уж сомнительное

Qwerty- Автор вопроса
Stanislav T
SO ведет в https://learn.microsoft.com/en-us/dotne...

То что нужно, спасибо, гляну

https://learn.microsoft.com/en-us/dotnet/core/runtime-config/garbage-collector#heap-limit

Qwerty- Автор вопроса
Слава
https://learn.microsoft.com/en-us/dotnet/core/runt...

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

Qwerty
Но оно же по умолчанию должно понимать сколько пам...

А чёрт его знает, что там Гугл показывает запущенному приложению на .NET

Qwerty- Автор вопроса
Слава
А чёрт его знает, что там Гугл показывает запущенн...

Посмотрел, оказалось у контейнера есть 1gb памяти Но при этом установлено ограничение в 256mb и при его превышении гугл просто перезагружает контейнер

Современный дотнет всё читает из сигруп, ничего ему устанавливать руками не надо. Я бы грешил на твои настройки в гцп (я с ним не работал)

Пройдись в дебаге и посмотри снимки озу. Найди где, когда не чистится мусор. Напрямую гк вызывать не лучшая практика

Qwerty- Автор вопроса
Ayrat Hudaygulov
Современный дотнет всё читает из сигруп, ничего ем...

Можно ссылку где подробнее почитать что за сигрупп ?

Qwerty
Посмотрел, оказалось у контейнера есть 1gb памяти ...

Вот за это гугловое облако и не любят. Они в гугле плевать хотели на клиентов, ни документации нормальной, ничего

Qwerty
control group это оно?

Да, тебе надо чекнуть что в /sys/fs/cgroup/memory

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

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

Какой-то там пердун в 90-х решил, что есть какая-то разная типизация. Кого вообще это волнует?
КТ315
49
void terminal_scroll() { memmove(terminal_buffer, terminal_buffer + VGA_WIDTH, buffer_size - VGA_WIDTH); memset(terminal_buffer + buffer_size - VGA_WIDTH, 0, VGA_WIDTH); ...
Егор
47
Всем привет! Подскажите, пожалуйста, в чем ошибка? Настраиваю подключение к MySQL. Либы лежат рядом с exe. Все как по "учебнику"
Евгений
16
А можете как-то проверить меня по знаниям по ассемблеру?
A A
132
Здравствуйте! У меня появилась возможность купить книгу "Изучай Haskell во имя добра!". Но я где-то слышал, что эта книга устарела. Насколько это правда??
E
22
Здравствуйте! Я вот на stepic решаю задачи на хаскеле https://stepik.org/lesson/8443/step/8?unit=1578 мой код import Data.List (isInfixOf) removing :: String -> [String] ->...
E
10
Камрады, кто тесно работал с vtv, хотел уточнить. Ширина column задаётся жёстко на этапе создания дерева или можно в рантайме ее менять программно (не мышкой)?
Ed Doc
10
да ладно ... что там неочевидного ? глянуть в исх-ки датасета и/или кверика чтобы понять в каком месте и как выполняется обращения к св-вам blablaSQL - минутное дело, даже е...
Сергей
7
Здесь для arm кто-нибудь кодит ?
Nothing
52
Всем привет, у меня есть сервер принимающий входящие HTTP подключения, как проверить, что подключение было через прокси или нет, есть какие то поля в заголовках по которым мо...
DS
8
Карта сайта