Based on the information we developed in earlier chapters about our sample ISP customer FijiNet, we model capacity planning by performing the following tasks:
“Estimate Software Capacity for FijiNet” on page 167
“Estimate Server Capacity for FijiNet” on page 186
“Estimate Network Capacity for FijiNet” on page 187
For each component, we provide the customized formula we used to estimate capacity based on FijiNet’s requirements.
Before planning for servers and network components, we perform capacity planning for software.
Refer to the following sections:
“FijiNet Basic Services” on page 168
“FijiNet Infrastructure Services” on page 175
“FijiNet Operation and Management Services” on page 180
“FijiNet Operating Environment” on page 184
We estimate the capacity for basic services FijiNet plans to offer for their initial deployment: email, web, news, and FTP.
Refer to the following sections:
“FijiNet Email Service” on page 168
“FijiNet Web Service” on page 171
“FijiNet News Service” on page 172
“FijiNet FTP Service” on page 174
We determine the email storage and memory needed for FijiNet, as shown in TABLE 5-40 and TABLE 5-41.
Variable | Value | Description |
---|---|---|
T | 10,000 | Total number of subscribers |
Pact | 40% | Percentage of active email users |
Save | 25 KB | Average email message size |
Nrev | 20 | Average email messages received per user per day |
Smsa | T × Pact × Save × Nrev | Average storage for active email users |
Smsp | 20% × Smsa | Average storage for email queue |
Smsm | 5 MB | Maximum email storage quota per subscriber |
Smsq | 20% × Smsm | Maximum storage for email queue |
Smss | 8 MB | Storage requirement for email software (sendmail, POP3, and IMAP4) and various plug-ins |
Sms(proxy)= Smss = 8MB
Sms(relay)= Smsp + Smss = 405MB Sms(mailstore)= Smsa + Smsp + Smss ≈ 2.4GB Sms(maximum)= (T × Smsm) + Smsq + Smss ≈ 60GB |
Variable | Value | Description |
---|---|---|
T | 10,000 | Total number of subscribers |
Pcon | 12.5% | Percentage of concurrency |
Pact | 40% | Percentage of active mail users |
Ppop | 90% | Percentage of POP users |
Pima | 10% | Percentage of IMAP users |
Mmsi | 1 MB | Memory footprint per IMAP connection |
Mmsp | 200 KB | Memory footprint per POP connection |
Mmst | 300 KB | Memory footprint per SMTP connection |
Mmsb | 1 MB | Memory requirement for email server |
Mmp= T × Pcon
× Pact × Ppop × Mmsp = 90MB
Mmi= T × Pcon × Pact × Pima × Mmsi = 50MB Mmt= T × Pcon × Pact × Mmst = 150MB Mms(proxy)= Mmp + Mmi + Mmsb = 141MB Mms(relay)= Mmt + Mmsb = 151MB Mms(mailstore)= Mmp + Mmi + Mmt + Mmsb ≈ 291MB |
We determine the web storage and memory needed for FijiNet, as shown in TABLE 5-42 and TABLE 5-43.
With 5 Mbytes quota per subscriber for web storage, we calculate that the maximum storage required is 60 Gbytes. However, planning for this amount is not realistic, nor it is economical. We recommend that storage planning be based on active users who have web pages. For FijiNet, we use an ISP average usage for the percentage of active users with web pages, and the average web storage per user.
Variable | Value | Description |
---|---|---|
T | 10,000 | Total number of subscribers |
Pact | 25% | Percentage of active users with web pages |
Save | 500 KB | Average web storage size per user |
Swsa | T × Pact × Save | Average storage for active users with web pages |
Swsd | 20% × Swsa | Average storage for web cache |
Swsw | 5 MB | Maximum web storage quota per subscriber |
Swsc | 20% (T × Swsw) | Maximum storage for web cache |
Swss | 6 MB | Storage requirement for web software and various plug-ins |
Sws(average)= Swsa + Swsd + Swss ≈ 1.5GB Sws(maximum)= (T × Swsw) + Swsc + Swss ≈ 60GB |
For FijiNet, the peak number of HTTP connections is assumed to be equal to the number of concurrent users (12.5 percent), which is 1,250 HTTP operations per second. Also, our memory calculation for FijiNet is based on our plan to use an Apache web server.
Note
Resident memory is the sum of private memory and shared memory. All web processes share the same shared memory segment. Additional web processes forked require private memory; however, they do not require additional shared memory.
Variable | Value | Description |
---|---|---|
T | 10,000 | Total number of subscribers |
Pcon | 12.5% | Percentage of concurrency |
Nweb | 1 | Number of web servers |
Npar | 1 | Number of parent process |
Npro | 5 | Number of child processes (fork/exec model) |
Ncon | T × Pcon | Peak number of HTTP connections |
Mwsc | 10 KB | Memory footprint per HTTP connection |
Mwss | 2 MB | Memory footprint per child process (fork/exec model) |
Mwm(fork)= (Nweb × (Npar+Npro) × Mwss) + (Ncon × Mwsc) = 24.5MB |
We determine the news storage and memory needed for FijiNet, as shown in TABLE 5-44 and TABLE 5-45. We base the calculation on one day of storage for news articles.
Note
If FijiNet wants to store news for more than one day, we would need to calculate the delta (rate of changes between expired and new articles) so that additional storage could be planned.
For FijiNet, there will be no downstream feeds, and there is only one upstream feed to FijiNet from a UseNet provider.
Memory footprint for news connection is similar to IMAP connection, where only message headers are downloaded. Message content is not downloaded unless specifically requested. Thus, we assume that approximately 1 Mbyte of memory is required per news connection. While this assumption might not be accurate, depending on the news server being used and the environment in question, it is sufficient for an initial estimate.
Variable | Value | Description |
---|---|---|
Snsa | 300 GB (as of May 2001) | Storage requirement for daily news articles for a full feed |
Snsh | 10% × Snsa | Storage requirement for news spooler, history, and index |
Snss | 25 MB | Storage requirement for news software |
Sns= Snsa+ Snsh+ Snss ≈ 330GB |
Variable | Value | Description |
---|---|---|
T | 10,000 | Total number of subscribers |
Pcon | 12.5% | Percentage of concurrency |
Pact | 10% | Percentage of active news users |
Mnss | 1 MB | Memory footprint per news server |
Nnco | T × Pcon × Pact | Peak number of news connection |
Mnco | 1 MB | Memory footprint per news connection |
Mnm= Mnss + (Nnco × Mnco) = 126MB |
We determine the FTP storage and memory needed for FijiNet, as shown in TABLE 5-46 and TABLE 5-47.
For FTP spool, there is no fixed amount that must be set. The amount depends upon an ISP’s environment. For FijiNet, we allocate approximately 15 percent of the average web storage (250 Mbytes) for FTP spool area. Depending on the environment, the FTP spool can be allocated to whatever amount is appropriate.
Variable | Value | Description |
---|---|---|
Sfss | 2 MB | Storage requirement for WU-FTP software |
Sfsu | 250 MB | Storage requirement for FTP spooler |
Sfs= Sfss + Sfsu ≈ 252MB |
We estimate each FTP process to be approximately 400 Kbytes. A new process is spawned for every FTP session. While FTP service must be made available for content uploads, the service usage is minor compared to other basic services. For FijiNet, we assume that 10 concurrent FTP sessions are sufficient. This number can be set to an amount appropriate to the environment.
Variable | Value | Description |
---|---|---|
Mftp | 400 KB | Memory footprint per FTP process |
Nftp | 10 | Number of concurrent FTP connections |
Mfs= Mftp × Nftp = 4MB |
We estimate the capacity needed for infrastructure services: DNS, RADIUS, LDAP, DHCP, and NTP.
Refer to the following sections:
“FijiNet DNS Service” on page 175
“FijiNet RADIUS Service” on page 176
“FijiNet LDAP Service” on page 177
“FijiNet DHCP Service” on page 178
“FijiNet NTP Service” on page 179
We determine the DNS storage and memory needed for FijiNet, as shown in TABLE 5-48 and TABLE 5-49.
Variable | Value | Description |
---|---|---|
Sdns | 29 MB | Storage requirement for BIND/DNS software |
Sdnd | 1 MB | Storage requirement for BIND/DNS zone databases |
Sdn= Sdns + Sdnd = 30MB |
Variable | Value | Description |
---|---|---|
Mdns | 3 MB | Memory requirement for BIND v9 server |
Mzon | 1 KB | Memory requirement for BIND v9 server |
Mdn= Mdns + Mzon ≈ 3MB |
We determine the RADIUS storage and memory needed for FijiNet, as shown in TABLE 5-50 and TABLE 5-51.
On average, a RADIUS local database entry is approximately 1 Kbyte. Thus, the overall storage for RADIUS local database is negligible for FijiNet.
If a local database is maintained for RADIUS for authentication, approximately 10 Mbytes of storage is required for 10,000 users in addition to storage required for software.
For FijiNet, authentication is done by the directory server. Therefore, storage for RADIUS database is not required. However, some storage might be needed for the local database of system administration accounts. Note that storage for a local database of system administration accounts is negligible.
We estimate approximately 250 Mbytes for RADIUS logs initially. We recommend that FijiNet monitor RADIUS logs to determine the actual level of utilization.
Variable | Value | Description |
---|---|---|
T | 10,000 | Total number of subscribers |
Srse | 1 KB | Average size for a RADIUS database entry |
Srsd | T × Srse | Storage requirement for RADIUS database |
Srss | 105 MB | Storage requirement for Steel-Belted RADIUS/SPE software |
Srsl | 250 MB | Storage requirement for RADIUS log |
Srs = Srsd + Srss + Srsl = 365MB= |
RADIUS does not utilize much memory; however, we advise that you adhere to the amount of memory recommended by a vendor. RADIUS does require storage for logs. How much storage is needed depends on how long logs are kept and the level of logging performed.
Based on a recommendation from Funk Software™, we estimate that 64 Mbytes of RAM is needed for RADIUS.
Variable | Value | Description |
---|---|---|
Mrss | 64 MB | Memory requirement for RADIUS server |
Mrs ≈ 64MB |
We determine the directory storage and memory needed for FijiNet, as shown in TABLE 5-52 and TABLE 5-53.
Our memory estimate is based on the number of LDAP data interchange format (LDIF) entries in the database.
Variable | Value | Description |
---|---|---|
T | 10,000 | Total number of subscribers |
Sdse | 10 KB | Average size for a directory database entry |
Sdsd | T × Sdse | Storage requirement for directory database |
Sdss | 2 GB | Storage requirement for directory software |
Sds= Sdsd + Sdss = 2.1GB |
In general, memory calculation is based on the number of entries in the LDAP database. The following memory calculation for FijiNet is based on iPlanet recommendations.
For 10,000 to 250,000 entries, use 2 Gbytes of disk and 256 Mbytes of RAM.
For 250,000 to 1,000,000 entries, use 4 Gbytes of disk and 512 Mbytes of RAM.
For 1,000,000+ entries, use 8 Gbytes of disk and 1 Gbyte of RAM.
Roughly 256 Mbytes of RAM is required for FijiNet, so we plan 256 Mbytes to 1 Gbyte of RAM for best performance on their production system.
Variable | Value | Description |
---|---|---|
T | 10,000 | Total number of subscribers |
Mdss | 256 MB | Memory requirement for directory server |
Mds= Mdss ≈ 256MB |
For more information on LDAP, refer to Solaris and LDAP Naming Services - Deploying LDAP in the Enterprise, Tom Bialaski and Michael Haines, Sun Microsystems, Inc., 2001.
We determine the DHCP storage and memory needed for FijiNet, as shown in TABLE 5-54 and TABLE 5-55. On average, each DHCP entry in the database is approximately 1 Kbyte. On average, memory footprint for each DHCP lease is approximately 256 bytes.
Variable | Value | Description |
---|---|---|
T | 10,000 | Total number of subscribers |
Sdhe | 1 KB | Average size for a DHCP database entry |
Sdhd | T × Sdhe | Storage requirement for DHCP database |
Sdhs | 1 MB | Storage requirement for DHCP software |
Sdh= Sdhd + Sdhs ≈ 10MB |
Variable | Value | Description |
---|---|---|
T | 10,000 | Total number of subscribers |
Pcon | 12.5% | Percentage of concurrency |
Ndhc | T × Pcon | Peak number of DHCP connections |
Mdhl | 220 bytes | Memory footprint per DHCP lease |
Mdhd | Ndhc × Mdhl | Memory requirement for DHCP leases |
Mdhs | 736 KB | Memory requirement for DHCP server |
Mdh= Mdhd+ Mdhs ≈ 1MB |
We determine the NTP storage and memory needed for FijiNet, as shown in TABLE 5-56 and TABLE 5-57.
There is no memory sizing available for NTP. The resident memory (sum of shared and private memory) is approximately 2128 Kbytes. The shared memory is 1272 Kbytes, and the private memory is 856 Kbytes. This memory estimate is based on NTP server running on Solaris 8 Operating Environment (Solaris 8 OE).
Variable | Value | Description |
---|---|---|
Snts | 2 MB | Storage requirement for NTP software |
Sns= Snts ≈ 2MB |
Variable | Value | Description |
---|---|---|
Mnts | 2128 KB | Memory footprint for NTP server |
Mns= Mnts≈ 2MB |
We estimate the capacity needed for operation and management services for backing up data, providing security via firewalls, and logging.
Refer to the following sections:
“FijiNet Backup Service” on page 181
“FijiNet Firewall Service” on page 182
“FijiNet Log Service” on page 183
Note
Operation and management services are beyond the scope of this book. Many resources are available, such as OSS Essential: Support System Solutions for Service Providers, Kornel Terplan, John Wiley and Sons, Inc., 2001.
We determine the backup storage and memory needed for FijiNet, as shown in TABLE 5-58 and TABLE 5-59.
For FijiNet, we estimate 1 Gbyte storage total for Solstice Backup software and indexes, with a 6 to 12 month browsing policy.
For memory, we estimate that approximately 256 Mbytes of RAM is required for backup software.
Variable | Value | Description |
---|---|---|
Sbsi | 900 MB | Storage requirement for indexes |
Sbss | 75 MB | Storage requirement for backup software |
Sbs= Sbsi + Sbss≈ 1GB |
Variable | Value | Description |
---|---|---|
Mbsd | 256 MB | Memory requirement for backup server |
Mbs= Mbsd = 256MB |
We determine the firewall storage and memory needed for FijiNet, as shown in TABLE 5-60 and TABLE 5-61.
We estimate 1 Gbyte is needed for firewall log storage. The size of the firewall log depends on the type of logging and how much log is generated. We recommend that FijiNet monitor the storage for firewall and adjust it accordingly.
Variable | Value | Description |
---|---|---|
Sfws | 0 MB | Storage requirement for firewall software, objects, and policy |
Sfwl | 1 GB | Storage requirement for firewall logs |
Sfw= Sfws + Sfwl ≈ 1GB |
Variable | Value | Description |
---|---|---|
Mfws | 12 MB | Memory requirement for firewall |
Mfw= Mfws = 128MB |
We determine the log storage and memory needed for FijiNet, as shown in TABLE 5-62 and TABLE 5-63.
For FijiNet, we estimate that approximately 250 Mbytes is required for spooling daily logs, and 750 Mbytes for archiving logs for 12 months. Logs older than 12 months are rotated and recycled.We recommend that storage for log archive be monitored and storage adjusted, where applicable.
The amount of storage required depends on the number of systems logged, how much logging is generated by each system, type of logs (normal or debug), and how long logs are kept.
Variable | Value | Description |
---|---|---|
Slss | 250 MB | Storage requirement for log spooler |
Slsa | 1 GB | Storage requirement for log archive |
Sls= Nlss × Slsa ≈ 1,25GB |
Variable | Value | Description |
---|---|---|
Mlss | 32 MB | Memory requirement for log server |
Mls= Mlss ≈ 32MB |
We model the capacity planning for the file system layout for system disk, file system layout for data, and system disk storage. Refer to the following sections:
“FijiNet Storage” on page 184
“FijiNet Filesystem Layout for System Disk” on page 185
“FijiNet Filesystem Layout for Data” on page 186
We determine the capacity for the operating environment (OE), swap space, log archive, and applications, as shown in TABLE 5-64.
Our calculation shows that a system disk with a capacity of 6 Gbytes or more is required. For FijiNet, a 9-Gbyte disk (10,000 RPM) is sufficient for all system disks.
Variable | Value | Description |
---|---|---|
Soss | 2.4 GB | Storage requirement for OE |
Sswp | At least 2 × RAM | Storage requirement for swap space |
Sosl | 2 GB | Storage requirement for log archive |
Sapp | 1 GB | Storage requirement for native and thirdparty applications |
Sos= Soss + Sswp + Sosl + Sapp ≈ 6GB |
We plan the file system layout for the system disk, as shown in TABLE 5-65.
Partition | Filesystem | Description |
---|---|---|
0 | / | Root partition |
1 | swap | Swap partition |
2 | Reserved (entire disk) | |
3 to 7 | (empty) | Available for future use |
For every system, we partition the system disk into two partitions: root and swap. We could partition /usr, /var, /export, and /opt as individual file systems. However, for better storage management and utilization, we use a single root file system and collapse everything under root. This approach has no negative impact on performance.
Note
If we want to use VxVM, we must reserve partitions 3 and 4 for public and private regions for VxVM database, to encapsulate the system disk. In addition, two cylinders must be reserved at the end of the disk. Most likely, we will use Solstice DiskSuite™ logical volume management, because it is part of Solaris 8 Operating Environment.
For system availability, we use two internal disks. For consistency and ease of administration, we use disks of the same size/type. One disk is the system disk and the other is a spare disk. For consistency, we partition both disks exactly the same. To better utilize the spare disk, we can configure the system to take advantage of the swap partition on the spare disk. Thus, the primary swap partition resides on the system disk and the secondary swap partition is on the spare disk.
We plan the file system layout for the system disk, as shown in TABLE 5-66.
Variable | Value | Description |
---|---|---|
/data | See capacity planning section | Data (MailStores, web contents, news articles, etc.) |
It is important to separate data from the system disk, so that FijiNet can export and import data, for example, in case of system failure. Depending on FijiNet’s system and its purpose, /data file system can be created for data such as MailStore, web content, news articles, etc. For front-end systems such as web servers, no data resides on the system. Front-end servers only handle incoming transactions and interface with user requests. We can place /data on back-end servers on the content network.
We recommend that FijiNet configure /data file system with a logical volume, for example, Solstice DiskSuite, so that disk space can grow automatically. We would also configure RAID 0+1 (redundant array of independent disks, stripping and mirroring) to provide data protection against disk failure.
After formulating the software capacity planning, we determine what kind of servers are appropriate for FijiNet, as shown in TABLE 5-67.
Type | Size | Specification |
---|---|---|
Front-end server | Small | Uniprocessor (1 CPU, < 1 GB RAM) |
Back-end server | Medium | Multiprocessor (< 4 CPU, < 4 GB RAM) |
We estimate capacity planning for FijiNet’s infrastructure so that there is enough bandwidth to support local traffic loads, and that enough modems and high-speed trunks are available for Internet connectivity and dial-up access.
Refer to the following sections:
“FijiNet Bandwidth” on page 187
“FijiNet Modems and High-Speed Trunks” on page 188
“FijiNet Network Components” on page 190
Using industry figures and FijiNet’s requirements, we determine the ports needed for bandwidth, as shown in TABLE 5-68.
Variable | Value | Description |
---|---|---|
T | 10,000 | Total number of subscribers |
Pcon | 12.5% | Percentage of concurrent users |
Busr | 2 Kbps | Average network bandwidth consumption per user |
Bthe |
10 Mbps (10BaseT)
100 Mbps (100BaseT or FE) 1000 Mbps (1000BaseT or GE) | Theoretical network bandwidth |
Bsat | 40% × Bthe | Network bandwidth saturation point |
Bove | 10% × Bthe | Network bandwidth overhead |
B(100BaseT)= (T × Pcon × Busr) + Bove = 12.5Mbps |
Using FijiNet’s projected subscriber base, we estimate the total number of modems to support concurrent users. From the modem calculation, we then estimate the number of high-speed trunks needed.
Refer to the following sections:
“FijiNet Modems” on page 188
“FijiNet High-Speed Trunks” on page 188
We estimate that 1,250 modems are required initially for FijiNet’s architecture, as shown in TABLE 5-69.
Variable | Value | Description |
---|---|---|
T | 10,000 | Total number of subscribers |
Pcon | 12.5% | Percentage of concurrent users |
NM= T × Pcon = 1250 |
This result is from the assumption of 1:8 modem-to-user ratio.
We determine the links needed for Internet connectivity and dial-up access, as shown in TABLE 5-70 and TABLE 5-71.
We estimate that 1.62xT1 is required for FijiNet’s Internet connectivity. Thus, two T1 interfaces are required. Only a single 10/100 Mbit/sec is required for LAN connection to the firewall. We recommend that FijiNet plan for two LAN ports, so that redundant routers and switches can be added later to provide higher availability. (The additional LAN port is necessary to facilitate redundant connections.)
Variable | Value | Description |
---|---|---|
T | 10,000 | Total number of subscribers |
Pcon | 12.5% | Percentage of concurrent users |
Busr | 2 Kbps | Average bandwidth consumption per user |
L | T1=1.544 Mbps T3=44.736 Mbps | Bandwidth supported per high-speed trunk |
|
Variable | Value | Estimation |
---|---|---|
T | 10,000 | Total number of subscribers |
Pcon | 12.5% | Percentage of concurrent users |
C | 24 channels per T1 672 channels per CT3 | Number of channels supported per high-speed trunk |
|
Based on the FijiNet network design diagram in FIGURE 5-6, we identify the network components needed for FijiNet’s architecture. For each component, we decide whether to use a router or switch. Next, we estimate the port capacity for routers, switches, and consoles.
Refer to the following sections:
“FijiNet Routers” on page 190
“FijiNet Switches” on page 191
“FijiNet Console Servers” on page 192
We determine the ports needed for routers, as shown in TABLE 5-72. We need two WAN interfaces for FijiNet. Each interface will be connected to a T1 high-speed trunk, so that 1,250 concurrent users are supported (based upon the estimates for link connectivity in TABLE 5-70).
Only one 10/100 Mbit/sec port is needed for FijiNet; however, two ports are required for redundancy to achieve high availability as the architecture scales to support projected growth of 100,000 subscribers.
Variable | Value | Description |
---|---|---|
Nwan | 2 (T1) | Number of WAN interface slots (T1, E1, etc.) |
Nlan | 2 (10/100 Mbps) | Number of fixed LAN ports (10/100 Mbps) |
PR= Nwan + Nlan = 4 |
For FijiNet, a minimum of 8 network ports is required. In addition, we are planning for 50 percent overhead for immediate growth. Thus, a total of 12 ports is needed (see TABLE 5-73), and an L2 switch for FijiNet’s initial environment. As FijiNet grows toward 100,000 subscribers, multiple switches can be cascaded to aggregate a higher port density.
Variable | Value | Description |
---|---|---|
Nser | 1 enterprise server 1 management server | Number of servers connected to the switch (mail relays, mail proxies, web servers, application servers, DNS servers, etc.) |
Napl |
3 firewall interfaces
2 access servers 1 console server | Number of network appliances connected to the switch (firewalls, load balancers, cache engines, IDS sensors, console servers, access servers, etc.) |
Nadm | 0 | Number of network ports required for administrative purposes (trunking, heartbeats, failover, uplink, etc.) |
Nove | 4 (50% overhead) | Number of network ports required for immediate growth |
PS= Nser + Napl + Nadm + Nove = 12 |
For FijiNet, we need a console server with a minimum of 7 ports to support network devices and servers. With the addition of overhead for immediate growth, a total of 10 ports is required, as shown in TABLE 5-74.
Variable | Value | Description |
---|---|---|
Nser | 1 enterprise server 1 management server | Number of servers connected to the console server (mail relays, mail proxies, web servers, application servers, DNS servers, etc.) |
Napl |
1 firewall
2 access servers 1 router 1 switch | Number of network appliances connected to the console server (firewalls, load balancers, cache engines, IDS sensors, access servers, routers, switches, etc.) |
Nove | 3 (50%) | Number of console ports required for immediate growth |
PS= Nser + Napl + Nove = 10 |
18.117.168.57