Content indexing can use a lot of RAM if not configured correctly.
Suggestion to calculate the size of all relevant files (query= c:\tools;x:\folder ext:pdf;txt ) and report this:
"content indexing will use approximately x GB RAM. Your system has y GB RAM available."
(or similar)
Will never be 100% accurate (docx is zipped, for example), but to prevent overcommitting memory
Suggestion: content indexing check
Re: Suggestion: content indexing check
It's tricky to determine as Everything is multi-threaded.
Each thread could potentially allocate gigabytes of memory for content searching.
However, Everything will avoid using more than 50% of total memory.
If more than 50% of total memory has been allocated by all active content searches, a new content search will block until memory is released from another content search thread.
To customize this 50% limit, set the ini setting: content_multithreaded_max_memory_percent
To customize the maximum number of content search threads, set the ini setting: content_max_threads
To limit the size of files to content search, include the following in your search: size:<100mb
I may have to reduce the default value for content_multithreaded_max_memory_percent, as there is probably a lot of memory overhead with the pdf iFilter and you might actually see allocation over 100% of total memory.
Each thread could potentially allocate gigabytes of memory for content searching.
However, Everything will avoid using more than 50% of total memory.
If more than 50% of total memory has been allocated by all active content searches, a new content search will block until memory is released from another content search thread.
To customize this 50% limit, set the ini setting: content_multithreaded_max_memory_percent
To customize the maximum number of content search threads, set the ini setting: content_max_threads
To limit the size of files to content search, include the following in your search: size:<100mb
I may have to reduce the default value for content_multithreaded_max_memory_percent, as there is probably a lot of memory overhead with the pdf iFilter and you might actually see allocation over 100% of total memory.
Re: Suggestion: content indexing check
what I meant was not about content searching/indexing, but about the end result. Content indexing 10GB of plain-text files will in the end add roughly 10GB to the size of the database and thus to the size of the database in RAM (ball-park numbers, of course).
When the system has 8GB RAM installed, you can predict that this is going to be an issue.
A query c:\folder ext:txt could quickly indicate the expected grow in database size.
That check can be done when OK/ Apply is pressed.
When the system has 8GB RAM installed, you can predict that this is going to be an issue.
A query c:\folder ext:txt could quickly indicate the expected grow in database size.
That check can be done when OK/ Apply is pressed.
Re: Suggestion: content indexing check
Sorry, I misread content indexing as content searching..
Showing the total indexed size in the Content options page would be useful.
I'll put this on my TODO list.
This size would grow as content is indexed so you could keep a eye on the total size while content indexing takes place in the background.
If this size exceeds 100% of your total RAM a warning icon and text could be shown.
Thanks for the suggestion.
For now, Everything will include the total indexed content size in Tools -> Options -> Debug -> Statistics -> File data size.
Showing the total indexed size in the Content options page would be useful.
I'll put this on my TODO list.
This size would grow as content is indexed so you could keep a eye on the total size while content indexing takes place in the background.
If this size exceeds 100% of your total RAM a warning icon and text could be shown.
Thanks for the suggestion.
For now, Everything will include the total indexed content size in Tools -> Options -> Debug -> Statistics -> File data size.
Re: Suggestion: content indexing check
That could be useful too.
What I meant was as a preemptive measure:
That will not help when after configuration, someone copies 30GB of text files to C:\folder, but might prevent a lot of iniial mistakes.
What I meant was as a preemptive measure:
- Suppose you have 8GB RAM in your system.
- And you configured
- Include only folders: = C:\folder
- Include only files: = *.txt - And press the Apply button to activate this configuration
- Before starting the content indexing, do the following search query in Everything:
c:\folder ext:txt - That query reveals that there are 10GB worth of textfiles in C:\folder
- Issue a warning message: "content indexing using these setting will require approximately 10GB of RAM. Your system has 8GB installed (3GB available)
That will not help when after configuration, someone copies 30GB of text files to C:\folder, but might prevent a lot of iniial mistakes.
Re: Suggestion: content indexing check
I always thought that RAM referred to real (hardware memory), where just "memory" referred to virtual memory --
Real memory does not limit Everything capacity, virtual memory does. On a 64-bit Windows system you can set virtual memory as high as you have available disk space for paging, or the system might, if you have enough free space on your disks.
I have a 16GB RAM system, but I just built a 406GB Everything database by indexing lots of content, with 450 GB allocated to Windows paging.
@Void:
1. On disk It is not 406GB as shown by the statistics screen, it is smaller. Is the DB compressed (that options is no longer in the UI)?
2. If there is not enough space to write the DB when everything exits, it just goes away with no indication that it failed.
- that looks like a real memory specification.Suppose you have 8GB RAM in your system.
Real memory does not limit Everything capacity, virtual memory does. On a 64-bit Windows system you can set virtual memory as high as you have available disk space for paging, or the system might, if you have enough free space on your disks.
I have a 16GB RAM system, but I just built a 406GB Everything database by indexing lots of content, with 450 GB allocated to Windows paging.
@Void:
1. On disk It is not 406GB as shown by the statistics screen, it is smaller. Is the DB compressed (that options is no longer in the UI)?
2. If there is not enough space to write the DB when everything exits, it just goes away with no indication that it failed.
Re: Suggestion: content indexing check
If Everything's database does no longer fit in RAM, it will have to use virtual memory. Swapping to disk and getting the pages back to RAM will be relatively slow.
Note:
Due to the nature of the Everything database (that is: what I think I know about the inner workings), that might also give a lot of writes to disk, to the point that it might wear out an SSD fast.
Note:
Due to the nature of the Everything database (that is: what I think I know about the inner workings), that might also give a lot of writes to disk, to the point that it might wear out an SSD fast.
Re: Suggestion: content indexing check
As you said, it's tricky know the size for pdf/docs without reading the content.What I meant was as a preemptive measure:
What about showing a warning in the status bar when the total indexed content size exceeds your total RAM size?
I do not recommend using Everything to index more content than 50% of your total RAM.I have a 16GB RAM system, but I just built a 406GB Everything database by indexing lots of content, with 450 GB allocated to Windows paging.
As soon as Everything states paging you will have horrible system performance issues.
You would be better of just content searching directly from disk.
Everything is designed to index at most a couple 100MB of text for when you really want instant content searching.
Content searching directly on SSDs is very fast.
Content searching directly on NVMe SSDs is extremely fast.
This option was removed because when enabled it would just hurt saving and loading performance for minimal compression on disk.1. On disk It is not 406GB as shown by the statistics screen, it is smaller. Is the DB compressed (that options is no longer in the UI)?
Everything 1.5 does use some compression when storing to disk, so the DB size on disk should be smaller than the memory used by Everything.
I'll consider showing an error when this occurs.2. If there is not enough space to write the DB when everything exits, it just goes away with no indication that it failed.
The next time you start Everything it will detect the incomplete database and rebuild a fresh one.