Тёмный

The Cost of Memory Fragmentation 

Hussein Nasser
Подписаться 428 тыс.
Просмотров 7 тыс.
50% 1

Опубликовано:

 

12 сен 2024

Поделиться:

Ссылка:

Скачать:

Готовим ссылку...

Добавить в:

Мой плейлист
Посмотреть позже
Комментарии : 14   
@hnasr
@hnasr 7 месяцев назад
backend.win
@jlejlahabib595
@jlejlahabib595 7 месяцев назад
Fantastic Course as always .. I'm waiting impatiently the OS course
@engineeranonymous
@engineeranonymous 7 месяцев назад
NUMA can kill your performance without you noticing it. If you are really serious about memory performance you either go HBM or design it yourself with FPGA like they do it in Military, Telco applications.
@pshaddel
@pshaddel 7 месяцев назад
Thanks for the fantastic video! Is there a way to experiment this stuff in our RAM? I mean, creating a fragmented memory or continuous and see the difference?
@sameerakhatoon9508
@sameerakhatoon9508 7 месяцев назад
a new course on os coming soon?🎉🎉
@105_saswata
@105_saswata 7 месяцев назад
Question @2:00 timestamp. No, there is no additional cost. That's the magic of virtual memory (and paging)! The processes assume contiguous memory chunk is available but internally OS maps different pages to different physical addresses.
@user-wn5td2zb7o
@user-wn5td2zb7o 7 месяцев назад
Amazing topic Hussein. Thanks for sharing the knowledge.
@jks234
@jks234 7 месяцев назад
Hello, I’d like to confirm that the referenced TLD is actually TLS (Thread-local storage)? I looked up TLD and I got Top-Level Domain in domain name structure. Thanks for your videos.
@d3crypted
@d3crypted 6 месяцев назад
Im pretty sure he talked about TLB (Translation lookaside buffer)
@jelliedfish6845
@jelliedfish6845 7 месяцев назад
Doesn't memcached just use a memory pool? What's so genius about it? That's such a common thing
@sebastiansydow7505
@sebastiansydow7505 7 месяцев назад
I may have an answer to your question on whether physical memory fragmentation causes a performance penalty, but I'm not an expert by any means on memory or backend applications, so expect potential mistakes in this calculation. You've said yourself that a memory page is typically 4KiB in size, so the MMU can only cause physical memory fragmentation at 4KiB borders. Which implies that within a single page the physical memory must be contiguous. The wikipedia article "Synchronous dynamic random-access memory" states: > For reference, a row of a 1 Gbit[6] DDR3 device is 2,048 bits wide [...] Assuming your system is equipped with that particular 1Gbit DDR3 memory module, to read an entire 4KiB page you would already need to activate 2 physical rows in your memory. And to read the next page you would need to activate a different row anyway, so physical fragmentation should not matter at all. What I'm unsure of is how to extrapolate this example onto DDR5, as with its introduction we switched from a single 64-bit memory channel per DIMM to two 32-bit memory channels, and a prefetch (= row) buffer size of 8n for DDR3 to 8n or 16n, whatever that n means I am unsure of. If modern DDR5 chips do have row size larger than 4KiB, as you stated in the order of 16Kib, we could now be running into that particular problem, but I've had significant difficulties getting any information on row sizes. However, I could imagine physical memory fragmentation playing a role in which bank your data will be located. From what I've understood, each bank group may operate independently of each other on activate, read and prefetch commands, but share the same data and command bus. So if physical memory fragments in just the right way, most of your data could end up on the same bank, significantly degrading performance as bank switches would need to be serialized instead of being able to operate in parallel.
@mr.wwhite
@mr.wwhite 7 месяцев назад
@hussein can you make video on Oracle Exadata
@roastyou666
@roastyou666 6 месяцев назад
I literally ran into this issue (causing OOM) on my ESP8266 😢 and I had to debug for an hour
@deepanshusharma1619
@deepanshusharma1619 7 месяцев назад
Love you bro
Далее
What happens before the Backend gets the Request
51:26
Faites comme moi
00:14
Просмотров 1,4 млн
Аушев, Путин, «пощечина»
00:56
Просмотров 803 тыс.
The effect of Random UUID on database performance
18:51
Consistent Hashing | The Backend Engineering Show
23:54
They made Python faster with this compiler option
26:42
Threads and Connections | The Backend Engineering Show
49:30
How CPU Efficient is your App?
19:50
Просмотров 14 тыс.
How a Machine Becomes a Router | ip_forward
12:55
Просмотров 7 тыс.
The Real Hidden Cost of a Request
12:21
Просмотров 31 тыс.
They made Kafka 80% faster by switching file systems
31:30