SlideShare a Scribd company logo
1 of 22
Download to read offline
[TYPE THE COMPANY NAME]
Azure Application
Performance Guide
Need to check matrix
Bhonhariya, Salim(Cloud Architect)
1/9/2015
Al rights reserved
1
Contents
Event Driver Messaging programming in Receiver side of Service Bus:.......................................................2
Azure Access Control Service (ACS) ..............................................................................................................3
Azure Web Applications and Serialization....................................................................................................5
Physical location of services..........................................................................................................................5
New D-Series of Azure VMs with 60% Faster CPUs, More Memory and Local SSD Disks............................5
Local SSD Disk and SQL Server Buffer Pool Extensions.................................................................................6
Pre-load required data for complex processing ...........................................................................................7
Use batch processing....................................................................................................................................8
Use Asynchronous processing ......................................................................................................................8
SQL Azure Performance:...............................................................................................................................8
Scaling Out: ...............................................................................................................................................8
Setting in SQL Azure:...............................................................................................................................11
Monitoring Azure SQL Database Using Dynamic Management Views...................................................12
Monitoring Connections .....................................................................................................................12
Monitoring Query Performance..........................................................................................................13
Monitoring Blocked Queries...............................................................................................................14
Monitoring Query Plans......................................................................................................................14
Get SQL Profiler info from SQL Azure .................................................................................................14
Analysis Resources and Tools .....................................................................................................................17
Tracing:........................................................................................................................................................17
Coming soon: ..............................................................................................................................................20
2
Event Driver Messaging programming in Receiver side of Service Bus:
Instead of polling the queue we’ll be using the new message pump(Push). On
receiver side of code.
http://fabriccontroller.net/blog/posts/introducing-the-event-driven-message-
programming-model-for-the-windows-azure-service-bus/
// Build the messaging options.
var eventDrivenMessagingOptions = new OnMessageOptions();
eventDrivenMessagingOptions.AutoComplete = true;
eventDrivenMessagingOptions.ExceptionReceived += OnExceptionReceived;
eventDrivenMessagingOptions.MaxConcurrentCalls = 5;
MaxConcurrentCalls: define how many theads will be processing the queue (for
improved performance)
Avoid lazy loading of Entity Data for intense processing scenarios
If you are not careful while writing Navigational properties, EF will lazy load
unnecessary data behind the scenes. For EF entities having relations, there will be
chances for a developer to write like this..
public class Customer :
{
public int CustomerID { get; set; }
public int CustomerTypeId{get;set;}
//Foreign keyp
public virtual CustomerType CustomerType { get; set; }
}
This is naturally the easiest way, especially if your application need to retrieve
“CustomerType: data using Customer entity. If we carefully analyze the above
query, each query to Customer object, may cause the EF to lazy load “Customer
entity” too. This will have an impact on performance, especially when the data
becomes too heavy. In these scenarios, to increase performance, there is a way.
Instead of defining “public virtual CustomerType CustomerType” define “public
ICollection CustomerType CustomerType”. By using ICollection, EF stops lazy
loading.
And in queries you can use “Customer” object, and force the EF to use lazy
loading by using “Include”
3
ie : var data = Customers.Include("CustomerEntity").ToList(). This will force EF to
lazy load.
Azure Access Control Service (ACS)
The two main factors affecting ACS resource usage, and thus performance, are
the token size, and encryption.
In general, the key attributes of performance are response time, throughput, and
resource utilization. For example, if the application has limited resources such as
memory, chances are some information will hit the file system which is much
slower than in-memory operations – this will affect overall response time. Here is
another example, if the application sends a large amount of data over a network
with limited bandwidth, it results in slower than desired response times. One
approach to solve performance issues is to add more resources such as network
bandwidth, faster CPU, and more memory. This approach may help although not
always. Another approach is to improve code so that it uses fewer resources and
exchanges less data. Considering the context of claims aware applications and
what’s under developer’s control there are a few key factors related to using ACS
that affect performance, namely, tokens and cryptographic operations related to
the tokens.
Token size and encryption are key factors under the developer’s control that
affect performance of applications integrated with ACS.
 Token Size. Token size affects performance in two ways. First it directly
affects performance related to network bandwidth to some degree. The
larger the token the more network bandwidth it will take resulting in slower
response overall. Second, the larger the token the more CPU cycles required
to verify the integrity and extract claims in the token. Token processing
includes parsing the token and de-serializing it into binary format so that
your code can use it, the processing also includes several cryptography
operations such as signature validation, and optionally decryption. The larger
the token the more CPU cycles spent on its processing resulting in higher
resource utilization and slower overall response. Token size depends on
several factors: token format, cryptography applied to the token, and the
claims in the token. ACS supports SAML, SWT, and JWT tokens. Generally a
SWT or a JWTJWT token is smaller than a SAML token that carries equivalent
4
amount of information. For more information read Token Formats Supported
in ACS. There is caveat though, different token formats are optimized for
different protocols and application architectures.
 SWT Tokens are issued over WS-Federation, WS-Trust, and OAuth WRAP
or OAuth 2.0 protocols. This means that SWT tokens can be used in Web
applications, WCF (SOAP) services, and WCF (REST) services. WIF does
not support the SWT token handler.
 SAML Tokens are issued over WS-Trust and WS-Federation protocols.
This means that SAML tokens can be used in Web applications and WCF
(SOAP) services. WIF supports both SAML 2.0 and SAML 1.1 tokens.
Read more about WIF in the following topic Windows Identity
Foundation
 JWT Tokens are issued over WS-Federation, WS-Trust, and OAuth 2.0
protocols. This means that SWT tokens can be used in Web applications,
WCF (SOAP) services, and WCF (REST) services.
One factor that contributes most to the token size is the claims
contained in the token. The more claims the token carries the larger its
size. In most cases claims that come with the token are under
developer’s control. The claims used by an application are added,
removed, or changed by the Security Token Service (STS) such as AD FS
or ACS. ACS uses rule groups and rules to add, remove or change claims
in a token. For more information read Rule Groups and Rules.
 Encryption. Encryption and other cryptographic operations such as signing,
signature validation, and decryption directly affect performance.
Cryptography operations consume computation power due to the complex
algorithms involved. ACS signs all tokens issued as an integrity measure to
counter tampering attacks. Signature validation of tokens is not optional.
Token encryption is required if a relying party application is a web service
that is not using SSL to encrypt communications. WCF-based services using
SOAP require encrypted, proof-of-possession tokens with the WS-Trust
protocol. Token encryption is required to protect sensitive information over
an unencrypted channel. However, in cases where the communication
channel is encrypted, such as using SSL encryption, then using token
encryption is optional and may not be applied in favor of improved
performance.
5
Azure Web Applications and Serialization
When writing applications for Azure, data serialization becomes increasingly
important when compared to writing on-premises applications. Azure
applications get charged for database use, general storage, data transfers and
caching. For more information on pricing see, Azure Pricing Overview.
Additionally Azure applications may be used from mobile devices like phones,
tablets, etc. and this can introduce latency because of their partially connected
nature. All of these factors mean it is very important to think about how your
application will send and receive data. Smaller payloads will reduce your costs for
bandwidth and storage and may help minimize latency.
The best serializer and encoder to use will depend upon your application and its
interoperability needs. For scenarios where the service and client are both
running under the .NET Framework consider using the binary encoder and the
DataContractSerializer. For scenarios where interoperability is required, use the
text encoder. In these types of scenarios the DataContractJsonSerializer will
provide the smallest representation, but this requires use of a non-SOAP service.
If you need to use SOAP, consider using the DataContractSerializer.
Physical location of services
If possible, co-locate different nodes or application layers within the same data
center. Otherwise network latency and cost will be greater.
For example, locate the web application in the same data center as the SQL
Database instance that it accesses, rather than in a different data center, or on-
premises.
New D-Series of Azure VMs with 60% Faster CPUs, More Memory and Local SSD
Disks
(http://weblogs.asp.net/scottgu/new-d-series-of-azure-vms-with-60-faster-cpus-
more-memory-and-local-ssd-disks)
6
Today I’m excited to announce that we just released a new set of VM sizes for
Microsoft Azure. These VM sizes are now available to be used immediately by
every Azure customer.
The new D-Series of VMs can be used with both Azure Virtual Machines and Azure
Cloud Services. In addition to offering faster vCPUs (approximately 60% faster
than our A series) and more memory (up to 112 GB), the new VM sizes also all
have a local SSD disk (up to 800 GB) to enable much faster IO reads and writes.
The new VM sizes available today include the following:
General Purpose D-Series VMs
Name vCores Memory (GB) Local SSD Disk (GB)
Standard_D1 1 3.5 50
Standard_D2 2 7 100
Standard_D3 4 14 200
Standard_D4 8 28 400
High Memory D-Series VMs
Name vCores Memory (GB) Local SSD Disk (GB)
Standard_D11 2 14 100
Standard_D12 4 28 200
Standard_D13 8 56 400
Standard_D14 16 112 800
For pricing information, please see Virtual Machine Pricing Details.
Local SSD Disk and SQL Server Buffer Pool Extensions
A temporary drive on the VMs (D: on Windows, /mnt or /mnt/resource on Linux)
is mapped to the local SSDs exposed on the D-Service VMs, and provides a really
good option for replicated storage workloads, like MongoDB, or for significantly
increasing the performance of SQL Server 2014 by enabling its unique Buffer Pool
Extensions (BPE) feature.
7
SQL Server 2014’s Buffer Pool Extensions allows you to extend the SQL Engine
Buffer Pool with the memory of local SSD disks to significantly improve the
performance of SQL workloads. The Buffer Pool is a global memory resource used
to cache data pages for much faster read operations. Without any code changes
in your application, you can enable the buffer pool support with the SSDs of the
D-Series VMs using a simple T-SQL query with just four lines:
ALTER SERVER CONFIGURATION
SET BUFFER POOL EXTENSION ON
SIZE = <size> [ KB | MB | GB ]
FILENAME = 'D:SSDCACHEEXAMPLE.BPE'
No code changes are required in your application, and all write operations will
continue to be durably persisted in VM drives persisted in Azure Storage. More
details on configuring and using BPE can be found here.
Pre-load required data for complex processing
Typically there may be chances for writing code like given below
void Process(){
//Loop stars here
var data = DBContext.Customers.ToList();
//Loop ends here
}
The problem with the above approach is that, each time the loop executes, it will
query data from DB. Each time we call the .ToList() method, EF will send
underlying SQL queries to db, which makes DB hits more, and in production
environment, it will cause significant performance issue. To resolve this, you can
follow another approach which is quite simple. Load the data to c# object and
manipulate it from that object. Use Linq data manipulation from stored c#
objects. SO the modified code will look like this
8
void Process(){
List<object> listData = DBContext.Customers.ToList(); //Initially load the
data, so db hit occurs only once.
//Loop starting here
var data = listData.SelectAl()...;
//Loop ending here
}
)
Use batch processing
If you application involved processing of data as well as writing to DB, then you
can make use of batch methods, which reduce DB hits
Use Asynchronous processing
If you try to call a select query to retrieve 10,000 records from an Azure SQL, you
would notice that Azure sends “selected data” asynchronously, i.e. first 1000
records, then 1000 records and so on. So for our applications listing/display data
scenarios, you can make the application behave asynchronously, makes user
experience much greater.
SQL Azure Performance:
Scaling Out:
 The most dramatic performance improvements achievable in Azure
applications come from the scaling out and partitioning of resources.
Building scalable applications in Azure requires leveraging the scale-out of
resources by their physical partitioning: SQL databases, storage, compute
nodes, etc. This partitioning enables parallel execution of application tasks,
and is thus the basis for high performance, because Azure has the
resources of an entire data center available, and handles the physical
partitioning for you. To achieve this level of overall performance requires
the use of proper scale-out design patterns.
9
 Ensuring maximum scalability: deciding whether, and how to partition your
data.
 Custom Sharding in SQL Azure and Federations in SQL Azure Database
 Auto scaling the SQL Azure: By creating more instances of SQL virtual
machine (Same as multiple database instance, which is similar to creating
more instances of Web role or worker role)
 Premium SQL AZURE, set concurrent request can be more than 180.
10
11
Setting in SQL Azure:
 Verify to make sure disk Cache is none for high throughput I/0 operations in
this case.
 Make sure data compression is on, compress table and indexes. That way
more data are stored on fewer pages and read I/O operations are faster.
 Make sure replication of SQL Azure database is done in same region for
minimum latency.
 Use SQL file groups across multiple disks instead of disk striping
 Put logs, data and backup on separate disks when doing this we have to
disable geo-replication on storage account for consistency. Because
replication is done asynchronously.
 The one storage account IOPS limits are 20,000 times foe 1KB message size
in our case it will be 20,000/1kb per message. Only 500 IOPS PER DISK is
allowed. If it goes more than that we have to add more storage accounts
automatically to avoid throttling in storage account. We should put a
storage throttling alert in azure to see up to what IOPS we go to using
(http://blogs.msdn.com/b/mast/archive/2014/08/02/how-to-monitor-for-
storage-account-throttling.aspx)
12
Monitoring Azure SQL Database Using Dynamic Management Views
(http://msdn.microsoft.com/en-us/library/windowsazure/ff394114.aspx)
Microsoft Azure SQL Database partially supports three categories of dynamic
management views:
Database-related dynamic management views.
Execution-related dynamic management views.
Transaction-related dynamic management views.
Monitoring Connections
You can use the sys.dm_exec_connections view to retrieve information about the
connections established to a specific Azure SQL Database server and the details of
13
each connection. In addition, thesys.dm_exec_sessions view is helpful when
retrieving information about all active user connections and internal tasks.
The following query retrieves information on the current connection:
-- monitor connections
SELECT
e.connection_id,
s.session_id,
s.login_name,
s.last_request_end_time,
s.cpu_time
FROM
sys.dm_exec_sessions s
INNER JOIN sys.dm_exec_connections e
ON s.session_id = e.session_id
GO
Monitoring Query Performance
Slow or long running queries can consume significant system resources. This
section demonstrates how to use dynamic management views to detect a few
common query performance problems. For detailed information,
see Troubleshooting Performance Problems in SQL Server 2005 article on
Microsoft TechNet.
Finding Top N Queries
The following example returns information about the top five queries ranked by
average CPU time. This example aggregates the queries according to their query
hash, so that logically equivalent queries are grouped by their cumulative
resource consumption.
-- Find top 5queries
SELECT TOP 5 query_stats.query_hash AS "Query Hash",
SUM(query_stats.total_worker_time) / SUM(query_stats.execution_count) AS
"Avg CPU Time",
MIN(query_stats.statement_text) AS "Statement Text"
FROM
(SELECT QS.*,
SUBSTRING(ST.text, (QS.statement_start_offset/2) + 1,
((CASE statement_end_offset
WHEN -1 THEN DATALENGTH(st.text)
ELSE QS.statement_end_offset END
- QS.statement_start_offset)/2) + 1) AS statement_text
FROM sys.dm_exec_query_stats AS QS
CROSS APPLY sys.dm_exec_sql_text(QS.sql_handle) as ST) as query_stats
14
GROUP BY query_stats.query_hash
ORDER BY 2 DESC;
GO
Monitoring Blocked Queries
Slow or long-running queries can contribute to excessive resource consumption
and be the consequence of blocked queries. The cause of the blocking can be
poor application design, bad query plans, the lack of useful indexes, and so on.
You can use the sys.dm_tran_locks view to get information about the current
locking activity in your Azure SQL Database. For example code,
see sys.dm_tran_locks (Transact-SQL)in SQL Server Books Online.
Monitoring Query Plans
An inefficient query plan also may increase CPU consumption. The following
example uses the sys.dm_exec_query_stats view to determine which query uses
the most cumulative CPU.
-- Monitor query plans
SELECT
highest_cpu_queries.plan_handle,
highest_cpu_queries.total_worker_time,
q.dbid,
q.objectid,
q.number,
q.encrypted,
q.[text]
FROM
(SELECT TOP 50
qs.plan_handle,
qs.total_worker_time
FROM
sys.dm_exec_query_stats qs
ORDER BY qs.total_worker_time desc) AS highest_cpu_queries
CROSS APPLY sys.dm_exec_sql_text(plan_handle) AS q
ORDER BY highest_cpu_queries.total_worker_time desc
Get SQL Profiler info from SQL Azure
(http://blogs.msdn.com/b/benko/archive/2012/05/19/cloudtip-14-how-do-i-get-
sql-profiler-info-from-sql-azure.aspx)
15
16
17
Analysis Resources and Tools
A number of third-party non-Microsoft tools are available for analyzing Azure
performance:
 Cerebrata
 SQL Server and SQL Database Performance Testing: Enzo SQL Baseline
Other Resources
 SQL Database Performance and Elasticity Guide
 SQL Database
 Storage
 Networking
 Service Bus
 Azure Planning - A Post-decision Guide to Integrate Azure in Your Environment
Tracing:
To see which method is taking time,
We can do following:
In code in receive worker process and
In web.config
Configure the azure site for trace logging
18
Then start stream logging service as follows
Click on logs, Stream logs and see as below
19
Then run the web site code and it will give us where is the most time it is taking
If worker process is crashing, it may cause performance issue, we can find out by
the following process:
20
Open evenlog.xml in your event log folder in azure for the app and see why?
Click on download file after test and see.
Coming soon:
Coming soon in preview are a larger maximum database size (the current limit is
500GB), parallel queries (using multiple threads for query optimization)
There will also be support for in-memory columnstore queries in the premium
version of Azure SQL database. Columnstore indexes are a type of in-memory
database, enabling much faster queries at the expense of easy updating. They are
21
therefore suitable for large read-only datasets, such as those used by business
analytics.

More Related Content

What's hot

FRONT END AND BACK END DATABASE SECURITY IN THREE TIER WEB APPLICATION
FRONT END AND BACK END DATABASE SECURITY IN THREE TIER WEB APPLICATIONFRONT END AND BACK END DATABASE SECURITY IN THREE TIER WEB APPLICATION
FRONT END AND BACK END DATABASE SECURITY IN THREE TIER WEB APPLICATIONijiert bestjournal
 
Mmb authenticated index for verifiable
Mmb authenticated index for verifiableMmb authenticated index for verifiable
Mmb authenticated index for verifiableKamal Spring
 
Cued click point image based kerberos authentication protocol
Cued click point image based kerberos authentication protocolCued click point image based kerberos authentication protocol
Cued click point image based kerberos authentication protocolIAEME Publication
 
Towards secure and dependable storage service in cloud
Towards secure and dependable storage service in cloudTowards secure and dependable storage service in cloud
Towards secure and dependable storage service in cloudsibidlegend
 
Service operator aware trust scheme for resource
Service operator aware trust scheme for resourceService operator aware trust scheme for resource
Service operator aware trust scheme for resourcejayaramb
 
Towards secure & dependable storage services in cloud computing
Towards secure & dependable storage services in cloud computingTowards secure & dependable storage services in cloud computing
Towards secure & dependable storage services in cloud computingRahid Abdul Kalam
 
Kerberos Survival Guide SPS Chicago
Kerberos Survival Guide SPS ChicagoKerberos Survival Guide SPS Chicago
Kerberos Survival Guide SPS ChicagoJ.D. Wade
 
Kerberos survival guide-STL 2015
Kerberos survival guide-STL 2015Kerberos survival guide-STL 2015
Kerberos survival guide-STL 2015J.D. Wade
 
SPS Ozarks 2012: Kerberos Survival Guide
SPS Ozarks 2012: Kerberos Survival GuideSPS Ozarks 2012: Kerberos Survival Guide
SPS Ozarks 2012: Kerberos Survival GuideJ.D. Wade
 
Survey on Restful Web Services Using Open Authorization (Oauth)I01545356
Survey on Restful Web Services Using Open Authorization (Oauth)I01545356Survey on Restful Web Services Using Open Authorization (Oauth)I01545356
Survey on Restful Web Services Using Open Authorization (Oauth)I01545356IOSR Journals
 
secure data transfer and deletion from counting bloom filter in cloud computing.
secure data transfer and deletion from counting bloom filter in cloud computing.secure data transfer and deletion from counting bloom filter in cloud computing.
secure data transfer and deletion from counting bloom filter in cloud computing.Venkat Projects
 
cloud computing preservity
cloud computing preservitycloud computing preservity
cloud computing preservitychennuruvishnu
 
O po r enabling proof of retrievability in cloud computing with resource cons...
O po r enabling proof of retrievability in cloud computing with resource cons...O po r enabling proof of retrievability in cloud computing with resource cons...
O po r enabling proof of retrievability in cloud computing with resource cons...Pvrtechnologies Nellore
 
Implementation of ssl injava
Implementation of ssl injavaImplementation of ssl injava
Implementation of ssl injavatanujagrawal
 
Mutual Authentication For Wireless Communication
Mutual Authentication For Wireless CommunicationMutual Authentication For Wireless Communication
Mutual Authentication For Wireless Communicationmanish kumar
 
Radius vs. Tacacs+
Radius vs. Tacacs+Radius vs. Tacacs+
Radius vs. Tacacs+Netwax Lab
 

What's hot (18)

FRONT END AND BACK END DATABASE SECURITY IN THREE TIER WEB APPLICATION
FRONT END AND BACK END DATABASE SECURITY IN THREE TIER WEB APPLICATIONFRONT END AND BACK END DATABASE SECURITY IN THREE TIER WEB APPLICATION
FRONT END AND BACK END DATABASE SECURITY IN THREE TIER WEB APPLICATION
 
Farheen
Farheen Farheen
Farheen
 
Mmb authenticated index for verifiable
Mmb authenticated index for verifiableMmb authenticated index for verifiable
Mmb authenticated index for verifiable
 
Cued click point image based kerberos authentication protocol
Cued click point image based kerberos authentication protocolCued click point image based kerberos authentication protocol
Cued click point image based kerberos authentication protocol
 
Towards secure and dependable storage service in cloud
Towards secure and dependable storage service in cloudTowards secure and dependable storage service in cloud
Towards secure and dependable storage service in cloud
 
Service operator aware trust scheme for resource
Service operator aware trust scheme for resourceService operator aware trust scheme for resource
Service operator aware trust scheme for resource
 
Towards secure & dependable storage services in cloud computing
Towards secure & dependable storage services in cloud computingTowards secure & dependable storage services in cloud computing
Towards secure & dependable storage services in cloud computing
 
Kerberos Survival Guide SPS Chicago
Kerberos Survival Guide SPS ChicagoKerberos Survival Guide SPS Chicago
Kerberos Survival Guide SPS Chicago
 
Firewalls
FirewallsFirewalls
Firewalls
 
Kerberos survival guide-STL 2015
Kerberos survival guide-STL 2015Kerberos survival guide-STL 2015
Kerberos survival guide-STL 2015
 
SPS Ozarks 2012: Kerberos Survival Guide
SPS Ozarks 2012: Kerberos Survival GuideSPS Ozarks 2012: Kerberos Survival Guide
SPS Ozarks 2012: Kerberos Survival Guide
 
Survey on Restful Web Services Using Open Authorization (Oauth)I01545356
Survey on Restful Web Services Using Open Authorization (Oauth)I01545356Survey on Restful Web Services Using Open Authorization (Oauth)I01545356
Survey on Restful Web Services Using Open Authorization (Oauth)I01545356
 
secure data transfer and deletion from counting bloom filter in cloud computing.
secure data transfer and deletion from counting bloom filter in cloud computing.secure data transfer and deletion from counting bloom filter in cloud computing.
secure data transfer and deletion from counting bloom filter in cloud computing.
 
cloud computing preservity
cloud computing preservitycloud computing preservity
cloud computing preservity
 
O po r enabling proof of retrievability in cloud computing with resource cons...
O po r enabling proof of retrievability in cloud computing with resource cons...O po r enabling proof of retrievability in cloud computing with resource cons...
O po r enabling proof of retrievability in cloud computing with resource cons...
 
Implementation of ssl injava
Implementation of ssl injavaImplementation of ssl injava
Implementation of ssl injava
 
Mutual Authentication For Wireless Communication
Mutual Authentication For Wireless CommunicationMutual Authentication For Wireless Communication
Mutual Authentication For Wireless Communication
 
Radius vs. Tacacs+
Radius vs. Tacacs+Radius vs. Tacacs+
Radius vs. Tacacs+
 

Similar to Azure applications performance checklist

SSL Secure socket layer
SSL Secure socket layerSSL Secure socket layer
SSL Secure socket layerAhmed Elnaggar
 
IRJET- Data and Technical Security Issues in Cloud Computing Databases
IRJET- Data and Technical Security Issues in Cloud Computing DatabasesIRJET- Data and Technical Security Issues in Cloud Computing Databases
IRJET- Data and Technical Security Issues in Cloud Computing DatabasesIRJET Journal
 
Towards secure and dependable storage service in cloud
Towards secure and dependable storage service in cloudTowards secure and dependable storage service in cloud
Towards secure and dependable storage service in cloudsibidlegend
 
IRJET- Survey on Blockchain based Digital Certificate System
IRJET- Survey on Blockchain based Digital Certificate SystemIRJET- Survey on Blockchain based Digital Certificate System
IRJET- Survey on Blockchain based Digital Certificate SystemIRJET Journal
 
Kerberos Security in Distributed Systems
Kerberos Security in Distributed SystemsKerberos Security in Distributed Systems
Kerberos Security in Distributed SystemsIRJET Journal
 
IRJET- A Novel and Secure Approach to Control and Access Data in Cloud St...
IRJET-  	  A Novel and Secure Approach to Control and Access Data in Cloud St...IRJET-  	  A Novel and Secure Approach to Control and Access Data in Cloud St...
IRJET- A Novel and Secure Approach to Control and Access Data in Cloud St...IRJET Journal
 
An Auditing Protocol for Protected Data Storage in Cloud Computing
An Auditing Protocol for Protected Data Storage in Cloud ComputingAn Auditing Protocol for Protected Data Storage in Cloud Computing
An Auditing Protocol for Protected Data Storage in Cloud Computingijceronline
 
Enhanced Security Through Token
Enhanced Security Through TokenEnhanced Security Through Token
Enhanced Security Through TokenIRJET Journal
 
IRJET- Decentralized Kyc System
IRJET- Decentralized Kyc SystemIRJET- Decentralized Kyc System
IRJET- Decentralized Kyc SystemIRJET Journal
 
Providing user security guarantees in public infrastructure clouds
Providing user security guarantees in public infrastructure cloudsProviding user security guarantees in public infrastructure clouds
Providing user security guarantees in public infrastructure cloudsKamal Spring
 
Data power Performance Tuning
Data power Performance TuningData power Performance Tuning
Data power Performance TuningKINGSHUK MAJUMDER
 
Cloud-Trust—a Security Assessment Modelfor Infrastructure as
Cloud-Trust—a Security Assessment Modelfor Infrastructure asCloud-Trust—a Security Assessment Modelfor Infrastructure as
Cloud-Trust—a Security Assessment Modelfor Infrastructure asWilheminaRossi174
 
E-Business And Technology Essay
E-Business And Technology EssayE-Business And Technology Essay
E-Business And Technology EssayPamela Wright
 
Vtu network security(10 ec832) unit 5 notes.
Vtu network security(10 ec832) unit 5 notes.Vtu network security(10 ec832) unit 5 notes.
Vtu network security(10 ec832) unit 5 notes.Jayanth Dwijesh H P
 
IRJET- Improving Data Storage Security and Performance in Cloud Environment
IRJET- Improving Data Storage Security and Performance in Cloud EnvironmentIRJET- Improving Data Storage Security and Performance in Cloud Environment
IRJET- Improving Data Storage Security and Performance in Cloud EnvironmentIRJET Journal
 

Similar to Azure applications performance checklist (20)

Asymmetric cryptography
Asymmetric cryptographyAsymmetric cryptography
Asymmetric cryptography
 
SSL Secure socket layer
SSL Secure socket layerSSL Secure socket layer
SSL Secure socket layer
 
IRJET- Data and Technical Security Issues in Cloud Computing Databases
IRJET- Data and Technical Security Issues in Cloud Computing DatabasesIRJET- Data and Technical Security Issues in Cloud Computing Databases
IRJET- Data and Technical Security Issues in Cloud Computing Databases
 
Unit 6
Unit 6Unit 6
Unit 6
 
Towards secure and dependable storage service in cloud
Towards secure and dependable storage service in cloudTowards secure and dependable storage service in cloud
Towards secure and dependable storage service in cloud
 
IRJET- Survey on Blockchain based Digital Certificate System
IRJET- Survey on Blockchain based Digital Certificate SystemIRJET- Survey on Blockchain based Digital Certificate System
IRJET- Survey on Blockchain based Digital Certificate System
 
Kerberos Security in Distributed Systems
Kerberos Security in Distributed SystemsKerberos Security in Distributed Systems
Kerberos Security in Distributed Systems
 
50120130406006
5012013040600650120130406006
50120130406006
 
IRJET- A Novel and Secure Approach to Control and Access Data in Cloud St...
IRJET-  	  A Novel and Secure Approach to Control and Access Data in Cloud St...IRJET-  	  A Novel and Secure Approach to Control and Access Data in Cloud St...
IRJET- A Novel and Secure Approach to Control and Access Data in Cloud St...
 
An Auditing Protocol for Protected Data Storage in Cloud Computing
An Auditing Protocol for Protected Data Storage in Cloud ComputingAn Auditing Protocol for Protected Data Storage in Cloud Computing
An Auditing Protocol for Protected Data Storage in Cloud Computing
 
Enhanced Security Through Token
Enhanced Security Through TokenEnhanced Security Through Token
Enhanced Security Through Token
 
IRJET- Decentralized Kyc System
IRJET- Decentralized Kyc SystemIRJET- Decentralized Kyc System
IRJET- Decentralized Kyc System
 
Providing user security guarantees in public infrastructure clouds
Providing user security guarantees in public infrastructure cloudsProviding user security guarantees in public infrastructure clouds
Providing user security guarantees in public infrastructure clouds
 
Data power Performance Tuning
Data power Performance TuningData power Performance Tuning
Data power Performance Tuning
 
Cloud-Trust—a Security Assessment Modelfor Infrastructure as
Cloud-Trust—a Security Assessment Modelfor Infrastructure asCloud-Trust—a Security Assessment Modelfor Infrastructure as
Cloud-Trust—a Security Assessment Modelfor Infrastructure as
 
E-Business And Technology Essay
E-Business And Technology EssayE-Business And Technology Essay
E-Business And Technology Essay
 
Microservice architecture-api-gateway-considerations
Microservice architecture-api-gateway-considerationsMicroservice architecture-api-gateway-considerations
Microservice architecture-api-gateway-considerations
 
Vtu network security(10 ec832) unit 5 notes.
Vtu network security(10 ec832) unit 5 notes.Vtu network security(10 ec832) unit 5 notes.
Vtu network security(10 ec832) unit 5 notes.
 
IRJET- Improving Data Storage Security and Performance in Cloud Environment
IRJET- Improving Data Storage Security and Performance in Cloud EnvironmentIRJET- Improving Data Storage Security and Performance in Cloud Environment
IRJET- Improving Data Storage Security and Performance in Cloud Environment
 
Saas security
Saas securitySaas security
Saas security
 

More from Salim M Bhonhariya

Software Developer’s Project Documentation Template
Software Developer’s Project Documentation TemplateSoftware Developer’s Project Documentation Template
Software Developer’s Project Documentation TemplateSalim M Bhonhariya
 
SSO to Office365 using Active Directory Credentials
SSO to Office365 using Active Directory CredentialsSSO to Office365 using Active Directory Credentials
SSO to Office365 using Active Directory CredentialsSalim M Bhonhariya
 
Decide if PhoneGap is for you as your mobile platform selection
Decide if PhoneGap is for you as your mobile platform selectionDecide if PhoneGap is for you as your mobile platform selection
Decide if PhoneGap is for you as your mobile platform selectionSalim M Bhonhariya
 
Azure Service Bus Performance Checklist
Azure Service Bus Performance ChecklistAzure Service Bus Performance Checklist
Azure Service Bus Performance ChecklistSalim M Bhonhariya
 
Use corporate login from mobile applications to access on
Use corporate login from mobile applications to access onUse corporate login from mobile applications to access on
Use corporate login from mobile applications to access onSalim M Bhonhariya
 
Azure to on premise integration
Azure to on premise integrationAzure to on premise integration
Azure to on premise integrationSalim M Bhonhariya
 
Software architect design documentation template
Software architect design documentation templateSoftware architect design documentation template
Software architect design documentation templateSalim M Bhonhariya
 

More from Salim M Bhonhariya (7)

Software Developer’s Project Documentation Template
Software Developer’s Project Documentation TemplateSoftware Developer’s Project Documentation Template
Software Developer’s Project Documentation Template
 
SSO to Office365 using Active Directory Credentials
SSO to Office365 using Active Directory CredentialsSSO to Office365 using Active Directory Credentials
SSO to Office365 using Active Directory Credentials
 
Decide if PhoneGap is for you as your mobile platform selection
Decide if PhoneGap is for you as your mobile platform selectionDecide if PhoneGap is for you as your mobile platform selection
Decide if PhoneGap is for you as your mobile platform selection
 
Azure Service Bus Performance Checklist
Azure Service Bus Performance ChecklistAzure Service Bus Performance Checklist
Azure Service Bus Performance Checklist
 
Use corporate login from mobile applications to access on
Use corporate login from mobile applications to access onUse corporate login from mobile applications to access on
Use corporate login from mobile applications to access on
 
Azure to on premise integration
Azure to on premise integrationAzure to on premise integration
Azure to on premise integration
 
Software architect design documentation template
Software architect design documentation templateSoftware architect design documentation template
Software architect design documentation template
 

Recently uploaded

WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure servicePooja Nehwal
 
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | DelhiFULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhisoniya singh
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slidespraypatel2
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024Rafal Los
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonetsnaman860154
 
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge GraphSIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge GraphNeo4j
 
Key Features Of Token Development (1).pptx
Key  Features Of Token  Development (1).pptxKey  Features Of Token  Development (1).pptx
Key Features Of Token Development (1).pptxLBM Solutions
 
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...HostedbyConfluent
 
Benefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksBenefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksSoftradix Technologies
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationSafe Software
 
Pigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 3652toLead Limited
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxMalak Abu Hammad
 
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024BookNet Canada
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking MenDelhi Call girls
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Patryk Bandurski
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesSinan KOZAK
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Alan Dix
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Allon Mureinik
 

Recently uploaded (20)

WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
 
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | DelhiFULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge GraphSIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
 
Key Features Of Token Development (1).pptx
Key  Features Of Token  Development (1).pptxKey  Features Of Token  Development (1).pptx
Key Features Of Token Development (1).pptx
 
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
 
Benefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksBenefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other Frameworks
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
 
Pigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food Manufacturing
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
 
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen Frames
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)
 

Azure applications performance checklist

  • 1. [TYPE THE COMPANY NAME] Azure Application Performance Guide Need to check matrix Bhonhariya, Salim(Cloud Architect) 1/9/2015 Al rights reserved
  • 2. 1 Contents Event Driver Messaging programming in Receiver side of Service Bus:.......................................................2 Azure Access Control Service (ACS) ..............................................................................................................3 Azure Web Applications and Serialization....................................................................................................5 Physical location of services..........................................................................................................................5 New D-Series of Azure VMs with 60% Faster CPUs, More Memory and Local SSD Disks............................5 Local SSD Disk and SQL Server Buffer Pool Extensions.................................................................................6 Pre-load required data for complex processing ...........................................................................................7 Use batch processing....................................................................................................................................8 Use Asynchronous processing ......................................................................................................................8 SQL Azure Performance:...............................................................................................................................8 Scaling Out: ...............................................................................................................................................8 Setting in SQL Azure:...............................................................................................................................11 Monitoring Azure SQL Database Using Dynamic Management Views...................................................12 Monitoring Connections .....................................................................................................................12 Monitoring Query Performance..........................................................................................................13 Monitoring Blocked Queries...............................................................................................................14 Monitoring Query Plans......................................................................................................................14 Get SQL Profiler info from SQL Azure .................................................................................................14 Analysis Resources and Tools .....................................................................................................................17 Tracing:........................................................................................................................................................17 Coming soon: ..............................................................................................................................................20
  • 3. 2 Event Driver Messaging programming in Receiver side of Service Bus: Instead of polling the queue we’ll be using the new message pump(Push). On receiver side of code. http://fabriccontroller.net/blog/posts/introducing-the-event-driven-message- programming-model-for-the-windows-azure-service-bus/ // Build the messaging options. var eventDrivenMessagingOptions = new OnMessageOptions(); eventDrivenMessagingOptions.AutoComplete = true; eventDrivenMessagingOptions.ExceptionReceived += OnExceptionReceived; eventDrivenMessagingOptions.MaxConcurrentCalls = 5; MaxConcurrentCalls: define how many theads will be processing the queue (for improved performance) Avoid lazy loading of Entity Data for intense processing scenarios If you are not careful while writing Navigational properties, EF will lazy load unnecessary data behind the scenes. For EF entities having relations, there will be chances for a developer to write like this.. public class Customer : { public int CustomerID { get; set; } public int CustomerTypeId{get;set;} //Foreign keyp public virtual CustomerType CustomerType { get; set; } } This is naturally the easiest way, especially if your application need to retrieve “CustomerType: data using Customer entity. If we carefully analyze the above query, each query to Customer object, may cause the EF to lazy load “Customer entity” too. This will have an impact on performance, especially when the data becomes too heavy. In these scenarios, to increase performance, there is a way. Instead of defining “public virtual CustomerType CustomerType” define “public ICollection CustomerType CustomerType”. By using ICollection, EF stops lazy loading. And in queries you can use “Customer” object, and force the EF to use lazy loading by using “Include”
  • 4. 3 ie : var data = Customers.Include("CustomerEntity").ToList(). This will force EF to lazy load. Azure Access Control Service (ACS) The two main factors affecting ACS resource usage, and thus performance, are the token size, and encryption. In general, the key attributes of performance are response time, throughput, and resource utilization. For example, if the application has limited resources such as memory, chances are some information will hit the file system which is much slower than in-memory operations – this will affect overall response time. Here is another example, if the application sends a large amount of data over a network with limited bandwidth, it results in slower than desired response times. One approach to solve performance issues is to add more resources such as network bandwidth, faster CPU, and more memory. This approach may help although not always. Another approach is to improve code so that it uses fewer resources and exchanges less data. Considering the context of claims aware applications and what’s under developer’s control there are a few key factors related to using ACS that affect performance, namely, tokens and cryptographic operations related to the tokens. Token size and encryption are key factors under the developer’s control that affect performance of applications integrated with ACS.  Token Size. Token size affects performance in two ways. First it directly affects performance related to network bandwidth to some degree. The larger the token the more network bandwidth it will take resulting in slower response overall. Second, the larger the token the more CPU cycles required to verify the integrity and extract claims in the token. Token processing includes parsing the token and de-serializing it into binary format so that your code can use it, the processing also includes several cryptography operations such as signature validation, and optionally decryption. The larger the token the more CPU cycles spent on its processing resulting in higher resource utilization and slower overall response. Token size depends on several factors: token format, cryptography applied to the token, and the claims in the token. ACS supports SAML, SWT, and JWT tokens. Generally a SWT or a JWTJWT token is smaller than a SAML token that carries equivalent
  • 5. 4 amount of information. For more information read Token Formats Supported in ACS. There is caveat though, different token formats are optimized for different protocols and application architectures.  SWT Tokens are issued over WS-Federation, WS-Trust, and OAuth WRAP or OAuth 2.0 protocols. This means that SWT tokens can be used in Web applications, WCF (SOAP) services, and WCF (REST) services. WIF does not support the SWT token handler.  SAML Tokens are issued over WS-Trust and WS-Federation protocols. This means that SAML tokens can be used in Web applications and WCF (SOAP) services. WIF supports both SAML 2.0 and SAML 1.1 tokens. Read more about WIF in the following topic Windows Identity Foundation  JWT Tokens are issued over WS-Federation, WS-Trust, and OAuth 2.0 protocols. This means that SWT tokens can be used in Web applications, WCF (SOAP) services, and WCF (REST) services. One factor that contributes most to the token size is the claims contained in the token. The more claims the token carries the larger its size. In most cases claims that come with the token are under developer’s control. The claims used by an application are added, removed, or changed by the Security Token Service (STS) such as AD FS or ACS. ACS uses rule groups and rules to add, remove or change claims in a token. For more information read Rule Groups and Rules.  Encryption. Encryption and other cryptographic operations such as signing, signature validation, and decryption directly affect performance. Cryptography operations consume computation power due to the complex algorithms involved. ACS signs all tokens issued as an integrity measure to counter tampering attacks. Signature validation of tokens is not optional. Token encryption is required if a relying party application is a web service that is not using SSL to encrypt communications. WCF-based services using SOAP require encrypted, proof-of-possession tokens with the WS-Trust protocol. Token encryption is required to protect sensitive information over an unencrypted channel. However, in cases where the communication channel is encrypted, such as using SSL encryption, then using token encryption is optional and may not be applied in favor of improved performance.
  • 6. 5 Azure Web Applications and Serialization When writing applications for Azure, data serialization becomes increasingly important when compared to writing on-premises applications. Azure applications get charged for database use, general storage, data transfers and caching. For more information on pricing see, Azure Pricing Overview. Additionally Azure applications may be used from mobile devices like phones, tablets, etc. and this can introduce latency because of their partially connected nature. All of these factors mean it is very important to think about how your application will send and receive data. Smaller payloads will reduce your costs for bandwidth and storage and may help minimize latency. The best serializer and encoder to use will depend upon your application and its interoperability needs. For scenarios where the service and client are both running under the .NET Framework consider using the binary encoder and the DataContractSerializer. For scenarios where interoperability is required, use the text encoder. In these types of scenarios the DataContractJsonSerializer will provide the smallest representation, but this requires use of a non-SOAP service. If you need to use SOAP, consider using the DataContractSerializer. Physical location of services If possible, co-locate different nodes or application layers within the same data center. Otherwise network latency and cost will be greater. For example, locate the web application in the same data center as the SQL Database instance that it accesses, rather than in a different data center, or on- premises. New D-Series of Azure VMs with 60% Faster CPUs, More Memory and Local SSD Disks (http://weblogs.asp.net/scottgu/new-d-series-of-azure-vms-with-60-faster-cpus- more-memory-and-local-ssd-disks)
  • 7. 6 Today I’m excited to announce that we just released a new set of VM sizes for Microsoft Azure. These VM sizes are now available to be used immediately by every Azure customer. The new D-Series of VMs can be used with both Azure Virtual Machines and Azure Cloud Services. In addition to offering faster vCPUs (approximately 60% faster than our A series) and more memory (up to 112 GB), the new VM sizes also all have a local SSD disk (up to 800 GB) to enable much faster IO reads and writes. The new VM sizes available today include the following: General Purpose D-Series VMs Name vCores Memory (GB) Local SSD Disk (GB) Standard_D1 1 3.5 50 Standard_D2 2 7 100 Standard_D3 4 14 200 Standard_D4 8 28 400 High Memory D-Series VMs Name vCores Memory (GB) Local SSD Disk (GB) Standard_D11 2 14 100 Standard_D12 4 28 200 Standard_D13 8 56 400 Standard_D14 16 112 800 For pricing information, please see Virtual Machine Pricing Details. Local SSD Disk and SQL Server Buffer Pool Extensions A temporary drive on the VMs (D: on Windows, /mnt or /mnt/resource on Linux) is mapped to the local SSDs exposed on the D-Service VMs, and provides a really good option for replicated storage workloads, like MongoDB, or for significantly increasing the performance of SQL Server 2014 by enabling its unique Buffer Pool Extensions (BPE) feature.
  • 8. 7 SQL Server 2014’s Buffer Pool Extensions allows you to extend the SQL Engine Buffer Pool with the memory of local SSD disks to significantly improve the performance of SQL workloads. The Buffer Pool is a global memory resource used to cache data pages for much faster read operations. Without any code changes in your application, you can enable the buffer pool support with the SSDs of the D-Series VMs using a simple T-SQL query with just four lines: ALTER SERVER CONFIGURATION SET BUFFER POOL EXTENSION ON SIZE = <size> [ KB | MB | GB ] FILENAME = 'D:SSDCACHEEXAMPLE.BPE' No code changes are required in your application, and all write operations will continue to be durably persisted in VM drives persisted in Azure Storage. More details on configuring and using BPE can be found here. Pre-load required data for complex processing Typically there may be chances for writing code like given below void Process(){ //Loop stars here var data = DBContext.Customers.ToList(); //Loop ends here } The problem with the above approach is that, each time the loop executes, it will query data from DB. Each time we call the .ToList() method, EF will send underlying SQL queries to db, which makes DB hits more, and in production environment, it will cause significant performance issue. To resolve this, you can follow another approach which is quite simple. Load the data to c# object and manipulate it from that object. Use Linq data manipulation from stored c# objects. SO the modified code will look like this
  • 9. 8 void Process(){ List<object> listData = DBContext.Customers.ToList(); //Initially load the data, so db hit occurs only once. //Loop starting here var data = listData.SelectAl()...; //Loop ending here } ) Use batch processing If you application involved processing of data as well as writing to DB, then you can make use of batch methods, which reduce DB hits Use Asynchronous processing If you try to call a select query to retrieve 10,000 records from an Azure SQL, you would notice that Azure sends “selected data” asynchronously, i.e. first 1000 records, then 1000 records and so on. So for our applications listing/display data scenarios, you can make the application behave asynchronously, makes user experience much greater. SQL Azure Performance: Scaling Out:  The most dramatic performance improvements achievable in Azure applications come from the scaling out and partitioning of resources. Building scalable applications in Azure requires leveraging the scale-out of resources by their physical partitioning: SQL databases, storage, compute nodes, etc. This partitioning enables parallel execution of application tasks, and is thus the basis for high performance, because Azure has the resources of an entire data center available, and handles the physical partitioning for you. To achieve this level of overall performance requires the use of proper scale-out design patterns.
  • 10. 9  Ensuring maximum scalability: deciding whether, and how to partition your data.  Custom Sharding in SQL Azure and Federations in SQL Azure Database  Auto scaling the SQL Azure: By creating more instances of SQL virtual machine (Same as multiple database instance, which is similar to creating more instances of Web role or worker role)  Premium SQL AZURE, set concurrent request can be more than 180.
  • 11. 10
  • 12. 11 Setting in SQL Azure:  Verify to make sure disk Cache is none for high throughput I/0 operations in this case.  Make sure data compression is on, compress table and indexes. That way more data are stored on fewer pages and read I/O operations are faster.  Make sure replication of SQL Azure database is done in same region for minimum latency.  Use SQL file groups across multiple disks instead of disk striping  Put logs, data and backup on separate disks when doing this we have to disable geo-replication on storage account for consistency. Because replication is done asynchronously.  The one storage account IOPS limits are 20,000 times foe 1KB message size in our case it will be 20,000/1kb per message. Only 500 IOPS PER DISK is allowed. If it goes more than that we have to add more storage accounts automatically to avoid throttling in storage account. We should put a storage throttling alert in azure to see up to what IOPS we go to using (http://blogs.msdn.com/b/mast/archive/2014/08/02/how-to-monitor-for- storage-account-throttling.aspx)
  • 13. 12 Monitoring Azure SQL Database Using Dynamic Management Views (http://msdn.microsoft.com/en-us/library/windowsazure/ff394114.aspx) Microsoft Azure SQL Database partially supports three categories of dynamic management views: Database-related dynamic management views. Execution-related dynamic management views. Transaction-related dynamic management views. Monitoring Connections You can use the sys.dm_exec_connections view to retrieve information about the connections established to a specific Azure SQL Database server and the details of
  • 14. 13 each connection. In addition, thesys.dm_exec_sessions view is helpful when retrieving information about all active user connections and internal tasks. The following query retrieves information on the current connection: -- monitor connections SELECT e.connection_id, s.session_id, s.login_name, s.last_request_end_time, s.cpu_time FROM sys.dm_exec_sessions s INNER JOIN sys.dm_exec_connections e ON s.session_id = e.session_id GO Monitoring Query Performance Slow or long running queries can consume significant system resources. This section demonstrates how to use dynamic management views to detect a few common query performance problems. For detailed information, see Troubleshooting Performance Problems in SQL Server 2005 article on Microsoft TechNet. Finding Top N Queries The following example returns information about the top five queries ranked by average CPU time. This example aggregates the queries according to their query hash, so that logically equivalent queries are grouped by their cumulative resource consumption. -- Find top 5queries SELECT TOP 5 query_stats.query_hash AS "Query Hash", SUM(query_stats.total_worker_time) / SUM(query_stats.execution_count) AS "Avg CPU Time", MIN(query_stats.statement_text) AS "Statement Text" FROM (SELECT QS.*, SUBSTRING(ST.text, (QS.statement_start_offset/2) + 1, ((CASE statement_end_offset WHEN -1 THEN DATALENGTH(st.text) ELSE QS.statement_end_offset END - QS.statement_start_offset)/2) + 1) AS statement_text FROM sys.dm_exec_query_stats AS QS CROSS APPLY sys.dm_exec_sql_text(QS.sql_handle) as ST) as query_stats
  • 15. 14 GROUP BY query_stats.query_hash ORDER BY 2 DESC; GO Monitoring Blocked Queries Slow or long-running queries can contribute to excessive resource consumption and be the consequence of blocked queries. The cause of the blocking can be poor application design, bad query plans, the lack of useful indexes, and so on. You can use the sys.dm_tran_locks view to get information about the current locking activity in your Azure SQL Database. For example code, see sys.dm_tran_locks (Transact-SQL)in SQL Server Books Online. Monitoring Query Plans An inefficient query plan also may increase CPU consumption. The following example uses the sys.dm_exec_query_stats view to determine which query uses the most cumulative CPU. -- Monitor query plans SELECT highest_cpu_queries.plan_handle, highest_cpu_queries.total_worker_time, q.dbid, q.objectid, q.number, q.encrypted, q.[text] FROM (SELECT TOP 50 qs.plan_handle, qs.total_worker_time FROM sys.dm_exec_query_stats qs ORDER BY qs.total_worker_time desc) AS highest_cpu_queries CROSS APPLY sys.dm_exec_sql_text(plan_handle) AS q ORDER BY highest_cpu_queries.total_worker_time desc Get SQL Profiler info from SQL Azure (http://blogs.msdn.com/b/benko/archive/2012/05/19/cloudtip-14-how-do-i-get- sql-profiler-info-from-sql-azure.aspx)
  • 16. 15
  • 17. 16
  • 18. 17 Analysis Resources and Tools A number of third-party non-Microsoft tools are available for analyzing Azure performance:  Cerebrata  SQL Server and SQL Database Performance Testing: Enzo SQL Baseline Other Resources  SQL Database Performance and Elasticity Guide  SQL Database  Storage  Networking  Service Bus  Azure Planning - A Post-decision Guide to Integrate Azure in Your Environment Tracing: To see which method is taking time, We can do following: In code in receive worker process and In web.config Configure the azure site for trace logging
  • 19. 18 Then start stream logging service as follows Click on logs, Stream logs and see as below
  • 20. 19 Then run the web site code and it will give us where is the most time it is taking If worker process is crashing, it may cause performance issue, we can find out by the following process:
  • 21. 20 Open evenlog.xml in your event log folder in azure for the app and see why? Click on download file after test and see. Coming soon: Coming soon in preview are a larger maximum database size (the current limit is 500GB), parallel queries (using multiple threads for query optimization) There will also be support for in-memory columnstore queries in the premium version of Azure SQL database. Columnstore indexes are a type of in-memory database, enabling much faster queries at the expense of easy updating. They are
  • 22. 21 therefore suitable for large read-only datasets, such as those used by business analytics.