Azure function Linux consumption plan bitness - azure

I couldn't find the bitness of Azure Function when running on an Linux Consumption Service Plan. Is it x64? Where can I get this info?

You can check the bit you are using by navigating to the details below by using below link:
https://resources.azure.com/
Firstly, Find your function app
Then Click on config
Then click on web
You will be able to find the property "use32BitWorkerProcess": false
If it set to false then it means it is 64 bit. In case it is true then it will be 32 bit
As per the test at my end Linux Consumption Service Plan is 32 bit
But it may vary, depending on what language we have selected.

Related

How to get memory dump on Azure Functions on Linux plan

On Windows plan there is an option to take a memory dump:
However, this option is missing on Linux plan:
The option which is available for App Services on Linux is not available for Azure Functions on Linux.
Is there a way to get memory dumps for Azure Functions on Linux?
Is there a way to get memory dumps for Azure Functions on Linux?
After researching in my local environment came to a conclusion that we can't take memory dump in Azure Functions with the Linux platform.
And as per the below mentioned answer from Microsoft and many other documents provides only information about memory dump with Windows Platform.
So, I would even suggest you raise a feature request so that it would be helpful for the other members with related issue.

Wildcards in counter specifiers in Azure Diagnostic

What I am trying to achieve is similar to what you can see in mongo-azure repo, specifically, I want to write Azure Diagnostic Configuration File in such a way so that I can get all the instances of performance counters, for example
\Processor(*)\% Processor Time
and it doesn't seem to be working - no data is visible in the table in my storage account.
Is it achievable at all with configuration, and if so, how?
UPD: We were able to get this working for a simple single VM (so it is possible!), but for some reason it still doesn't work for VMs in VMSS where Service Fabric Cluster is running
UPD #2: We did upgrade to VS 2015 tools 1.5 and now it magically works. I am not really sure if that was the root cause problem or we screwed up anywhere else.
Is it achievable at all with configuration, and if so, how?
Based on the documentation here, it seems it is not possible. From this link:
Performance counters available for Microsoft Azure
Azure provides a subset of the performance counters available for
Windows Server, IIS and the ASP.NET stack. The following table lists
some of the performance counters of particular interest for Azure
applications.
Table that follows below only includes Processor(_Total).
This is possible. We do this in CloudMonix when monitoring VMSS and it is working.
How are you instrumenting Diagnostics and which tables are you looking at?
Specifying \LogicalDisk(*)\Available Megabytes yileds all drives and their free space, for example

Is there any difference between "Platform 32-bit" or "Platform 64-bit" for Azure Functions?

When I create Azure Functions, it will set "Platform 32-bit" for default. However I normally set ASP.NET MVC, OWIN or any other projects as 64bit.
Platform 32-bit for default
I'm wondering with "What the difference with 32-bit or 64-bit for Azure Functions"?
I guess this effects with NuGet Package reference and Memory allocation. However as Azure Functions can only available to assign up to 1536 MB, therefore 32-bit or 64-bit would be no effects at all.
Is there any definite reason or recommendation to set 64-bit?
Any advice will be very much appreciated.
I would not suggest switching the Functions worker process to 64 bit. It will not run any better, and the memory usage will end up being higher (as it always is for 64 bit). Also, at this point Functions has only been tested in 32 bit mode so you may run into some unexpected issues in 64 bit.
Update (2/6/2017): see this question for latest, as well as https://github.com/projectkudu/AzureFunctionsPortal/issues/894.

What is the Azure equivalent of AWS Lambda?

At the moment we are running our application on an AWS Beanstalk but are trying to determine the suitablilty of Azure.
Our biggest issue is the amount of wasted CPU time we are paying for but not using. We are running on t2.small instances as these have the min amount of RAM we need but we never use even the base amount of CPU time allotted. (20% for a t2.small ) We need lots of CPU power during short bursts of the day and bringing more instances on line in advance of this is the only way we can handle it.
AWS Lambda looks a good solution for us but we have dependencies on Windows components like SAPI so we have to run inside of Windows VMs.
Looking at Azure cloud services we thought using a Web role would be best fit for our app but it seems a Web role is nothing more than a Win 2012 VM with IIS enabled. So as the app scales it just brings on more of these VMs which is exactly what we have at the moment. Does Azure have a service similar to Lambda where you just pay for the CPU processing time you use?
The reason for our inefficient use of CPU resources is that our speech generation app uses lost of 3rd party voices but can only run single threaded when calling into SAPI because the voice engine is prone to crashing when multithreading. We have no control over this voice engine. It must have access to a system registry and Windows SAPI so the ideal solution is to somehow wrap all dependencies is a package and deploy this onto Azure and then kick off multiple instances of this. What "this" is I have no Idea
Microsoft just announced a new serverless compute service as an alternative to AWS Lambda, called Azure Functions:
https://azure.microsoft.com/en-us/services/functions/
http://www.zdnet.com/article/microsoft-releases-preview-of-new-azure-serverless-compute-service-to-take-on-aws-lambda/
With Azure Functions you only pay for what you use with compute metered to the nearest 100ms at Per/GB price based on the time your function runs and the memory size of the function space you choose. Function space size can range from 128mb to 1536mb. With the first 400k GB/Sec free.
Azure Function requests are charged per million requests, with the first 1 million requests free.
Based on the documentation on Azure website here: https://azure.microsoft.com/en-in/campaigns/azure-vs-aws/mapping/, the services equivalent to AWS Lambda are Web Jobs and Logic Apps.
The most direct equivalent of Lambda on Azure is Azure Automation which does a lot of what Lambda does except it runs Powershell instead of Node etc. It isn't as tightly integrated into other services like Lambda is, but it has the same model. i.e. you write a script, and it is executed on demand.
I presume by SAPI you are refering to the speech API? If so you can create Powershell modules for Azure, and they can include dll files. In which case you could create a module to wrap around the SAPI dll, and that should do what you are looking for.
If you want a full compute environment, without the complexity of multiple machines when you run. You could use Azure Batch which would be the Azure recommended way of running what you are looking for.
The cost benefit you need to evaluate would be how much quicker your solution would run against a native .net stack (in batch), and if performance is significantly degraded when run from Powershell.
Personally I would give Automation a try, it is surprisingly powerful.
There is something called "Cloud Service" in azure which allows you to run code on a pure VM. Scaling options on these include such things as CPU%, queue size, etc. If you can schedule your needs, Azure allows you to easily set up a scheduled scaler, i.e. 4 VM's from 8AM until 08:10AM, and of course, in Azure, you pay by the minute, so it could be a feasible solution.
I'd say more, but the documentation in Azure is really so great that I'd be offending them by offering my "translation" here. Checkout azure.com for more info :)

Analyze web service performance: simultaneous 32 and 64 bit targets

I am trying to analyze the performance of a web service project, by running it through WcfTestClient.exe. I have both that exe and the web service project set as targets in a performance analysis session. The exe is set as launch, but not to collect samples. The project is set to collect samples, but not as launch.
Unfortunately, when I try to start the session, I get an error that reads "Profiling 64-bit processes is not supported by this version of the profiling tools. Please use the profiling tools from the x64 directory." What I assume is happening is that the session starts by starting up WcfTestClient.exe, which is a 32 bit application. Because of that, it starts up the 32 bit version of the profiling tools. But my web service project is 64 bit, so when it reaches that point it throws that error since the 32 bit tools can't profile it.
Is there some way to force the session to use the 64 bit tools? Or perhaps there's a 64 bit version of the wcf test client?
Also before anybody calls me on this: I posted about this on the MSDN forums, and got a fairly useless non-answer here: http://social.msdn.microsoft.com/Forums/en-US/vstsprofiler/thread/ff54e1fc-b9fb-47d4-9e9f-a3c552a6f242

Resources