8. Server Performance¶
Introduction¶
- 25% of customers will abandon a website if it takes more than 4 seconds to load. 1
- 40% of people abandon a shopping website that takes more than 3 seconds to load. 1
- +1 second in page load cost Amazon $1.6 billion in sales in one year. 1
- +0.4 seconds delay in search results would cost Google 8 million searches every day, which means 8 million Add losses a day. 1
- The performance of online systems depends on the network bandwidth, operating server health, database optimization, and application code. 2
- At times it is difficult to identify the cause of a slowdown. It may take a collaboration of network engineers, DBAs, and programmers to do so 2.
- It is important to monitor online applications through synthetic transactions, as well as real application monitoring 2.
- Synthetic transactions are artificial requests made from another server to simulate user access. These transactions can be measured and monitored. They do not represent true monitoring because they are often performed on a server network and without browser-related issues.
DNS 3¶
- Domain Name System (DNS). It is a distributed internet system that translates domain names into IP addresses.
- DNS is the first link in the customer’s supply chain.
- DNS servers respond in less than 30 milliseconds.
- Secondary DNS servers work as backups to ensure availability and reliability if the primary DNS server fails.
- DNS use cases and benefits:
- Intelligent traffic routing. DNS traffic management allows intelligent traffic routing to the closest server to the user using: Geolocation steering, Load balancing, ASN steering, and IP-prefix steering.
- High availability. Geographically distributed DNS servers ensure high availability. With data servers put in separate locations, powered by separate power grids, data connections redundantly deployed to multiple ISPs, and the use of secondary DNS servers. All of these ensure high availability.
- Easy to use APIs. DNS APIs allow you to manage your DNS records programmatically. This allows you to automate your DNS management and integrate it with your existing systems.
- DNS Zone. It is a portion of the DNS namespace that has its own Start of Authority (SOA) record. It is a container for DNS records including subdomains, and resource records [ref].
Public DNS Resource Record Types¶
- Local hostname: defines a local node name in a network. aka. subdomain.
my
.uopeople.edu - Domain name: defines a domain name. aka. root domain. eg.
uopeople.edu
- Host Name: local hostname + domain name. eg.
my.uopeople.edu
Record | Name | Description | RCF |
---|---|---|---|
A | IPv4 Address Record | points a hostname to an IPv4 address. Exposes one exact node to the world. | RFC 1035 |
AAAA | IPv6 Address Record | points a hostname to an IPv6 address. | RFC 3596 |
CNAME | Canonical Name Record | points a hostname to another hostname. eg. www.abc.com to abc.com . |
RFC 1035 |
MX | Mail Exchanger Record | points to a hostname of the mail server accepting mail for a domain. cannot point to IP or CNAME. | RFC 1035 |
NS | Name Server Record | points to a hostname of the DNS Name server that owns the domain. cannot point to IP or CNAME. | RFC 1035 |
TXT | Text Record | contains arbitrary text for special use cases. | RFC 1035 |
- The full list of Public DNS Resource Record Types can be found here: https://docs.oracle.com/en-us/iaas/Content/DNS/Reference/supporteddnsresource.htm
Real User Monitoring 4¶
- Real-Time Monitoring (RUM) - Web monitoring that aims to capture and analyze every transaction of every user of your website or application. It’s a form of passive monitoring, relying on Web-monitoring services that continuously observe your system in action, tracking availability, functionality, and responsiveness.
- Bottom-up RUM - RUM that starts from the server (backend). While Top-down RUM starts from the client (frontend).
- Synthetic User Monitoring (SUM) - is the opposite of RUM; which involves mimicking user behavior by creating synthetic transactions; and monitoring the performance of the application from the outside. It is a form of active monitoring.
- JS snippets can be placed on the browser to monitor events. These key events may include, among other things:
- DNS resolution, TCP connect time, SSL encryption negotiation, first-byte transmission, navigation display, page render time, TCP out-of-order segments, and user think-time.
- Some RUM systems collect additional info, as well, such as network provider, OS, browser version, user location, application version, mobile device specs, connection type (e.g., wi-fi, 4G, LTE, EDGE, etc.), network latency, and available end-to-end bandwidth.
- General criteria for application performance management:
- Capture. The monitoring system captures page and object hits from several sources—JavaScript on a browser, a passive network tap, a load balancer, or a server and its log files.
- Sessionization. The captured events are timely grouped into sessions.
- Problem Detection. Look for anomalies in the captured data.
- Individual Visit Reporting. Replay the captured data to reconstruct the user’s experience.
- Reporting and Segmentation. aggregate the data and present it in a way that is useful to the business.
- Alerting. The system should be able to alert the appropriate people when a problem is detected.
- SUM focuses on availability and performance. RUM focuses on functionality.
- The healthy combination of SUM and RUM is 25% internal ops and network monitoring, 25% SUM, and 50% RUM.
Common Web Application Problems 5¶
- DNS-related issues - Incorrect DNS records or slow DNS queries. DNS monitoring can help you detect these issues.
- Slow servers and response time - Shared servers where other tenants are using too many resources.
- Poorly written code - Memory leaks, deadlocks, and other issues.
- Lack of load balancing - Tools like
NeoLoad, AppPerfect
can help you test your application under load. - Traffic spikes - Use
NeoSense
. - Using more bandwidth than you have - Use
NeoSense
.
Synthetic Transaction Monitoring 6¶
- Also known as Synthetic User Monitoring (SUM).
- Synthetic Transaction Monitoring - is the opposite of RUM; an active approach to create synthetic transactions (traffic) and monitor and predict the performance of the application from the outside.
- STM helps in specific situations:
- Stress testing a new App before launching on the market.
- Fixing and detecting performance issues before they affect your customers.
- Measuring the performance of third-party services and APIs that you depend on.
References¶
-
FastCompany (2012). How One Second Could Cost Amazon $1.6 Billion In Sales. https://www.fastcompany.com/1825005/how-one-second-could-cost-amazon-16-billion-sales ↩↩↩↩
-
UoPeople. (2020). CS3305: Web 2.0. Week 8. Introduction https://my.uopeople.edu/mod/book/view.php?id=329048&chapterid=386512 ↩↩↩
-
Rapoza, J. (2017, August 30). Can businesses manage & avoid Internet performance issues to boost their enterprise systems? Oracle DYN. Retrieved from https://dyn.com/blog/can-businesses-manage-and-avoid-internet-performance-issues-to-boost-their-enterprise-systems/ ↩
-
Huston, Ti. (n.d.). What is real-user monitoring? Smartbear. Retrieved from https://smartbear.com/learn/performance-monitoring/what-is-real-user-monitoring/ ↩
-
Julien, J. (2018, April 26). Web application performance: 7 common problems and how to solve them. Stackify. Retrieved from https://stackify.com/web-application-problems/ ↩
-
Gasparyan, A. (2017, August 11). What is synthetic transaction monitoring (and who needs it)? Monitis. Retrieved from https://dzone.com/articles/what-is-synthetic-transaction-monitoring-and-who-n ↩