Skip to content

ONE/Northwest

Sections
New tools and strategies for engaging people in protecting the environment
You are here: Home Articles, Ideas and Advice Salesforce Bandwidth Notes

Salesforce Bandwidth Notes

Important information about the bandwidth usage of Salesforce.

 

Bandwidth Required for Users

Salesforce.com is designed to use as little bandwidth as possible so that the site performs adequately over both high speed, dial-up, and over the air Internet connections.

  • While average page size is on the order of 90KB, salesforce.com uses compression as defined in the HTTP 1.1 standard to compress the HTML content before it is transmitted as data across the Internet to a user's computer. The compression often reduces the amount of transmitted data to as little as 10KB per page viewed due to the lack of image content. The site was designed with minimum bandwidth requirements in mind, hence are extensive use of color coding instead of images. Our average user also is known to view roughly 120 pages from our site per day.
  • Our application is stateless, therefore, there are no communication requirements in the background once the page loads like traditional client server applications e.g. Outlook. Therefore once the page loads there are no additional bandwidth requirements till a user queries or writes information to salesforce.com.
  • In practice we have found the bandwidth requirements for other commonly used programs place a much higher demand on Internet bandwidth. We have found through working with our customers that email (business & personal), email attachments, News, streaming video, stock update, place a much greater strain on the available bandwidth. We recommend the customer measure all activities to make sure they are evaluating a holistic demand on their network services. For example, is the Account Executive sending a 7MB marketing brochure or PowerPoint presentation to a customer.
  • The application of the formula "Peak bandwidth/number of users = average bandwidth per user" does not accurately portray the average bandwidth usage by the average user at salesforce.com. Salesforce.com handles considerably more transactions per second in aggregate from all our customers than any one individual customer would see from their end (since not all users would be actively loading pages simultaneously).

In short, it is difficult to specify customer bandwidth because of the nature of the Internet and individual corporate usage. Network latency, peering issues, bandwidth at upstream providers, users using their Internet connections for other use besides salesforce.com, etc. all affect the perceived performance of the connection and the amount of bandwidth required to keep performance adequate.

However we have had some success in understanding customer's requirements by considering the number of users, the think time between transactions and the average response time.

Bandwidth = P * U / ( T + R)

P = Average page size in Kilobits as opposed to kilobytes - This conversion is necessary as bandwidth is measured in bits and not bytes (8 bites to a byte). The average salesforce.com page size when compressed is typically in the range 10 Kilobytes - 20 Kilobytes or 80 kilobits - 160 kilobits. The midpoint is 120 Kilobits.
U = Number of logged on users, assume a concurrent logged in rate of 50 - 75% of user community.
T = User think time between transactions in seconds, typically figures here range from 10 seconds - 40 seconds in call center/service environments to 120 seconds - 300 seconds in sales environments
R = Average response time in seconds, use an average of 1 - 2 seconds per page refresh

For example:
Salesforce.com deployment of 80 users with 75% of the users concurrently logged in with a think time between transactions of 2 minutes:
Avg Bandwidth = 120 * 60 / ( 120 + 2 ) = 59 Kbits/sec

In a sales environment an active user would typically conduct around 15 - 20 transactions per hour.

HTTP 1.0 versus HTTP 1.1
Typical web pages (a HyperText Markup Language (HTML) document), contain many embedded objects - today twenty or more embedded objects are quite common. The large number of embedded objects represents a change from the environment in which the Web transfer protocol, the Hypertext Transfer Protocol (HTTP) was originally designed.

As a result, HTTP/1.0 handles multiple requests from the same server inefficiently, creating a separate TCP connection for each object. Each of these is an independent object and retrieved (or validated for change) separately. The common behavior for a web client, therefore, is to fetch the base HTML document, and then immediately fetch the embedded objects, which are typically located on the same server.
The recently released HTTP/1.1 standard was designed to address this problem by encouraging multiple transfers of objects over one connection.

HTTP/1.0 opens and closes a new TCP connection for each operation. Since most Web objects are small, this practice means a high fraction of packets are simply TCP control packets used to open and close a connection. Furthermore, when a TCP connection is first opened, TCP employs an algorithm known as slow start. Slow start uses the first several data packets to probe the network to determine the optimal transmission rate. Again, because Web objects are small, most objects are transferred before their TCP connection completes the slow start algorithm. In other words, most HTTP/1.0 operations use TCP at its least efficient. The results have been major problems due to resulting congestion and unnecessary overhead.

HTTP/1.1 leaves the TCP connection open between consecutive operations. This technique is called "persistent connections," which both avoids the costs of multiple opens and closes and reduces the impact of slow start. Persistent connections are more efficient than the current HTTP 1.0 practice of running multiple short TCP connections in parallel. NOTE: These persistent connections are only open for the duration of the page load � they do not remain open in the background.

HTTP/1.1 also enables transport compression of data types so those clients can retrieve HTML (or other) uncompressed documents using data compression; HTTP/1.0 does not have sufficient facilities for transport compression.

The following study showed that aggressive use of additional compression could save almost 40% of the bytes sent via HTTP:

Jeffrey C. Mogul, Fred Douglis, Anja Feldmann, and Balachander Krishnamurthy.
Potential benefits of delta encoding and data compression for HTTP.
In Proc. SIGCOMM '97 Conference, pages 181-194, Cannes, France, September 1997. ACM SIGCOMM.


Therefore we recommend at all times our customers use browsers that adhere to the HTTP 1.1 standard as it creates a number of efficiencies while using our service.

Relevant Solutions:
Use HTTP 1.1 through proxy connections:
https://na1.salesforce.com/501300000000grZ

Document Actions
powered by Plone | site by ONE/Northwest and served with clean energy