全部博文(168)
分类: LINUX
2013-04-28 13:16:29
Linux Kernel 的穩定,有一部份可以歸功於它優良的記憶體管理機制,而探討該機制,有助於瞭解記憶體是如何被 Kernel
所使用,對開發 Linux Driver 的人來說,日後更有許多益處。最重要的是,Linux Kernel
之美是由此開始,優美的設計相當令人著迷。
Linux Kernel 的記憶體管理機制,主要由兩大部份組成:
$ cat /proc/buddyinfo Node 0, zone DMA 76 71 66 50 33 17 5 1 1 1 0 Node 0, zone Normal 22301 6425 45 0 1 1 1 1 1 1 0 Node 0, zone HighMem 97 13 6 10 3 0 2 0 0 0 0
$ slabtop Active / Total Objects (% used) : 858912 / 913334 (94.0%) Active / Total Slabs (% used) : 34472 / 34472 (100.0%) Active / Total Caches (% used) : 91 / 151 (60.3%) Active / Total Size (% used) : 124788.54K / 129749.01K (96.2%) Minimum / Average / Maximum Object : 0.01K / 0.14K / 4096.00K OBJS ACTIVE USE OBJ SIZE SLABS OBJ/SLAB CACHE SIZE NAME 599140 599140 100% 0.13K 20660 29 82640K dentry 174267 134508 77% 0.05K 2601 67 10404K buffer_head 62448 62337 99% 0.48K 7806 8 31224K ext3_inode_cache 20527 13331 64% 0.28K 1579 13 6316K radix_tree_node 9706 7895 81% 0.08K 211 46 844K vm_area_struct 7980 7779 97% 0.04K 95 84 380K sysfs_dir_cache 7345 7100 96% 0.03K 65 113 260K size-32 6372 5440 85% 0.06K 108 59 432K size-64 5040 4521 89% 0.19K 252 20 1008K filp 4318 3873 89% 0.01K 17 254 68K anon_vma 2576 2546 98% 0.04K 28 92 112K Acpi-Operand 1859 1756 94% 0.02K 11 169 44K Acpi-Namespace 945 924 97% 0.43K 105 9 420K shmem_inode_cache 780 610 78% 0.12K 26 30 104K size-96 744 688 92% 0.50K 93 8 372K size-512 737 710 96% 0.35K 67 11 268K proc_inode_cache 648 130 20% 0.05K 9 72 36K journal_head 572 285 49% 0.33K 52 11 208K inode_cache 493 476 96% 0.13K 17 29 68K idr_layer_cache 470 443 94% 0.38K 47 10 188K sock_inode_cache 405 405 100% 0.44K 45 9 180K UNIX 384 357 92% 1.00K 96 4 384K size-1024 280 180 64% 0.19K 14 20 56K skbuff_head_cache 254 2 0% 0.01K 1 254 4K revoke_table 240 240 100% 0.12K 8 30 32K size-128 234 192 82% 0.05K 3 78 12K task_delay_info 203 121 59% 0.02K 1 203 4K biovec-1 203 3 1% 0.02K 1 203 4K fasync_cache 203 4 1% 0.02K 1 203 4K revoke_record 184 138 75% 0.04K 2 92 8K inotify_watch_cache 180 180 100% 0.19K 9 20 36K size-192