• No results found

Network Instantiation Memory Usage

5.2 Network Instantiation Memory Usage

Once the routing simulator was deemed sane and reliable by the test performed in Section 5.1, the need to know whether this implementation is plausible for mid range hardware use needed to be determined. This set of tests was performed to help determine just that.

The amount of memory in commodity hosts3at the time of this research was seen to range between 4 and 16 GB. Although this amount did seem in excess of the problem’s needs, it is to notable that this routing simulator is aimed at large scale network simulation, and so being able to scale one hundred thousand or one million nodes with forwarding tables into this available memory could prove to be an overzealous goal.

This test was performed by creating a simulated network containing one million nodes within the host running the simulation. Starting from zero forwarding entries, five en-tries were added per iteration of testing to a maximum of 25 enen-tries. Memory usage was recorded through reading /proc/meminfo and in order to achieve the amount used a reading was taken directly before and after the nodes were added to the simulation. The difference between these two values was then taken in order to acquire the memory used in instantiating the simulated network.

As the results should be fairly linear in memory growth requirements, results can be taken and formulated into a simple linear equation to predict how much memory would be required for a required network. These results were then used to make a conjecture as to when, and if, a software based routing simulator would be able to simulate the entire Internet in memory with a set forwarding entry count.

5.2.1 Results

Figure 5.4 shows the growth in memory as forwarding entries are added to one million nodes in increments of five entries per node. Without any forwarding entries in place, the one million nodes have a base memory footprint of 23.80 MB. This means that the amount of memory required for each node is roughly 25 bytes of memory. After the first set of five forwarding entries is added to each node, the memory required rose to 193.5 MB. As one can note in Figure 5.4, this requirement grew fairly linearly to the amount of 859.4 MB.

The average growth rate per five forwarding entries added to every node in this network was 167.12 MB.

3In terms of mid ranged hosts available in store at time of this research.

5.2. NETWORK INSTANTIATION MEMORY USAGE 94

Figure 5.4: Memory Required for 5 Forwarding Table Entries Added to Each of 1000000 Nodes

To derive a formula to predict how much memory is required according to node count and number of forwarding entries per node, one needs to take into account the memory needed per node, and the amount of memory required per forwarding entry added. Using the result of 167.12 MB of memory used per five forwarding entries added to each of one million nodes, one can see that adding a forwarding entry to a node requires roughly 36 bytes of memory in this implementation. This means that the following equations should hold true to any extended predictions:

F orward in gEntr yR equirement = F orwardingEntr yCount × 35b ytes

N od eR equirement = N odeCount × 25b ytes

T otalR equirement = F orwardingEntr yRequirement + N odeRequirement

To test this formula’s accuracy one should consider the known results from the tests performed in this section. We know that there are twenty five million forwarding entries and that there are one million nodes in in the final iteration of testing. Substituting these values into N od eCount and F orward in gEntr yCount yields the results of 858.306 MB

5.2. NETWORK INSTANTIATION MEMORY USAGE 95

Figure 5.5: Predicted Memory Usage Versus Actual Memory Usage of Routing Simulator Table 5.3: Node Count Growth of the Internet After ISC 2013

Date Node Count Node Growth Count

July 2008 570,937,778

-July 2009 681,064,561 110,126,783 July 2010 768,913,036 87,848,475 July 2011 849,869,781 80,956,745 July 2012 908,585,739 58,715,958 July 2013 996,230,757 87,645,018

of memory required. This value is just over 1 MB more than what is actually required by this routing simulator, and given the number of nodes and entries in consideration, this is an accurate estimation of the amount of memory required by this routing simulator.

Figure 5.5 shows the results of this formula against the results acquired for Figure 5.4.

Table 5.3 shows the number of nodes found annually in the Internet from July 2008 to July 2013 (Internet Systems Consortium, 2013). The average rate of growth over the past five node tallies from July 2008 show an average growth rate of 85,058,595.8 nodes a year. This is a fairly sound statistic as the growth from July 2008 to July 2009 fills in the lack of growth from July 2011 to July 2012.

With this average growth one can use the total memory requirement prediction formula

5.2. NETWORK INSTANTIATION MEMORY USAGE 96

Figure 5.6: Growth of Memory to Simulate the Internet versus Growth of Available Mem-ory

to project the memory needed in hardware to simulate the Internet at a given period of time. This combined with Moore’s Law (Moore, 1965) means that one can conjecture that available memory quadruples every three years. With the existing hardware available4, one currently has 1.5 terabytes of memory available to one’s self5.

Using the memory available for use with the predicted growth rate of memory using Moore’s Law, and assuming an average forwarding entry count of two hundred forward-ing entries per node, one can predict the amount of memory one will have available against the amount of memory required by a simulated network of size in the current year in consideration; this prediction is shown in Figure 5.6. First it is notable that when using these predictors to model the two growth rates against each other, they will in fact intersect. This means that in the future, we will have enough memory to fully simulate the Internet in a single host.

The second notable point is that the date when enough memory will be available is pre-dicted to be around end 2021. This kind of simulation will not be achievable on commodity hardware at this date, but the day on which this scale of simulation becomes available to

4As of mid 2013.

5http://ark.intel.com/products/61022/Intel-Server-Board-S4600LH2