Resolving IntelliMemory Memory Problems in Diskeeper and SSDkeeper
After installation, SSDkeeper noticed a very strange picture - after some time, the amount of available memory is noticeably reduced. With a standard set of constantly running applications (browsers, torrent and DC ++ client), about half of 16GB remains.
The task manager did not give an answer to the question about a memory leak, so the next diagnostic utility was RamMap:

The screenshot shows the status of the system after fixing the problem, previously Nonpaged Pool occupied about 4-6GB.
Next, I needed the Poolmon program:

When sorting by the Bytes (
To find its name by tag, you can use the findstr command:

The command searches for the string "CTNP", looking at the contents of all files with the extension .sys in the specified directory.
Knowing the name of the driver file, you can find it in the standard registry editor.
Search tcesd.sys, the search branch is HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet. First of all, the \ services \ section is of interest

Fortunately, the developers took care of the fine-tuning, but for some reason they forgot to put at least the minimum number of them in the program interface, where the IntelliMemory control is present only in the form of on / off.
This was a very bad move, because 20-40% of the memory is a very high price for a defragmenter + optimizer for reading / writing to disk.
Using Nonpaged Pool suggests that the memory will not be freed up by the OS, and if it is not enough, a message pops up about the need to close unnecessary programs.
The problem is quite common and many disable this feature, or even delete the program.
You can set a limit on memory consumption by editing the specified registry settings manually, or create a file with the following contents, change its extension to .reg and run it.
The two upper parameters describe the upper limit - no more than 1GB or 10% of the memory.
The two lower parameters describe the minimum state - 32MB and 1% of the system memory.
Important : Before making changes, you must either boot in safe mode or stop the main SSDkeeper / Diskeeper service through the services.msc snap-in, otherwise the parameters will be reset again after rebooting.
It also helps to make a backup of the registry branch before the changes by exporting the entire \ tcesd \

Over a week of working with the program, I came to the conclusion that the optimal value is in the range of 512-1024MB, unless of course the computer is used as a file server, but even if you put only 256MB, the benefit will still be compared to a complete shutdown, which is advised on the Internet .
According to statistics from the main page of the program:
- with IntelliMemory disabled, the optimization according to Read I / O is 8%.
- at 256-512Mb it increased to 12%.
- at 512-1024 Mb - up to 14%.
The task manager did not give an answer to the question about a memory leak, so the next diagnostic utility was RamMap:

The screenshot shows the status of the system after fixing the problem, previously Nonpaged Pool occupied about 4-6GB.
Next, I needed the Poolmon program:

When sorting by the Bytes (
poolmon -b
) field , the driver with the CTNP tag appeared at the top of the list. Previously, the value was in the region of 3-4GB. To find its name by tag, you can use the findstr command:
findstr /s CTNP C:\windows\system32\drivers\*.sys

The command searches for the string "CTNP", looking at the contents of all files with the extension .sys in the specified directory.
Knowing the name of the driver file, you can find it in the standard registry editor.
Search tcesd.sys, the search branch is HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet. First of all, the \ services \ section is of interest

Fortunately, the developers took care of the fine-tuning, but for some reason they forgot to put at least the minimum number of them in the program interface, where the IntelliMemory control is present only in the form of on / off.
This was a very bad move, because 20-40% of the memory is a very high price for a defragmenter + optimizer for reading / writing to disk.
Using Nonpaged Pool suggests that the memory will not be freed up by the OS, and if it is not enough, a message pops up about the need to close unnecessary programs.
The problem is quite common and many disable this feature, or even delete the program.
Decision:
You can set a limit on memory consumption by editing the specified registry settings manually, or create a file with the following contents, change its extension to .reg and run it.
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\tcesd\Params]
"MaxMemSizeMB"=dword:00000400
"MaxMemUsagePct"=dword:0000000a
"MinMemSizeMB"=dword:00000020
"MinMemUsagePct"=dword:00000001
The two upper parameters describe the upper limit - no more than 1GB or 10% of the memory.
The two lower parameters describe the minimum state - 32MB and 1% of the system memory.
Important : Before making changes, you must either boot in safe mode or stop the main SSDkeeper / Diskeeper service through the services.msc snap-in, otherwise the parameters will be reset again after rebooting.
It also helps to make a backup of the registry branch before the changes by exporting the entire \ tcesd \
Results:

Over a week of working with the program, I came to the conclusion that the optimal value is in the range of 512-1024MB, unless of course the computer is used as a file server, but even if you put only 256MB, the benefit will still be compared to a complete shutdown, which is advised on the Internet .
According to statistics from the main page of the program:
- with IntelliMemory disabled, the optimization according to Read I / O is 8%.
- at 256-512Mb it increased to 12%.
- at 512-1024 Mb - up to 14%.