SlideShare a Scribd company logo
Server-side performance bottleneck
Webinar with Paulo Garrudo
Effective Platform Server Monitoring
Paulo Garrudo
Architecture Team Leader
Expert Services
paulo.garrudo@outsystems.com
https://www.linkedin.com/in/paulogarrudo
2
Server-side Performance bottlenecks
Agenda
● Performance Overview
● OutSystems Platform Logs
● Tools
● Performance CSI Live Demo
● TOP 10 Worst Practices
● Application Delivery Cycle
● Q&A
Performance overview
Server-side Performance bottlenecks
Web application Performance
What is
●Application is consider performant if consistently responds fast and
efficiently
●On web application, users expects a page to load under 2 seconds
●Measures the elapsed time between the beginning of a web request and
the end of the response
Server-side Performance bottlenecks
Web application Performance
Why is hard to achieve
●Developers have difficulty understanding why an application is slow
●It’s difficult to troubleshoot over web layers:
device → network → application server → database
●On server-side, it’s difficult to drill-down over a slow page
This webinar is going to focus on the Server-side performance
Server-side Performance bottlenecks
Web Request
Simple overview
●Request sent (network)
●Server-side
●Content download (network)
●Client side
Server-side Performance bottlenecks
Client side and network performance
Existing webinar
• Details for client side and network
OutSystems Platform Logs
Server-side Performance bottlenecks
How to measure
Use logs to measure elapsed times
●OutSystems Platform collects a set of logs out of the box
– By default, individual logs are kept for 4 weeks: configurable using the configuration tool
– For each eSpace / Extension, log setting must be enabled
●OutSystems Platform aggregates the collected logs
●On complex application actions, add you own audit actions to capture
server-side execution time
Server-side Performance bottlenecks
How to measure
OutSystems Platform monitoring
●General Logs
– Application specific logging
– System logs
– Slow queries: queries that take more than 200ms (configurable)
●ViewState size
●Session size
●Timer Logs: each executed Scheduled Job
●Integrations Log: each Web Service / Web Reference invocation
Server-side Performance bottlenecks
How to measure
OutSystems Platform monitoring
●Screens Log: each Screen access (regardless if Submit or Ajax)
●Extensions Log: keeps track of Extension actions execution
●Processes Log
– Monitors process execution
– Allows to drill down into each activity duration
●Emails Log: Includes an entry for each Email sent or received.
– Doesn’t measure execution time but it could be useful to check the size of the emails
Tools
Server-side Performance bottlenecks
Performance Monitor
● Platform built-in
● Captures End User Performance
● Allows to monitor history trends
Server-side Performance bottlenecks
Performance Monitor
● End User Experience = Client + Network + Server
Server-side Performance bottlenecks
Performance Monitor
● Client - time consumed for most used operating systems and browsers
Server-side Performance bottlenecks
Performance Monitor
● Network - time consumed for network connections and data carriers
Server-side Performance bottlenecks
Performance Monitor
● Server - slow database queries and slow integration response
Server-side Performance bottlenecks
Service Center
● Platform built-in
● Allows to check individual logs
● Useful to monitor specific execution times over one element
● During development, allows to evaluate optimizations in real time
● Information on ViewState and Session size is not available
● No easy use, lacks dashboards
Server-side Performance bottlenecks
Performance CSI
Forge component
• Lets you check the performance of your applications, and investigate the behavior of slow
screens to find the causes of poor performance
Server-side Performance bottlenecks
Performance CSI
Farm load and performance distribution
Server-side Performance bottlenecks
Performance CSI
Top screens evaluation
Weekly slow screen list:
● Number of hits (screen & ajax)
● Average Duration (screen & ajax)
● Total time = Hits * Avg. Duration
Allows to
● filter by application
● Sort screen by the metrics more
important for your application
● Drill-down to screen details
Very Slow > 6s
Slow ]4 to 6] s
Acceptable ]2 to 4] s
Fast [1 to 2] s
Very fast < 1s
Server-side Performance bottlenecks
Performance CSI
Top screens evaluation: Configuration
Configurable to:
● Ignore fast screens, to reduce the scope of the analysis to your performance target
● Ignore outliers: screens that take more than X seconds, so you can focus on the more usual
execution times
Server-side Performance bottlenecks
Performance CSI
Drill-down to screen performance
Server-side Performance bottlenecks
Performance CSI
Screen performance: dashboard
● Keep Session below 10 KB
● Keep ViewState below 5KB, to prevent client side latency
Server-side Performance bottlenecks
Performance CSI
Screen performance: aggregated metrics collapsed
Aggregated metrics by log type:
● Slow SQL
● Extension
● Web Reference
● User Defined Log Type (audit action ModuleName)
● Other: remaining execution time that cannot be aggregated
Server-side Performance bottlenecks
Screen performance: aggregated metrics expanded
Performance CSI
Server-side Performance bottlenecks
Performance CSI
Screen performance: Log View
Server-side Performance bottlenecks
Performance CSI
Tip: your own logs on performance CSI
Performance CSI automatically aggregates OutSystems Platform logs. If you use the
following pattern, your audit logs will also be aggregated:
● Use Ticks extension to measure the execution time
● Use the Audit action available on the system components
● Write audit message in the format: “.. took” + ExecTimeMS + “ms”
● Write execution time in ms, rounded to 0
● Use meaningful ModuleName, so it appears aggregated as a Log Type
Performance CSI adds the prefix User- when displaying user logs
Server-side Performance bottlenecks
Performance CSI
Tip: your logs on performance CSI
Server-side Performance bottlenecks
Performance CSI
TOP 10 Worst Practices
Server-side Performance bottlenecks
Top 10 Worst Practices
1.Fetching more records than required
2.Inappropriate record counting
3.High reuse of queries/actions with same inputs
4.Inefficient data preparation
5.Abuse of inline parameters in advanced queries
6.Inefficient query filtering & sort
7.Abuse of scope data
8.Session Variables using large data types
9. Massive string transformations
10.One-shot load of heavy screens
Server-side Performance bottlenecks
#1 Fetching more records than required
Symptom
●Slow query with no top/maxrow treatment
Cause
●Unnecessary CPU and IO consumptions on the Database
Server-side Performance bottlenecks
#1 Fetching more records than required
Solution with Aggregates:
●Set the Max. records parameter of the aggregate to the required usage
●If required, the <query>.count will hold the total count of records, without
the Max. records limitation
In this example, Max. Records should be set to 1,
since only the first row is ever used.
Server-side Performance bottlenecks
#1 Fetching more records than required
Solution with Advanced Queries
1. Limit the number of Rows according to required usage
1. If total count is required, adapt a 2nd query from the 1st
SELECT column_names
FROM table_joins
WHERE conditions
ORDER BY order
SELECT * FROM (
SELECT column_names
FROM table_joins
WHERE conditions
ORDER BY order
) WHERE ROWNUM <= @maxrows
Oracle
SQL Server
SELECT TOP @maxrows column_names
FROM table_joins
WHERE conditions
ORDER BY order
Server-side Performance bottlenecks
#2 Inappropriate record counting
Symptom
●Slow <Query>.count
Cause
●Query used to fetch data is inefficient for performing a count
Solution
●Implement a simplified query that performs the count without fetching and
joining with unnecessary data
●Avoid execution of the query that collects the number of records
●Avoid testing <Query>.Count = 0 instead, use <Query>.List.Empty
Server-side Performance bottlenecks
#2 Inappropriate record counting
Adapt a 2nd query from the original one
SELECT column_names
FROM table_joins
WHERE conditions
ORDER BY order_by_list
SELECT Count(1)
FROM Simplified_table_joins
WHERE conditions
1. Replace all the column
names by Count(1)
2. Remove any join that is not restricting
the number of rows and not contributing
for the conditions
3. Remove ORDER BY clause
Server-side Performance bottlenecks
Example
#2 Inappropriate record counting
Lots of data fetching and computation,
not required for counting
Server-side Performance bottlenecks
Example (cont)
#2 Inappropriate record counting
Most of this joins are only
necessary to access data
irrelevant for the counting
Server-side Performance bottlenecks
#3 High reuse of queries/actions with same inputs
Symptom
●High number of hits on same query/action
Cause
●Lack of caching (or bad logic flow)
Solution
●Cache the query or action for the minimum amount of time that will
value the memory used
! Always validate with business before add cache to your elements
Server-side Performance bottlenecks
#3 High reuse of queries/actions with same inputs
Examples
Multiple calls with same inputs:
● During the day
→ cache for 24h
● In the scope of a user session
→ cache for 1h (or the average session duration)
● During the rendering of Web Block
→ cache for 1 minute
Server-side Performance bottlenecks
Example #1
#3 High reuse of queries/actions with same inputs
Executed 15K times per day, in 0.7s per
execution, with the same inputs and retrieving
the same result, per Country in the same day
Caching for 60 minutes, would reduce
to a maximum of 24*Nr of countries
executions per day
Server-side Performance bottlenecks
Example #2
Repeated operations inside the same screen
#3 High reuse of queries/actions with same inputs
Web block executed several times in same screen, causing
repeated calls to actions and queries with same inputs
Cache those calls inside the web block for a couple of minutes
to ensure that data is reused in same screen
Server-side Performance bottlenecks
#3 High reuse of queries/actions with same inputs
Example #3
Cache for about 20 minutes to reduce the number of
slow hits given the contextual repetition of inputs
during that period
Reused in several
Web Blocks
Server-side Performance bottlenecks
#3 High reuse of queries/actions with same inputs
Example #3
CacheVersion
20
Add a dummy input to change the
signature every time it’s necessary to
invalidate the cached value
●Invalidate your Query/Action/Web Block cache with the use of a dummy
input to change the signature
Server-side Performance bottlenecks
#4 Inefficient data preparation
Symptom
●Too many query calls
Cause
●Queries called inside foreach in the preparation
●Queries in expressions inside table records
Server-side Performance bottlenecks
Solutions
●Use proper joins and SQL functions
to gather all required data in a single query
●Make decisions in the preparation to get data with different queries
instead of making decisions on the screen to call different expressions with different queries
●Create different specialized screens
instead of a power screen with inefficient data preparation that needs to cope with all situation
#4 Inefficient data preparation
Server-side Performance bottlenecks
#4 Inefficient data preparation
Example Same conditions evaluated per column, and according to the result a
similar query is repeated individually per cell
Solution #1
Make the decision in the preparation to perform a different specialized query, joining with the
required tables and returning the same Output structure.
Solution #2:
Implement 2 specialized screens and make the decision to call the correct screen
Server-side Performance bottlenecks
#5 Abuse of inline parameters in advanced queries
Symptom
●Slow query with inline parameters
Cause
– Inline parameters with values that change too often generate too many
different queries in runtime, preventing DB optimization of the
execution plan and increasing SQL Server plan cache size
Server-side Performance bottlenecks
#5 Abuse of inline parameters in advanced queries
Solution
●Create specialized queries for the most used cases and make a decision on
which one to use, storing the result in a local variable
instead of injecting filtering or join clauses dynamically
●Don’t inject the result of a query in another one – create a complex query
instead
although more difficult to implement, it pays off performance wise
● Use advanced database database techniques, such as Materialized Views
(Oracle), indexed views (Sql Server), Global Temporary Tables (Oracle)
Ask your DBA for how to implement these
Server-side Performance bottlenecks
#5 Abuse of inline parameters in advanced queries
Example
In this example, GetInConditionsCounters computes two IN conditions that are injected in query
GetCounters to avoid complex sub-queries inside GetCounters
Although more complex to code, in terms of efficiency it is better to implement the sub-queries
and let the DB Engine optimize the entire query
Server-side Performance bottlenecks
#5 Abuse of inline parameters in advanced queries
This common pattern always results in performance issues once data
volume increases
where [Id] in @IdList
Solution
● Create a temporary table (using a WITH clause) with the list of id’s
WITH IdsTable as ( select … )
● Change the query to
where [Id] in (select id from IdsTable)
● Another advantage is not having to build the comma separated list
Inline parameter with comma separated Ids
Server-side Performance bottlenecks
#5 Abuse of inline parameters in advanced queries
Solution example
Upfront query to generate temporary
table myuserIDS
Sub-queries use the temporary table
Server-side Performance bottlenecks
#6 Inefficient Query Filtering & Sort
Symptom
●Slow query with filters and/or sort
Cause
●Casting of input parameters inside the query
●Filters with LIKE over text
●No indexes on the columns filtered or ordered
●Missing database maintenance plans
Server-side Performance bottlenecks
#6 Inefficient Query Filtering & Sort
Solution: Optimize filters
●Avoid filters like WHERE name like '%Paul%'
●Make the casts outside the query, on the input expressions
–Casting of the input parameters inside the query causes conversion to
be done for every tuple tested
Server-side Performance bottlenecks
#6 Inefficient Query Filtering & Sort
Solution: Index your entities
●Improves the performance of select (slight overhead in insert and update)
●Creating simple index for the most used entity attribute.
●Create compound indexes even if there is simple indexes on the same
fields – balance benefits between insertions and retrieval
●Indexes that you may consider adding:
– equality_columns: used in queries involving equality (ex: Id = 1 or Id != 1)
– included_columns: columns that should be included in the index (keeps a copy of the data at an
intermediate level of the index)
• Indexes with INCLUDE keyword are not supported in Service Studio… but can be created in the DB
Server-side Performance bottlenecks
#6 Inefficient Query Filtering & Sort
Solution: Involve the resident DBA
●Database maintenance plan
– Periodically run index reorganization and statistics update
● Monitor existing indexes
– Unused indexes also impact performance negatively
– Costly used indexes: indexes hurting insert/update operations
Server-side Performance bottlenecks
#7 Abuse of scope data
Symptom
●Ajax requests become slower and page load keeps degenerating
Cause
●Any reference to preparation data requires data to be stored in the
viewstate, increasing IO in Screen actions
Solution
●Reload queries, re-execute actions, use screen action input parameters
Server-side Performance bottlenecks
Think viewstate
●Avoid using preparation data in screen actions:
– Increases network traffic between the server and the browser
#7 Abuse of scope data
Server-side Performance bottlenecks
#8 Session Variables using large data types
Symptom
●Increased contention on Session loading, with the number of concurrent
users
Cause
●Each web request loads session context which takes longer with large data
types, causing contention in the session data model with the increase of
concurrent users.
This is even more important when you use AJAX as it will increase the number of requests.
Server-side Performance bottlenecks
#8 Session Variables using large data types
Solution
●Store session information in database tables with the SessionId as the
primary key
Instead of fetching all session information in every request, only required data is fetched
Server-side Performance bottlenecks
Symptom
● Massive string transformation takes too long
Cause
● Processing logic using the standard string operations
#9 Massive string transformations
Server-side Performance bottlenecks
Solution
● Use the String Builder actions from Text Extension
Eg. Processing time reduced from 8 minutes to 30 seconds when serializing a list to a file (~9MB of
data)
#9 Massive string transformations
Server-side Performance bottlenecks
#10 One-shot load of heavy screens
Symptom
●First byte takes to long, lack of responsiveness, no partial information
Cause
●Power pages with too much content blocks, each requiring heavy data
retrieval and calculations
Solution
●Adopt a lazy load strategy
Server-side Performance bottlenecks
Check Lazy Load component in OutSystems Forge
Page structure is
quickly displayed…
… while heavy content
is progressively loaded
Screen preparation is faster because data preparation is made in each Web Block
Use caching mechanisms when repeating the same action/query on different Web Blocks
#10 One-shot load of heavy screens
Application Delivery Cycle
Server-side Performance bottlenecks
How do I ensure my application is performant?
During development
●Follow OutSystems best practices one
https://success.outsystems.com/Support/Enterprise_Customers/Maintenance_and_Operations/Performance_Best_Practices
●Discuss complex business requirement within the team and define which
patterns should be applied
●Recurrently review the code
●Monitor the application
– Look for slow queries, slow screens
Server-side Performance bottlenecks
How do I ensure my application is performant?
During solution release
●Load & Stress tests
After Go-Live
●Proactively monitor your application
●Pay attention to performance decrease over time
– React before it becomes a big issue

More Related Content

What's hot

BPM Patterns & Best Practices with OutSystems BPT
BPM Patterns & Best Practices with OutSystems BPTBPM Patterns & Best Practices with OutSystems BPT
BPM Patterns & Best Practices with OutSystems BPT
Gonçalo Borrêga
 
OutSystems Tricks & Tips for Complex UI Integrations
OutSystems Tricks & Tips for Complex UI IntegrationsOutSystems Tricks & Tips for Complex UI Integrations
OutSystems Tricks & Tips for Complex UI Integrations
OutSystems
 
Unattended OutSystems Installation
Unattended OutSystems InstallationUnattended OutSystems Installation
Unattended OutSystems Installation
OutSystems
 
Using Processes and Timers for Long-Running Asynchronous Tasks
Using Processes and Timers for Long-Running Asynchronous TasksUsing Processes and Timers for Long-Running Asynchronous Tasks
Using Processes and Timers for Long-Running Asynchronous Tasks
OutSystems
 
CSS workshop @ OutSystems
CSS workshop @ OutSystemsCSS workshop @ OutSystems
CSS workshop @ OutSystems
Ruben Goncalves
 
Application Lifetime Management
Application Lifetime ManagementApplication Lifetime Management
Application Lifetime Management
OutSystems Technical Knowledge
 
OutSystems User Groups - Introduction to OutSystems Architecture (Pune - 7 A...
 OutSystems User Groups - Introduction to OutSystems Architecture (Pune - 7 A... OutSystems User Groups - Introduction to OutSystems Architecture (Pune - 7 A...
OutSystems User Groups - Introduction to OutSystems Architecture (Pune - 7 A...
OutSystemsNeo
 
Reactive Web Best Practices
Reactive Web Best PracticesReactive Web Best Practices
Reactive Web Best Practices
OutSystems
 
OutSystems Webinar - Building a Live Style Guide
OutSystems Webinar - Building a Live Style GuideOutSystems Webinar - Building a Live Style Guide
OutSystems Webinar - Building a Live Style Guide
Daniel Reis
 
Top front-end techniques for OutSystems
Top front-end techniques for OutSystemsTop front-end techniques for OutSystems
Top front-end techniques for OutSystems
Ruben Goncalves
 
Multi tenancy - a practical approach
Multi tenancy - a practical approachMulti tenancy - a practical approach
Multi tenancy - a practical approach
CatarinaPereira64715
 
Service Actions
Service ActionsService Actions
Service Actions
OutSystems
 
Hardcore CSS Made Easy
Hardcore CSS Made EasyHardcore CSS Made Easy
Hardcore CSS Made Easy
José Rosário
 
What Is Light BPT and How Can You Use it for Parallel Processing?
What Is Light BPT and How Can You Use it for Parallel Processing?What Is Light BPT and How Can You Use it for Parallel Processing?
What Is Light BPT and How Can You Use it for Parallel Processing?
OutSystems
 
Growing and Scaling OutSystems
Growing and Scaling OutSystemsGrowing and Scaling OutSystems
Growing and Scaling OutSystems
OutSystems
 
Integrate OutSystems With Office 365
Integrate OutSystems With Office 365Integrate OutSystems With Office 365
Integrate OutSystems With Office 365
OutSystems
 
OutSystems Lessons: Center of Excellence and Adoption Strategies
OutSystems Lessons: Center of Excellence and Adoption StrategiesOutSystems Lessons: Center of Excellence and Adoption Strategies
OutSystems Lessons: Center of Excellence and Adoption Strategies
OutSystems
 
0 to 60 With Outsystems
0 to 60 With Outsystems0 to 60 With Outsystems
0 to 60 With Outsystems
OutSystems
 
Advanced Bootstrapping and Integrations - Chennai OutSystems User Group 27th ...
Advanced Bootstrapping and Integrations - Chennai OutSystems User Group 27th ...Advanced Bootstrapping and Integrations - Chennai OutSystems User Group 27th ...
Advanced Bootstrapping and Integrations - Chennai OutSystems User Group 27th ...
OutSystemsNeo
 
Building a Case Management Application
Building a Case Management ApplicationBuilding a Case Management Application
Building a Case Management Application
OutSystems
 

What's hot (20)

BPM Patterns & Best Practices with OutSystems BPT
BPM Patterns & Best Practices with OutSystems BPTBPM Patterns & Best Practices with OutSystems BPT
BPM Patterns & Best Practices with OutSystems BPT
 
OutSystems Tricks & Tips for Complex UI Integrations
OutSystems Tricks & Tips for Complex UI IntegrationsOutSystems Tricks & Tips for Complex UI Integrations
OutSystems Tricks & Tips for Complex UI Integrations
 
Unattended OutSystems Installation
Unattended OutSystems InstallationUnattended OutSystems Installation
Unattended OutSystems Installation
 
Using Processes and Timers for Long-Running Asynchronous Tasks
Using Processes and Timers for Long-Running Asynchronous TasksUsing Processes and Timers for Long-Running Asynchronous Tasks
Using Processes and Timers for Long-Running Asynchronous Tasks
 
CSS workshop @ OutSystems
CSS workshop @ OutSystemsCSS workshop @ OutSystems
CSS workshop @ OutSystems
 
Application Lifetime Management
Application Lifetime ManagementApplication Lifetime Management
Application Lifetime Management
 
OutSystems User Groups - Introduction to OutSystems Architecture (Pune - 7 A...
 OutSystems User Groups - Introduction to OutSystems Architecture (Pune - 7 A... OutSystems User Groups - Introduction to OutSystems Architecture (Pune - 7 A...
OutSystems User Groups - Introduction to OutSystems Architecture (Pune - 7 A...
 
Reactive Web Best Practices
Reactive Web Best PracticesReactive Web Best Practices
Reactive Web Best Practices
 
OutSystems Webinar - Building a Live Style Guide
OutSystems Webinar - Building a Live Style GuideOutSystems Webinar - Building a Live Style Guide
OutSystems Webinar - Building a Live Style Guide
 
Top front-end techniques for OutSystems
Top front-end techniques for OutSystemsTop front-end techniques for OutSystems
Top front-end techniques for OutSystems
 
Multi tenancy - a practical approach
Multi tenancy - a practical approachMulti tenancy - a practical approach
Multi tenancy - a practical approach
 
Service Actions
Service ActionsService Actions
Service Actions
 
Hardcore CSS Made Easy
Hardcore CSS Made EasyHardcore CSS Made Easy
Hardcore CSS Made Easy
 
What Is Light BPT and How Can You Use it for Parallel Processing?
What Is Light BPT and How Can You Use it for Parallel Processing?What Is Light BPT and How Can You Use it for Parallel Processing?
What Is Light BPT and How Can You Use it for Parallel Processing?
 
Growing and Scaling OutSystems
Growing and Scaling OutSystemsGrowing and Scaling OutSystems
Growing and Scaling OutSystems
 
Integrate OutSystems With Office 365
Integrate OutSystems With Office 365Integrate OutSystems With Office 365
Integrate OutSystems With Office 365
 
OutSystems Lessons: Center of Excellence and Adoption Strategies
OutSystems Lessons: Center of Excellence and Adoption StrategiesOutSystems Lessons: Center of Excellence and Adoption Strategies
OutSystems Lessons: Center of Excellence and Adoption Strategies
 
0 to 60 With Outsystems
0 to 60 With Outsystems0 to 60 With Outsystems
0 to 60 With Outsystems
 
Advanced Bootstrapping and Integrations - Chennai OutSystems User Group 27th ...
Advanced Bootstrapping and Integrations - Chennai OutSystems User Group 27th ...Advanced Bootstrapping and Integrations - Chennai OutSystems User Group 27th ...
Advanced Bootstrapping and Integrations - Chennai OutSystems User Group 27th ...
 
Building a Case Management Application
Building a Case Management ApplicationBuilding a Case Management Application
Building a Case Management Application
 

Viewers also liked

Training Webinar: Effective Platform Server Monitoring
Training Webinar: Effective Platform Server MonitoringTraining Webinar: Effective Platform Server Monitoring
Training Webinar: Effective Platform Server Monitoring
OutSystems
 
Top 5 usability mistakes development teams make - OutSystems
Top 5 usability mistakes development teams make - OutSystemsTop 5 usability mistakes development teams make - OutSystems
Top 5 usability mistakes development teams make - OutSystems
Gonçalo Veiga
 
Training Webinar: Fitting OutSystems applications into Enterprise Architecture
Training Webinar: Fitting OutSystems applications into Enterprise ArchitectureTraining Webinar: Fitting OutSystems applications into Enterprise Architecture
Training Webinar: Fitting OutSystems applications into Enterprise Architecture
OutSystems
 
Technical Webinar: By the (Play) Book: The Agile Practice at OutSystems
Technical Webinar: By the (Play) Book: The Agile Practice at OutSystemsTechnical Webinar: By the (Play) Book: The Agile Practice at OutSystems
Technical Webinar: By the (Play) Book: The Agile Practice at OutSystems
OutSystems
 
Monitoring Server Temperature with Opsview
Monitoring Server Temperature with OpsviewMonitoring Server Temperature with Opsview
Monitoring Server Temperature with Opsview
Opsview
 
Ekran System Forensic Monitoring Tool -BusinesstoVirtual Italy Partner
Ekran System Forensic Monitoring Tool -BusinesstoVirtual Italy Partner Ekran System Forensic Monitoring Tool -BusinesstoVirtual Italy Partner
Ekran System Forensic Monitoring Tool -BusinesstoVirtual Italy Partner
BusinesstoVirtual
 
Control your deployments with Capistrano
Control your deployments with CapistranoControl your deployments with Capistrano
Control your deployments with Capistrano
Ramazan K
 
Connecting Field Operations and the Corporate Office - FME Server as a Near R...
Connecting Field Operations and the Corporate Office - FME Server as a Near R...Connecting Field Operations and the Corporate Office - FME Server as a Near R...
Connecting Field Operations and the Corporate Office - FME Server as a Near R...
Safe Software
 
Training Webinar: Enterprise application performance with distributed caching
Training Webinar: Enterprise application performance with distributed cachingTraining Webinar: Enterprise application performance with distributed caching
Training Webinar: Enterprise application performance with distributed caching
OutSystems
 
SeeTestAutomation - Mobile Test Automation Tool by Experitest
SeeTestAutomation - Mobile Test Automation Tool by ExperitestSeeTestAutomation - Mobile Test Automation Tool by Experitest
SeeTestAutomation - Mobile Test Automation Tool by Experitest
Experitest
 
Sync or swim: the challenge of complex offline apps
Sync or swim:  the challenge of complex offline appsSync or swim:  the challenge of complex offline apps
Sync or swim: the challenge of complex offline apps
OutSystems
 
Training Webinars - Secret hacks for OutSystems 10
Training Webinars - Secret hacks for OutSystems 10Training Webinars - Secret hacks for OutSystems 10
Training Webinars - Secret hacks for OutSystems 10
OutSystems
 
Training Webinar: Cover your bases - a security webinar
Training Webinar: Cover your bases - a security webinarTraining Webinar: Cover your bases - a security webinar
Training Webinar: Cover your bases - a security webinar
OutSystems
 

Viewers also liked (13)

Training Webinar: Effective Platform Server Monitoring
Training Webinar: Effective Platform Server MonitoringTraining Webinar: Effective Platform Server Monitoring
Training Webinar: Effective Platform Server Monitoring
 
Top 5 usability mistakes development teams make - OutSystems
Top 5 usability mistakes development teams make - OutSystemsTop 5 usability mistakes development teams make - OutSystems
Top 5 usability mistakes development teams make - OutSystems
 
Training Webinar: Fitting OutSystems applications into Enterprise Architecture
Training Webinar: Fitting OutSystems applications into Enterprise ArchitectureTraining Webinar: Fitting OutSystems applications into Enterprise Architecture
Training Webinar: Fitting OutSystems applications into Enterprise Architecture
 
Technical Webinar: By the (Play) Book: The Agile Practice at OutSystems
Technical Webinar: By the (Play) Book: The Agile Practice at OutSystemsTechnical Webinar: By the (Play) Book: The Agile Practice at OutSystems
Technical Webinar: By the (Play) Book: The Agile Practice at OutSystems
 
Monitoring Server Temperature with Opsview
Monitoring Server Temperature with OpsviewMonitoring Server Temperature with Opsview
Monitoring Server Temperature with Opsview
 
Ekran System Forensic Monitoring Tool -BusinesstoVirtual Italy Partner
Ekran System Forensic Monitoring Tool -BusinesstoVirtual Italy Partner Ekran System Forensic Monitoring Tool -BusinesstoVirtual Italy Partner
Ekran System Forensic Monitoring Tool -BusinesstoVirtual Italy Partner
 
Control your deployments with Capistrano
Control your deployments with CapistranoControl your deployments with Capistrano
Control your deployments with Capistrano
 
Connecting Field Operations and the Corporate Office - FME Server as a Near R...
Connecting Field Operations and the Corporate Office - FME Server as a Near R...Connecting Field Operations and the Corporate Office - FME Server as a Near R...
Connecting Field Operations and the Corporate Office - FME Server as a Near R...
 
Training Webinar: Enterprise application performance with distributed caching
Training Webinar: Enterprise application performance with distributed cachingTraining Webinar: Enterprise application performance with distributed caching
Training Webinar: Enterprise application performance with distributed caching
 
SeeTestAutomation - Mobile Test Automation Tool by Experitest
SeeTestAutomation - Mobile Test Automation Tool by ExperitestSeeTestAutomation - Mobile Test Automation Tool by Experitest
SeeTestAutomation - Mobile Test Automation Tool by Experitest
 
Sync or swim: the challenge of complex offline apps
Sync or swim:  the challenge of complex offline appsSync or swim:  the challenge of complex offline apps
Sync or swim: the challenge of complex offline apps
 
Training Webinars - Secret hacks for OutSystems 10
Training Webinars - Secret hacks for OutSystems 10Training Webinars - Secret hacks for OutSystems 10
Training Webinars - Secret hacks for OutSystems 10
 
Training Webinar: Cover your bases - a security webinar
Training Webinar: Cover your bases - a security webinarTraining Webinar: Cover your bases - a security webinar
Training Webinar: Cover your bases - a security webinar
 

Similar to Training Webinar: Detect Performance Bottlenecks of Applications

Application Performance Tuning Techniques
Application Performance Tuning TechniquesApplication Performance Tuning Techniques
Application Performance Tuning Techniques
Ram Nagesh
 
Adding Value in the Cloud with Performance Test
Adding Value in the Cloud with Performance TestAdding Value in the Cloud with Performance Test
Adding Value in the Cloud with Performance Test
Rodolfo Kohn
 
Early watch report
Early watch reportEarly watch report
Early watch reportcecileekove
 
Performance Testing
Performance TestingPerformance Testing
Performance Testing
Anu Shaji
 
Software Performance
Software Performance Software Performance
Software Performance
Prabhanshu Saraswat
 
improving the performance of Rails web Applications
improving the performance of Rails web Applicationsimproving the performance of Rails web Applications
improving the performance of Rails web Applications
John McCaffrey
 
ATAGTR2017 Batch Workload Modelling and Performance Optimization
ATAGTR2017 Batch Workload Modelling and Performance Optimization ATAGTR2017 Batch Workload Modelling and Performance Optimization
ATAGTR2017 Batch Workload Modelling and Performance Optimization
Agile Testing Alliance
 
Why is the application running so slowly?
Why is the application running so slowly?Why is the application running so slowly?
Why is the application running so slowly?
Michael Rosenblum
 
ADF Performance Monitor
ADF Performance MonitorADF Performance Monitor
Diesel load testing tool
Diesel load testing toolDiesel load testing tool
Diesel load testing tool
Syed Zaid Irshad
 
Why & how to optimize sql server for performance from design to query
Why & how to optimize sql server for performance from design to queryWhy & how to optimize sql server for performance from design to query
Why & how to optimize sql server for performance from design to queryAntonios Chatzipavlis
 
#OSSPARIS19 - How to improve database observability - CHARLES JUDITH, Criteo
#OSSPARIS19 - How to improve database observability - CHARLES JUDITH, Criteo#OSSPARIS19 - How to improve database observability - CHARLES JUDITH, Criteo
#OSSPARIS19 - How to improve database observability - CHARLES JUDITH, Criteo
Paris Open Source Summit
 
Performance monitoring - Adoniram Mishra, Rupesh Dubey, ThoughtWorks
Performance monitoring - Adoniram Mishra, Rupesh Dubey, ThoughtWorksPerformance monitoring - Adoniram Mishra, Rupesh Dubey, ThoughtWorks
Performance monitoring - Adoniram Mishra, Rupesh Dubey, ThoughtWorksThoughtworks
 
Geek Sync | Top Metrics to Monitor in Your MySQL Databases
Geek Sync | Top Metrics to Monitor in Your MySQL DatabasesGeek Sync | Top Metrics to Monitor in Your MySQL Databases
Geek Sync | Top Metrics to Monitor in Your MySQL Databases
IDERA Software
 
Bottlenecks exposed
Bottlenecks exposedBottlenecks exposed
Bottlenecks exposed
Vikas Singh
 
performancetestinganoverview-110206071921-phpapp02.pdf
performancetestinganoverview-110206071921-phpapp02.pdfperformancetestinganoverview-110206071921-phpapp02.pdf
performancetestinganoverview-110206071921-phpapp02.pdf
MAshok10
 
T3 Consortium's Performance Center of Excellence
T3 Consortium's Performance Center of ExcellenceT3 Consortium's Performance Center of Excellence
T3 Consortium's Performance Center of Excellence
veehikle
 
Mobile User Experience: Auto Drive through Performance Metrics
Mobile User Experience:Auto Drive through Performance MetricsMobile User Experience:Auto Drive through Performance Metrics
Mobile User Experience: Auto Drive through Performance Metrics
Andreas Grabner
 

Similar to Training Webinar: Detect Performance Bottlenecks of Applications (20)

Application Performance Tuning Techniques
Application Performance Tuning TechniquesApplication Performance Tuning Techniques
Application Performance Tuning Techniques
 
Adding Value in the Cloud with Performance Test
Adding Value in the Cloud with Performance TestAdding Value in the Cloud with Performance Test
Adding Value in the Cloud with Performance Test
 
Early watch report
Early watch reportEarly watch report
Early watch report
 
JMeter
JMeterJMeter
JMeter
 
Performance Testing
Performance TestingPerformance Testing
Performance Testing
 
Software Performance
Software Performance Software Performance
Software Performance
 
improving the performance of Rails web Applications
improving the performance of Rails web Applicationsimproving the performance of Rails web Applications
improving the performance of Rails web Applications
 
ATAGTR2017 Batch Workload Modelling and Performance Optimization
ATAGTR2017 Batch Workload Modelling and Performance Optimization ATAGTR2017 Batch Workload Modelling and Performance Optimization
ATAGTR2017 Batch Workload Modelling and Performance Optimization
 
Why is the application running so slowly?
Why is the application running so slowly?Why is the application running so slowly?
Why is the application running so slowly?
 
ADF Performance Monitor
ADF Performance MonitorADF Performance Monitor
ADF Performance Monitor
 
Diesel load testing tool
Diesel load testing toolDiesel load testing tool
Diesel load testing tool
 
Why & how to optimize sql server for performance from design to query
Why & how to optimize sql server for performance from design to queryWhy & how to optimize sql server for performance from design to query
Why & how to optimize sql server for performance from design to query
 
#OSSPARIS19 - How to improve database observability - CHARLES JUDITH, Criteo
#OSSPARIS19 - How to improve database observability - CHARLES JUDITH, Criteo#OSSPARIS19 - How to improve database observability - CHARLES JUDITH, Criteo
#OSSPARIS19 - How to improve database observability - CHARLES JUDITH, Criteo
 
Performance monitoring - Adoniram Mishra, Rupesh Dubey, ThoughtWorks
Performance monitoring - Adoniram Mishra, Rupesh Dubey, ThoughtWorksPerformance monitoring - Adoniram Mishra, Rupesh Dubey, ThoughtWorks
Performance monitoring - Adoniram Mishra, Rupesh Dubey, ThoughtWorks
 
Geek Sync | Top Metrics to Monitor in Your MySQL Databases
Geek Sync | Top Metrics to Monitor in Your MySQL DatabasesGeek Sync | Top Metrics to Monitor in Your MySQL Databases
Geek Sync | Top Metrics to Monitor in Your MySQL Databases
 
Bottlenecks exposed
Bottlenecks exposedBottlenecks exposed
Bottlenecks exposed
 
performancetestinganoverview-110206071921-phpapp02.pdf
performancetestinganoverview-110206071921-phpapp02.pdfperformancetestinganoverview-110206071921-phpapp02.pdf
performancetestinganoverview-110206071921-phpapp02.pdf
 
T3 Consortium's Performance Center of Excellence
T3 Consortium's Performance Center of ExcellenceT3 Consortium's Performance Center of Excellence
T3 Consortium's Performance Center of Excellence
 
Mobile User Experience: Auto Drive through Performance Metrics
Mobile User Experience:Auto Drive through Performance MetricsMobile User Experience:Auto Drive through Performance Metrics
Mobile User Experience: Auto Drive through Performance Metrics
 
Performance tuning in sql server
Performance tuning in sql serverPerformance tuning in sql server
Performance tuning in sql server
 

More from OutSystems

Innovating at the Speed of Business in the High-Bandwidth World of Digital Media
Innovating at the Speed of Business in the High-Bandwidth World of Digital MediaInnovating at the Speed of Business in the High-Bandwidth World of Digital Media
Innovating at the Speed of Business in the High-Bandwidth World of Digital Media
OutSystems
 
Beyond “Location”: Informing Real-Estate Decisions Through Innovative Technology
Beyond “Location”: Informing Real-Estate Decisions Through Innovative TechnologyBeyond “Location”: Informing Real-Estate Decisions Through Innovative Technology
Beyond “Location”: Informing Real-Estate Decisions Through Innovative Technology
OutSystems
 
Beyond Digital Transformation: A Mandate for Disruptive Innovation in the Age...
Beyond Digital Transformation: A Mandate for Disruptive Innovation in the Age...Beyond Digital Transformation: A Mandate for Disruptive Innovation in the Age...
Beyond Digital Transformation: A Mandate for Disruptive Innovation in the Age...
OutSystems
 
From Core Systems to Mobile Apps: Digital Transformation from the Inside-Out
From Core Systems to Mobile Apps: Digital Transformation from the Inside-OutFrom Core Systems to Mobile Apps: Digital Transformation from the Inside-Out
From Core Systems to Mobile Apps: Digital Transformation from the Inside-Out
OutSystems
 
Orchestrating the Art of the Impossible Using Low-Code to Automate Manual Wor...
Orchestrating the Art of the Impossible Using Low-Code to Automate Manual Wor...Orchestrating the Art of the Impossible Using Low-Code to Automate Manual Wor...
Orchestrating the Art of the Impossible Using Low-Code to Automate Manual Wor...
OutSystems
 
Fast and Furious: Modernizing Clinical Application
Fast and Furious: Modernizing Clinical ApplicationFast and Furious: Modernizing Clinical Application
Fast and Furious: Modernizing Clinical Application
OutSystems
 
Enrich Visually Google Map Information With Layers
Enrich Visually Google Map Information With LayersEnrich Visually Google Map Information With Layers
Enrich Visually Google Map Information With Layers
OutSystems
 
The 4-Layer Architecture in Practice
The 4-Layer Architecture in PracticeThe 4-Layer Architecture in Practice
The 4-Layer Architecture in Practice
OutSystems
 
Speed up Development by Turning Web Blocks Into First-Class Citizens
Speed up Development by Turning Web Blocks Into First-Class CitizensSpeed up Development by Turning Web Blocks Into First-Class Citizens
Speed up Development by Turning Web Blocks Into First-Class Citizens
OutSystems
 
Responsive Ui with Realtime Database
Responsive Ui with Realtime DatabaseResponsive Ui with Realtime Database
Responsive Ui with Realtime Database
OutSystems
 
RADS - Rapid Application Design Sprint
RADS - Rapid Application Design SprintRADS - Rapid Application Design Sprint
RADS - Rapid Application Design Sprint
OutSystems
 
Pragmatic Innovation
Pragmatic InnovationPragmatic Innovation
Pragmatic Innovation
OutSystems
 
Troubleshooting Dashboard Performance
Troubleshooting Dashboard PerformanceTroubleshooting Dashboard Performance
Troubleshooting Dashboard Performance
OutSystems
 
No API? No Problem! Let the Robot Do Your Work! Web Scraping and Automation W...
No API? No Problem! Let the Robot Do Your Work! Web Scraping and Automation W...No API? No Problem! Let the Robot Do Your Work! Web Scraping and Automation W...
No API? No Problem! Let the Robot Do Your Work! Web Scraping and Automation W...
OutSystems
 
Neo in Wonderland: Essential Tools for an Outsystems Architect
Neo in Wonderland: Essential Tools for an Outsystems ArchitectNeo in Wonderland: Essential Tools for an Outsystems Architect
Neo in Wonderland: Essential Tools for an Outsystems Architect
OutSystems
 
Measure Customer Experience of Your OutSystems Web and Mobile Applications
Measure Customer Experience of Your OutSystems Web and Mobile ApplicationsMeasure Customer Experience of Your OutSystems Web and Mobile Applications
Measure Customer Experience of Your OutSystems Web and Mobile Applications
OutSystems
 
Link Users to Your Specific Page in a Mobile App With Deeplinks
Link Users to Your Specific Page in a Mobile App With DeeplinksLink Users to Your Specific Page in a Mobile App With Deeplinks
Link Users to Your Specific Page in a Mobile App With Deeplinks
OutSystems
 
Launching a BPT Process on Entity Update
Launching a BPT Process on Entity UpdateLaunching a BPT Process on Entity Update
Launching a BPT Process on Entity Update
OutSystems
 
Testing With OutSystems
Testing With OutSystemsTesting With OutSystems
Testing With OutSystems
OutSystems
 
Setting up a Tech Innovation Lab in a Traditional Grocery Retail Environment
Setting up a Tech Innovation Lab in a Traditional Grocery Retail EnvironmentSetting up a Tech Innovation Lab in a Traditional Grocery Retail Environment
Setting up a Tech Innovation Lab in a Traditional Grocery Retail Environment
OutSystems
 

More from OutSystems (20)

Innovating at the Speed of Business in the High-Bandwidth World of Digital Media
Innovating at the Speed of Business in the High-Bandwidth World of Digital MediaInnovating at the Speed of Business in the High-Bandwidth World of Digital Media
Innovating at the Speed of Business in the High-Bandwidth World of Digital Media
 
Beyond “Location”: Informing Real-Estate Decisions Through Innovative Technology
Beyond “Location”: Informing Real-Estate Decisions Through Innovative TechnologyBeyond “Location”: Informing Real-Estate Decisions Through Innovative Technology
Beyond “Location”: Informing Real-Estate Decisions Through Innovative Technology
 
Beyond Digital Transformation: A Mandate for Disruptive Innovation in the Age...
Beyond Digital Transformation: A Mandate for Disruptive Innovation in the Age...Beyond Digital Transformation: A Mandate for Disruptive Innovation in the Age...
Beyond Digital Transformation: A Mandate for Disruptive Innovation in the Age...
 
From Core Systems to Mobile Apps: Digital Transformation from the Inside-Out
From Core Systems to Mobile Apps: Digital Transformation from the Inside-OutFrom Core Systems to Mobile Apps: Digital Transformation from the Inside-Out
From Core Systems to Mobile Apps: Digital Transformation from the Inside-Out
 
Orchestrating the Art of the Impossible Using Low-Code to Automate Manual Wor...
Orchestrating the Art of the Impossible Using Low-Code to Automate Manual Wor...Orchestrating the Art of the Impossible Using Low-Code to Automate Manual Wor...
Orchestrating the Art of the Impossible Using Low-Code to Automate Manual Wor...
 
Fast and Furious: Modernizing Clinical Application
Fast and Furious: Modernizing Clinical ApplicationFast and Furious: Modernizing Clinical Application
Fast and Furious: Modernizing Clinical Application
 
Enrich Visually Google Map Information With Layers
Enrich Visually Google Map Information With LayersEnrich Visually Google Map Information With Layers
Enrich Visually Google Map Information With Layers
 
The 4-Layer Architecture in Practice
The 4-Layer Architecture in PracticeThe 4-Layer Architecture in Practice
The 4-Layer Architecture in Practice
 
Speed up Development by Turning Web Blocks Into First-Class Citizens
Speed up Development by Turning Web Blocks Into First-Class CitizensSpeed up Development by Turning Web Blocks Into First-Class Citizens
Speed up Development by Turning Web Blocks Into First-Class Citizens
 
Responsive Ui with Realtime Database
Responsive Ui with Realtime DatabaseResponsive Ui with Realtime Database
Responsive Ui with Realtime Database
 
RADS - Rapid Application Design Sprint
RADS - Rapid Application Design SprintRADS - Rapid Application Design Sprint
RADS - Rapid Application Design Sprint
 
Pragmatic Innovation
Pragmatic InnovationPragmatic Innovation
Pragmatic Innovation
 
Troubleshooting Dashboard Performance
Troubleshooting Dashboard PerformanceTroubleshooting Dashboard Performance
Troubleshooting Dashboard Performance
 
No API? No Problem! Let the Robot Do Your Work! Web Scraping and Automation W...
No API? No Problem! Let the Robot Do Your Work! Web Scraping and Automation W...No API? No Problem! Let the Robot Do Your Work! Web Scraping and Automation W...
No API? No Problem! Let the Robot Do Your Work! Web Scraping and Automation W...
 
Neo in Wonderland: Essential Tools for an Outsystems Architect
Neo in Wonderland: Essential Tools for an Outsystems ArchitectNeo in Wonderland: Essential Tools for an Outsystems Architect
Neo in Wonderland: Essential Tools for an Outsystems Architect
 
Measure Customer Experience of Your OutSystems Web and Mobile Applications
Measure Customer Experience of Your OutSystems Web and Mobile ApplicationsMeasure Customer Experience of Your OutSystems Web and Mobile Applications
Measure Customer Experience of Your OutSystems Web and Mobile Applications
 
Link Users to Your Specific Page in a Mobile App With Deeplinks
Link Users to Your Specific Page in a Mobile App With DeeplinksLink Users to Your Specific Page in a Mobile App With Deeplinks
Link Users to Your Specific Page in a Mobile App With Deeplinks
 
Launching a BPT Process on Entity Update
Launching a BPT Process on Entity UpdateLaunching a BPT Process on Entity Update
Launching a BPT Process on Entity Update
 
Testing With OutSystems
Testing With OutSystemsTesting With OutSystems
Testing With OutSystems
 
Setting up a Tech Innovation Lab in a Traditional Grocery Retail Environment
Setting up a Tech Innovation Lab in a Traditional Grocery Retail EnvironmentSetting up a Tech Innovation Lab in a Traditional Grocery Retail Environment
Setting up a Tech Innovation Lab in a Traditional Grocery Retail Environment
 

Recently uploaded

A Comprehensive Look at Generative AI in Retail App Testing.pdf
A Comprehensive Look at Generative AI in Retail App Testing.pdfA Comprehensive Look at Generative AI in Retail App Testing.pdf
A Comprehensive Look at Generative AI in Retail App Testing.pdf
kalichargn70th171
 
Developing Distributed High-performance Computing Capabilities of an Open Sci...
Developing Distributed High-performance Computing Capabilities of an Open Sci...Developing Distributed High-performance Computing Capabilities of an Open Sci...
Developing Distributed High-performance Computing Capabilities of an Open Sci...
Globus
 
Visitor Management System in India- Vizman.app
Visitor Management System in India- Vizman.appVisitor Management System in India- Vizman.app
Visitor Management System in India- Vizman.app
NaapbooksPrivateLimi
 
TROUBLESHOOTING 9 TYPES OF OUTOFMEMORYERROR
TROUBLESHOOTING 9 TYPES OF OUTOFMEMORYERRORTROUBLESHOOTING 9 TYPES OF OUTOFMEMORYERROR
TROUBLESHOOTING 9 TYPES OF OUTOFMEMORYERROR
Tier1 app
 
How Recreation Management Software Can Streamline Your Operations.pptx
How Recreation Management Software Can Streamline Your Operations.pptxHow Recreation Management Software Can Streamline Your Operations.pptx
How Recreation Management Software Can Streamline Your Operations.pptx
wottaspaceseo
 
First Steps with Globus Compute Multi-User Endpoints
First Steps with Globus Compute Multi-User EndpointsFirst Steps with Globus Compute Multi-User Endpoints
First Steps with Globus Compute Multi-User Endpoints
Globus
 
Explore Modern SharePoint Templates for 2024
Explore Modern SharePoint Templates for 2024Explore Modern SharePoint Templates for 2024
Explore Modern SharePoint Templates for 2024
Sharepoint Designs
 
Multiple Your Crypto Portfolio with the Innovative Features of Advanced Crypt...
Multiple Your Crypto Portfolio with the Innovative Features of Advanced Crypt...Multiple Your Crypto Portfolio with the Innovative Features of Advanced Crypt...
Multiple Your Crypto Portfolio with the Innovative Features of Advanced Crypt...
Hivelance Technology
 
Large Language Models and the End of Programming
Large Language Models and the End of ProgrammingLarge Language Models and the End of Programming
Large Language Models and the End of Programming
Matt Welsh
 
Into the Box 2024 - Keynote Day 2 Slides.pdf
Into the Box 2024 - Keynote Day 2 Slides.pdfInto the Box 2024 - Keynote Day 2 Slides.pdf
Into the Box 2024 - Keynote Day 2 Slides.pdf
Ortus Solutions, Corp
 
GlobusWorld 2024 Opening Keynote session
GlobusWorld 2024 Opening Keynote sessionGlobusWorld 2024 Opening Keynote session
GlobusWorld 2024 Opening Keynote session
Globus
 
top nidhi software solution freedownload
top nidhi software solution freedownloadtop nidhi software solution freedownload
top nidhi software solution freedownload
vrstrong314
 
Software Testing Exam imp Ques Notes.pdf
Software Testing Exam imp Ques Notes.pdfSoftware Testing Exam imp Ques Notes.pdf
Software Testing Exam imp Ques Notes.pdf
MayankTawar1
 
Beyond Event Sourcing - Embracing CRUD for Wix Platform - Java.IL
Beyond Event Sourcing - Embracing CRUD for Wix Platform - Java.ILBeyond Event Sourcing - Embracing CRUD for Wix Platform - Java.IL
Beyond Event Sourcing - Embracing CRUD for Wix Platform - Java.IL
Natan Silnitsky
 
Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...
Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...
Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...
informapgpstrackings
 
2024 RoOUG Security model for the cloud.pptx
2024 RoOUG Security model for the cloud.pptx2024 RoOUG Security model for the cloud.pptx
2024 RoOUG Security model for the cloud.pptx
Georgi Kodinov
 
Webinar: Salesforce Document Management 2.0 - Smarter, Faster, Better
Webinar: Salesforce Document Management 2.0 - Smarter, Faster, BetterWebinar: Salesforce Document Management 2.0 - Smarter, Faster, Better
Webinar: Salesforce Document Management 2.0 - Smarter, Faster, Better
XfilesPro
 
Cyaniclab : Software Development Agency Portfolio.pdf
Cyaniclab : Software Development Agency Portfolio.pdfCyaniclab : Software Development Agency Portfolio.pdf
Cyaniclab : Software Development Agency Portfolio.pdf
Cyanic lab
 
Globus Compute Introduction - GlobusWorld 2024
Globus Compute Introduction - GlobusWorld 2024Globus Compute Introduction - GlobusWorld 2024
Globus Compute Introduction - GlobusWorld 2024
Globus
 
Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...
Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...
Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...
Globus
 

Recently uploaded (20)

A Comprehensive Look at Generative AI in Retail App Testing.pdf
A Comprehensive Look at Generative AI in Retail App Testing.pdfA Comprehensive Look at Generative AI in Retail App Testing.pdf
A Comprehensive Look at Generative AI in Retail App Testing.pdf
 
Developing Distributed High-performance Computing Capabilities of an Open Sci...
Developing Distributed High-performance Computing Capabilities of an Open Sci...Developing Distributed High-performance Computing Capabilities of an Open Sci...
Developing Distributed High-performance Computing Capabilities of an Open Sci...
 
Visitor Management System in India- Vizman.app
Visitor Management System in India- Vizman.appVisitor Management System in India- Vizman.app
Visitor Management System in India- Vizman.app
 
TROUBLESHOOTING 9 TYPES OF OUTOFMEMORYERROR
TROUBLESHOOTING 9 TYPES OF OUTOFMEMORYERRORTROUBLESHOOTING 9 TYPES OF OUTOFMEMORYERROR
TROUBLESHOOTING 9 TYPES OF OUTOFMEMORYERROR
 
How Recreation Management Software Can Streamline Your Operations.pptx
How Recreation Management Software Can Streamline Your Operations.pptxHow Recreation Management Software Can Streamline Your Operations.pptx
How Recreation Management Software Can Streamline Your Operations.pptx
 
First Steps with Globus Compute Multi-User Endpoints
First Steps with Globus Compute Multi-User EndpointsFirst Steps with Globus Compute Multi-User Endpoints
First Steps with Globus Compute Multi-User Endpoints
 
Explore Modern SharePoint Templates for 2024
Explore Modern SharePoint Templates for 2024Explore Modern SharePoint Templates for 2024
Explore Modern SharePoint Templates for 2024
 
Multiple Your Crypto Portfolio with the Innovative Features of Advanced Crypt...
Multiple Your Crypto Portfolio with the Innovative Features of Advanced Crypt...Multiple Your Crypto Portfolio with the Innovative Features of Advanced Crypt...
Multiple Your Crypto Portfolio with the Innovative Features of Advanced Crypt...
 
Large Language Models and the End of Programming
Large Language Models and the End of ProgrammingLarge Language Models and the End of Programming
Large Language Models and the End of Programming
 
Into the Box 2024 - Keynote Day 2 Slides.pdf
Into the Box 2024 - Keynote Day 2 Slides.pdfInto the Box 2024 - Keynote Day 2 Slides.pdf
Into the Box 2024 - Keynote Day 2 Slides.pdf
 
GlobusWorld 2024 Opening Keynote session
GlobusWorld 2024 Opening Keynote sessionGlobusWorld 2024 Opening Keynote session
GlobusWorld 2024 Opening Keynote session
 
top nidhi software solution freedownload
top nidhi software solution freedownloadtop nidhi software solution freedownload
top nidhi software solution freedownload
 
Software Testing Exam imp Ques Notes.pdf
Software Testing Exam imp Ques Notes.pdfSoftware Testing Exam imp Ques Notes.pdf
Software Testing Exam imp Ques Notes.pdf
 
Beyond Event Sourcing - Embracing CRUD for Wix Platform - Java.IL
Beyond Event Sourcing - Embracing CRUD for Wix Platform - Java.ILBeyond Event Sourcing - Embracing CRUD for Wix Platform - Java.IL
Beyond Event Sourcing - Embracing CRUD for Wix Platform - Java.IL
 
Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...
Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...
Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...
 
2024 RoOUG Security model for the cloud.pptx
2024 RoOUG Security model for the cloud.pptx2024 RoOUG Security model for the cloud.pptx
2024 RoOUG Security model for the cloud.pptx
 
Webinar: Salesforce Document Management 2.0 - Smarter, Faster, Better
Webinar: Salesforce Document Management 2.0 - Smarter, Faster, BetterWebinar: Salesforce Document Management 2.0 - Smarter, Faster, Better
Webinar: Salesforce Document Management 2.0 - Smarter, Faster, Better
 
Cyaniclab : Software Development Agency Portfolio.pdf
Cyaniclab : Software Development Agency Portfolio.pdfCyaniclab : Software Development Agency Portfolio.pdf
Cyaniclab : Software Development Agency Portfolio.pdf
 
Globus Compute Introduction - GlobusWorld 2024
Globus Compute Introduction - GlobusWorld 2024Globus Compute Introduction - GlobusWorld 2024
Globus Compute Introduction - GlobusWorld 2024
 
Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...
Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...
Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...
 

Training Webinar: Detect Performance Bottlenecks of Applications

  • 2. Effective Platform Server Monitoring Paulo Garrudo Architecture Team Leader Expert Services paulo.garrudo@outsystems.com https://www.linkedin.com/in/paulogarrudo 2
  • 3. Server-side Performance bottlenecks Agenda ● Performance Overview ● OutSystems Platform Logs ● Tools ● Performance CSI Live Demo ● TOP 10 Worst Practices ● Application Delivery Cycle ● Q&A
  • 5. Server-side Performance bottlenecks Web application Performance What is ●Application is consider performant if consistently responds fast and efficiently ●On web application, users expects a page to load under 2 seconds ●Measures the elapsed time between the beginning of a web request and the end of the response
  • 6. Server-side Performance bottlenecks Web application Performance Why is hard to achieve ●Developers have difficulty understanding why an application is slow ●It’s difficult to troubleshoot over web layers: device → network → application server → database ●On server-side, it’s difficult to drill-down over a slow page This webinar is going to focus on the Server-side performance
  • 7. Server-side Performance bottlenecks Web Request Simple overview ●Request sent (network) ●Server-side ●Content download (network) ●Client side
  • 8. Server-side Performance bottlenecks Client side and network performance Existing webinar • Details for client side and network
  • 10. Server-side Performance bottlenecks How to measure Use logs to measure elapsed times ●OutSystems Platform collects a set of logs out of the box – By default, individual logs are kept for 4 weeks: configurable using the configuration tool – For each eSpace / Extension, log setting must be enabled ●OutSystems Platform aggregates the collected logs ●On complex application actions, add you own audit actions to capture server-side execution time
  • 11. Server-side Performance bottlenecks How to measure OutSystems Platform monitoring ●General Logs – Application specific logging – System logs – Slow queries: queries that take more than 200ms (configurable) ●ViewState size ●Session size ●Timer Logs: each executed Scheduled Job ●Integrations Log: each Web Service / Web Reference invocation
  • 12. Server-side Performance bottlenecks How to measure OutSystems Platform monitoring ●Screens Log: each Screen access (regardless if Submit or Ajax) ●Extensions Log: keeps track of Extension actions execution ●Processes Log – Monitors process execution – Allows to drill down into each activity duration ●Emails Log: Includes an entry for each Email sent or received. – Doesn’t measure execution time but it could be useful to check the size of the emails
  • 13. Tools
  • 14. Server-side Performance bottlenecks Performance Monitor ● Platform built-in ● Captures End User Performance ● Allows to monitor history trends
  • 15. Server-side Performance bottlenecks Performance Monitor ● End User Experience = Client + Network + Server
  • 16. Server-side Performance bottlenecks Performance Monitor ● Client - time consumed for most used operating systems and browsers
  • 17. Server-side Performance bottlenecks Performance Monitor ● Network - time consumed for network connections and data carriers
  • 18. Server-side Performance bottlenecks Performance Monitor ● Server - slow database queries and slow integration response
  • 19. Server-side Performance bottlenecks Service Center ● Platform built-in ● Allows to check individual logs ● Useful to monitor specific execution times over one element ● During development, allows to evaluate optimizations in real time ● Information on ViewState and Session size is not available ● No easy use, lacks dashboards
  • 20. Server-side Performance bottlenecks Performance CSI Forge component • Lets you check the performance of your applications, and investigate the behavior of slow screens to find the causes of poor performance
  • 21. Server-side Performance bottlenecks Performance CSI Farm load and performance distribution
  • 22. Server-side Performance bottlenecks Performance CSI Top screens evaluation Weekly slow screen list: ● Number of hits (screen & ajax) ● Average Duration (screen & ajax) ● Total time = Hits * Avg. Duration Allows to ● filter by application ● Sort screen by the metrics more important for your application ● Drill-down to screen details Very Slow > 6s Slow ]4 to 6] s Acceptable ]2 to 4] s Fast [1 to 2] s Very fast < 1s
  • 23. Server-side Performance bottlenecks Performance CSI Top screens evaluation: Configuration Configurable to: ● Ignore fast screens, to reduce the scope of the analysis to your performance target ● Ignore outliers: screens that take more than X seconds, so you can focus on the more usual execution times
  • 24. Server-side Performance bottlenecks Performance CSI Drill-down to screen performance
  • 25. Server-side Performance bottlenecks Performance CSI Screen performance: dashboard ● Keep Session below 10 KB ● Keep ViewState below 5KB, to prevent client side latency
  • 26. Server-side Performance bottlenecks Performance CSI Screen performance: aggregated metrics collapsed Aggregated metrics by log type: ● Slow SQL ● Extension ● Web Reference ● User Defined Log Type (audit action ModuleName) ● Other: remaining execution time that cannot be aggregated
  • 27. Server-side Performance bottlenecks Screen performance: aggregated metrics expanded Performance CSI
  • 28. Server-side Performance bottlenecks Performance CSI Screen performance: Log View
  • 29. Server-side Performance bottlenecks Performance CSI Tip: your own logs on performance CSI Performance CSI automatically aggregates OutSystems Platform logs. If you use the following pattern, your audit logs will also be aggregated: ● Use Ticks extension to measure the execution time ● Use the Audit action available on the system components ● Write audit message in the format: “.. took” + ExecTimeMS + “ms” ● Write execution time in ms, rounded to 0 ● Use meaningful ModuleName, so it appears aggregated as a Log Type Performance CSI adds the prefix User- when displaying user logs
  • 30. Server-side Performance bottlenecks Performance CSI Tip: your logs on performance CSI
  • 32. TOP 10 Worst Practices
  • 33. Server-side Performance bottlenecks Top 10 Worst Practices 1.Fetching more records than required 2.Inappropriate record counting 3.High reuse of queries/actions with same inputs 4.Inefficient data preparation 5.Abuse of inline parameters in advanced queries 6.Inefficient query filtering & sort 7.Abuse of scope data 8.Session Variables using large data types 9. Massive string transformations 10.One-shot load of heavy screens
  • 34. Server-side Performance bottlenecks #1 Fetching more records than required Symptom ●Slow query with no top/maxrow treatment Cause ●Unnecessary CPU and IO consumptions on the Database
  • 35. Server-side Performance bottlenecks #1 Fetching more records than required Solution with Aggregates: ●Set the Max. records parameter of the aggregate to the required usage ●If required, the <query>.count will hold the total count of records, without the Max. records limitation In this example, Max. Records should be set to 1, since only the first row is ever used.
  • 36. Server-side Performance bottlenecks #1 Fetching more records than required Solution with Advanced Queries 1. Limit the number of Rows according to required usage 1. If total count is required, adapt a 2nd query from the 1st SELECT column_names FROM table_joins WHERE conditions ORDER BY order SELECT * FROM ( SELECT column_names FROM table_joins WHERE conditions ORDER BY order ) WHERE ROWNUM <= @maxrows Oracle SQL Server SELECT TOP @maxrows column_names FROM table_joins WHERE conditions ORDER BY order
  • 37. Server-side Performance bottlenecks #2 Inappropriate record counting Symptom ●Slow <Query>.count Cause ●Query used to fetch data is inefficient for performing a count Solution ●Implement a simplified query that performs the count without fetching and joining with unnecessary data ●Avoid execution of the query that collects the number of records ●Avoid testing <Query>.Count = 0 instead, use <Query>.List.Empty
  • 38. Server-side Performance bottlenecks #2 Inappropriate record counting Adapt a 2nd query from the original one SELECT column_names FROM table_joins WHERE conditions ORDER BY order_by_list SELECT Count(1) FROM Simplified_table_joins WHERE conditions 1. Replace all the column names by Count(1) 2. Remove any join that is not restricting the number of rows and not contributing for the conditions 3. Remove ORDER BY clause
  • 39. Server-side Performance bottlenecks Example #2 Inappropriate record counting Lots of data fetching and computation, not required for counting
  • 40. Server-side Performance bottlenecks Example (cont) #2 Inappropriate record counting Most of this joins are only necessary to access data irrelevant for the counting
  • 41. Server-side Performance bottlenecks #3 High reuse of queries/actions with same inputs Symptom ●High number of hits on same query/action Cause ●Lack of caching (or bad logic flow) Solution ●Cache the query or action for the minimum amount of time that will value the memory used ! Always validate with business before add cache to your elements
  • 42. Server-side Performance bottlenecks #3 High reuse of queries/actions with same inputs Examples Multiple calls with same inputs: ● During the day → cache for 24h ● In the scope of a user session → cache for 1h (or the average session duration) ● During the rendering of Web Block → cache for 1 minute
  • 43. Server-side Performance bottlenecks Example #1 #3 High reuse of queries/actions with same inputs Executed 15K times per day, in 0.7s per execution, with the same inputs and retrieving the same result, per Country in the same day Caching for 60 minutes, would reduce to a maximum of 24*Nr of countries executions per day
  • 44. Server-side Performance bottlenecks Example #2 Repeated operations inside the same screen #3 High reuse of queries/actions with same inputs Web block executed several times in same screen, causing repeated calls to actions and queries with same inputs Cache those calls inside the web block for a couple of minutes to ensure that data is reused in same screen
  • 45. Server-side Performance bottlenecks #3 High reuse of queries/actions with same inputs Example #3 Cache for about 20 minutes to reduce the number of slow hits given the contextual repetition of inputs during that period Reused in several Web Blocks
  • 46. Server-side Performance bottlenecks #3 High reuse of queries/actions with same inputs Example #3 CacheVersion 20 Add a dummy input to change the signature every time it’s necessary to invalidate the cached value ●Invalidate your Query/Action/Web Block cache with the use of a dummy input to change the signature
  • 47. Server-side Performance bottlenecks #4 Inefficient data preparation Symptom ●Too many query calls Cause ●Queries called inside foreach in the preparation ●Queries in expressions inside table records
  • 48. Server-side Performance bottlenecks Solutions ●Use proper joins and SQL functions to gather all required data in a single query ●Make decisions in the preparation to get data with different queries instead of making decisions on the screen to call different expressions with different queries ●Create different specialized screens instead of a power screen with inefficient data preparation that needs to cope with all situation #4 Inefficient data preparation
  • 49. Server-side Performance bottlenecks #4 Inefficient data preparation Example Same conditions evaluated per column, and according to the result a similar query is repeated individually per cell Solution #1 Make the decision in the preparation to perform a different specialized query, joining with the required tables and returning the same Output structure. Solution #2: Implement 2 specialized screens and make the decision to call the correct screen
  • 50. Server-side Performance bottlenecks #5 Abuse of inline parameters in advanced queries Symptom ●Slow query with inline parameters Cause – Inline parameters with values that change too often generate too many different queries in runtime, preventing DB optimization of the execution plan and increasing SQL Server plan cache size
  • 51. Server-side Performance bottlenecks #5 Abuse of inline parameters in advanced queries Solution ●Create specialized queries for the most used cases and make a decision on which one to use, storing the result in a local variable instead of injecting filtering or join clauses dynamically ●Don’t inject the result of a query in another one – create a complex query instead although more difficult to implement, it pays off performance wise ● Use advanced database database techniques, such as Materialized Views (Oracle), indexed views (Sql Server), Global Temporary Tables (Oracle) Ask your DBA for how to implement these
  • 52. Server-side Performance bottlenecks #5 Abuse of inline parameters in advanced queries Example In this example, GetInConditionsCounters computes two IN conditions that are injected in query GetCounters to avoid complex sub-queries inside GetCounters Although more complex to code, in terms of efficiency it is better to implement the sub-queries and let the DB Engine optimize the entire query
  • 53. Server-side Performance bottlenecks #5 Abuse of inline parameters in advanced queries This common pattern always results in performance issues once data volume increases where [Id] in @IdList Solution ● Create a temporary table (using a WITH clause) with the list of id’s WITH IdsTable as ( select … ) ● Change the query to where [Id] in (select id from IdsTable) ● Another advantage is not having to build the comma separated list Inline parameter with comma separated Ids
  • 54. Server-side Performance bottlenecks #5 Abuse of inline parameters in advanced queries Solution example Upfront query to generate temporary table myuserIDS Sub-queries use the temporary table
  • 55. Server-side Performance bottlenecks #6 Inefficient Query Filtering & Sort Symptom ●Slow query with filters and/or sort Cause ●Casting of input parameters inside the query ●Filters with LIKE over text ●No indexes on the columns filtered or ordered ●Missing database maintenance plans
  • 56. Server-side Performance bottlenecks #6 Inefficient Query Filtering & Sort Solution: Optimize filters ●Avoid filters like WHERE name like '%Paul%' ●Make the casts outside the query, on the input expressions –Casting of the input parameters inside the query causes conversion to be done for every tuple tested
  • 57. Server-side Performance bottlenecks #6 Inefficient Query Filtering & Sort Solution: Index your entities ●Improves the performance of select (slight overhead in insert and update) ●Creating simple index for the most used entity attribute. ●Create compound indexes even if there is simple indexes on the same fields – balance benefits between insertions and retrieval ●Indexes that you may consider adding: – equality_columns: used in queries involving equality (ex: Id = 1 or Id != 1) – included_columns: columns that should be included in the index (keeps a copy of the data at an intermediate level of the index) • Indexes with INCLUDE keyword are not supported in Service Studio… but can be created in the DB
  • 58. Server-side Performance bottlenecks #6 Inefficient Query Filtering & Sort Solution: Involve the resident DBA ●Database maintenance plan – Periodically run index reorganization and statistics update ● Monitor existing indexes – Unused indexes also impact performance negatively – Costly used indexes: indexes hurting insert/update operations
  • 59. Server-side Performance bottlenecks #7 Abuse of scope data Symptom ●Ajax requests become slower and page load keeps degenerating Cause ●Any reference to preparation data requires data to be stored in the viewstate, increasing IO in Screen actions Solution ●Reload queries, re-execute actions, use screen action input parameters
  • 60. Server-side Performance bottlenecks Think viewstate ●Avoid using preparation data in screen actions: – Increases network traffic between the server and the browser #7 Abuse of scope data
  • 61. Server-side Performance bottlenecks #8 Session Variables using large data types Symptom ●Increased contention on Session loading, with the number of concurrent users Cause ●Each web request loads session context which takes longer with large data types, causing contention in the session data model with the increase of concurrent users. This is even more important when you use AJAX as it will increase the number of requests.
  • 62. Server-side Performance bottlenecks #8 Session Variables using large data types Solution ●Store session information in database tables with the SessionId as the primary key Instead of fetching all session information in every request, only required data is fetched
  • 63. Server-side Performance bottlenecks Symptom ● Massive string transformation takes too long Cause ● Processing logic using the standard string operations #9 Massive string transformations
  • 64. Server-side Performance bottlenecks Solution ● Use the String Builder actions from Text Extension Eg. Processing time reduced from 8 minutes to 30 seconds when serializing a list to a file (~9MB of data) #9 Massive string transformations
  • 65. Server-side Performance bottlenecks #10 One-shot load of heavy screens Symptom ●First byte takes to long, lack of responsiveness, no partial information Cause ●Power pages with too much content blocks, each requiring heavy data retrieval and calculations Solution ●Adopt a lazy load strategy
  • 66. Server-side Performance bottlenecks Check Lazy Load component in OutSystems Forge Page structure is quickly displayed… … while heavy content is progressively loaded Screen preparation is faster because data preparation is made in each Web Block Use caching mechanisms when repeating the same action/query on different Web Blocks #10 One-shot load of heavy screens
  • 68. Server-side Performance bottlenecks How do I ensure my application is performant? During development ●Follow OutSystems best practices one https://success.outsystems.com/Support/Enterprise_Customers/Maintenance_and_Operations/Performance_Best_Practices ●Discuss complex business requirement within the team and define which patterns should be applied ●Recurrently review the code ●Monitor the application – Look for slow queries, slow screens
  • 69. Server-side Performance bottlenecks How do I ensure my application is performant? During solution release ●Load & Stress tests After Go-Live ●Proactively monitor your application ●Pay attention to performance decrease over time – React before it becomes a big issue