NS Scaling
A memory consumption problem occured in recent simulations
(cmcast-[150,200,250].tcl), so we decided to take a closer look
at scaling issue. This page will demostrate the efforts
in finding the bottlneck.
Running cmcast-50.tcl progressively
cmcast-50.tcl contains a topology of 50 nodes and 216 links generated
by GT Internetwork Topology Models (GT-ITM) (pure random alpha=0.2). 10
receivers randomly selected among the 50 nodes join a group at once. A
constant bit rate (3.75ms/packet) source sends packet to the group at node
2.
malloc() column indicates results of dmalloc which counts all
memory used by malloc(). top SIZE column indicates numbers in
SIZE column of 'top' which counts all text, stack, and heap memory.
non-malloc is the difference of the previous two.
KBytes |
malloc() |
top SIZE |
non-malloc() |
MultiSim |
268 |
?? |
?? |
+50 MultiNode |
586 |
2,316 |
1,730 |
+217 duplex-link-of-interfaces |
3,456 |
9,064 |
5,608 |
+compute-routes |
3,573 |
9,308 |
5,735 |
+50 cmcast agent |
3,847 |
9,960 |
6,113 |
+1 CBR source |
3,894 |
9,960 |
6,066 |
+1 10-member mcast group |
3,947 |
10,168 |
6,221 |
+continue CBR source for 1 sec |
4,057 |
10,304 |
6,247 |
Detail Profiling
Topology
KBytes |
Simulator |
MultiSim |
Node |
MultiNode |
duplex-link |
duplex-link(interface) |
malloc() |
268 |
268 |
2 |
6 |
9 |
14 |
malloc() usage to create topology =
268 + #MultiNode * 6 + #duplex-link-of-interfaces * 14
e.g. cmcast-50.tcl
50 MultiNodes: 268 + 6 * 50 = 568 (~ 586)
217 duplex-link-of-interfaces: 568 + 217 * 14 = 3,606 (~ 3456)
Unicast Routing Table
in progress...
ns
Polly Huang
ns
[email protected]