windows - Memory management for intentionally memory intensive applications -


Note: I know about this question, although this question about those applications That's often memory allocation, while information about my question is intentionally designed to secure a lot of physical memory.

I have a server application that uses large amounts of memory to caching and other customizable SQL Server). This application runs on a dedicated machine, and so can use as much memory as possible (and should) / it is able to speed up and increase throughput and increase response time without worrying to affect other applications in the system.

The problem is that if memory usage is lowered, or if the allocation in memory becomes unsuccessful due to failure of the load mistakes - then in this situation clearly The best thing to do to freeze memory is to stop failure at the expense of performance.

Some assumptions:

  • The application is running on a dedicated machine
  • Physical memory on the machine over the memory requirements of the application (i.e., if additional If memory is available for application then it will always be able to use that memory to improve response time or throughput)
  • Memory is one of the ways in which memory fragmentation is not a problem.
  • The application knows how to safely freeze the memory, and at least what memory should be freed for the effect of the display.
  • The app runs on the Windows machine

My question is - How should I manage memory allocation in such an application? Specifically:

  • How can I predict whether memory allocation will fail or not?
  • Do I have to be responsible for the core OS operation (and thus adversely affect the performance of the application) in a certain amount, and how can I know how much memory is?

The main purpose is to prevent failures as a result of using too much memory , while at the same time using as much memory as possible.

I'm a C # developer, though I hope the basic concept for any app is identical regardless of language.

In Linux, memory usage is divided into percent I low levels.

0 - 30% - No swapping 30-60% - Swap dirty pages only 60 - 90% - Swap clear page is also based on LRU policy.

90% - OOM (out of memory) Call the killer and kill the process that takes up the maximum memory.

Check it -

Think that there may be a similar policy in the window, so that you can see the memory status and make sure that you never reach the maximum limit. Get Access

One way to prevent more storage is to go and spend more time to run the memory cleanup thread.


Comments

Popular posts from this blog

oracle - The fastest way to check if some records in a database table? -

php - multilevel menu with multilevel array -

jQuery UI: Datepicker month format -