metaclass: (Default)
[personal profile] metaclass
Третий день ловлю баг, связанный с тем, что TCP сервер под большой нагрузкой падает с ошибкой out of memory, хотя ему выделено всего 800 мег и еще гиг физической памяти свободно. На каждое воспроизведение бага - сутки работы сервера под нагрузкой в несколько раз больше рабочей.

Оказалось - нехватка виртуальной памяти, причем вообще - не самой памяти, а ее адресного пространства. Менеджер памяти при выделении/удалении сильно фрагментирует память, в итоге адресам становится мало 2^31 и все падает, с ошибками типа "not enough storage" в самых левых функциях вроде записи в инишник.
Причем, западло в том, что увидеть это число в Task Manager нельзя, нужно смотреть Process Explorer или делать лог perfmon-ом.

Date: 2009-03-23 11:01 am (UTC)
From: [identity profile] lionet.livejournal.com
Несколько тысяч - это копейки. Несколько миллионов в секунду - это делают современные аллокаторы на современных тачках.

Date: 2009-03-23 08:34 pm (UTC)
From: [identity profile] thundertoad.livejournal.com
приношу извинения, протормозил. специально уточнил - у нас до трех миллонов в секунду. с тысячами не было бы этих проблем.

Date: 2009-03-25 10:12 am (UTC)
From: [identity profile] zamotivator.livejournal.com
А зачем столько? оО

Date: 2009-03-25 10:34 am (UTC)
From: [identity profile] lionet.livejournal.com
Не все умеют без аллокаций памяти работать с динамическими данными. Иногда проще классик инстанциировать на хипе, или там строчку аллоцировать.

Profile

metaclass: (Default)
metaclass

April 2017

S M T W T F S
      1
2345678
9101112 131415
16171819202122
23242526272829
30      

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Oct. 18th, 2025 09:42 am
Powered by Dreamwidth Studios