[Solved] ..._volume_multithreaded

Discussion related to "Everything" 1.5.
Post Reply
w64bit
Posts: 338
Joined: Wed Jan 09, 2013 9:06 am

[Solved] ..._volume_multithreaded

Post by w64bit »

What is the meaning of ..._volume_multithreaded?
Last edited by w64bit on Fri Jan 21, 2022 3:31 pm, edited 1 time in total.
void
Developer
Posts: 19773
Joined: Fri Oct 16, 2009 11:31 pm

Re: ..._volume_multithreaded

Post by void »

This setting controls how many threads Everything will use to create the initial index.
This setting controls how many threads Everything will use to read properties and content for a volume.

..._volume_multithreaded can be one of the following values:
  • 0 = use recommended (default)
  • 1 = separate device thread
  • 2 = multiple threads
  • 3 = disabled
0 is the default, the following will determine how many threads Everything will use:
  • if the volume does not "incur a seek penalty" (eg: an SSD) and /no_incur_seek_penalty_multithreaded is enabled (see below) Everything will use multiple threads to read properties and content on this device.
  • if /separate_device_thread is enabled (see below) Everything will use a separate device thread (A device can contain multiple volumes)
  • Otherwise, do not use multiple threads.
In other words, Everything will use a separate thread for each device in your index by default.

When indexing, Everything will only use a maximum of one thread per device.



separate_device_thread

separate_device_thread is enabled by default.

To disable separate device threads:
  • Type in the following search and press ENTER:
    /separate_device_thread=0
    where 1 is enabled (default) and 0 is disabled.
    If successful, you should see separate_device_thread=0 in the status bar for a few seconds.
  • Type in the following search and press ENTER:
    /restart
    This might be necessary if Everything is seeing a physical device (eg: a HDD) as multiple devices.


no_incur_seek_penalty_multithreaded

no_incur_seek_penalty_multithreaded is disabled by default.

If you have a NVMe SSD, consider enabling multi-threaded access to the device:
  • Type in the following search and press ENTER:
    /no_incur_seek_penalty_multithreaded=1
    where 1 is enabled and 0 is disabled (default)
    If successful, you should see no_incur_seek_penalty_multithreaded=1 in the status bar for a few seconds.
  • Type in the following search and press ENTER:
    /restart
    This can improve reading property and content performance by up to 100% for each additional logical processor in your system.
Enabling no_incur_seek_penalty_multithreaded is very demanding on the system.
Expect high RAM usage, high CPU usage and high disk IO when reading properties and content.
Most NVMe SSDs can read at 3000MB/s, with /no_incur_seek_penalty_multithreaded enabled, you should see Everything read properties and content at these speeds.

Enabling no_incur_seek_penalty_multithreaded can also increase reading property and content performance for normal SSDs.



How to check if Everything is using multiple threads for each volume
  • In Everything, from the Tools menu, under the Debug submenu, click Statistics.
  • The current Multithreaded: value is listed for each volume.


content_max_threads

When multi-threading is enabled, Everything will use a thread on each logical CPU to read properties and content.

To limit the number of threads Everything uses when reading properties and content:
  • In Everything, type in the following search and press ENTER:
    /content_max_threads=x
    where x is the maximum number of threads to use.
    0 = unlimited (default)
void
Developer
Posts: 19773
Joined: Fri Oct 16, 2009 11:31 pm

Re: [Solved] ..._volume_multithreaded

Post by void »

Everything 1.5.0.1413b will now forcefully use a unique device thread when setting the threading to separate device thread.
(Instead of sharing the thread with devices that have the same device index).



How to check if Everything is using multiple threads for each volume:
  • In Everything, from the Tools menu, under the Debug submenu, click Statistics.
  • The current Multithreaded: value is listed for each volume.
To check the device index:
  • In Everything, from the Tools menu, under the Debug submenu, click Statistics.
  • The current device index value is listed for each volume.
  • Shared device index values will use the same thread by default.
  • Setting the volume threading mode to separate device thread will enforce a unique device index.
GSD
Posts: 51
Joined: Fri Apr 28, 2023 12:59 pm

Re: [Solved] ..._volume_multithreaded

Post by GSD »

What is the recommendation for samba network drives? Would multi-threading do more harm than good in that case?
void
Developer
Posts: 19773
Joined: Fri Oct 16, 2009 11:31 pm

Re: [Solved] ..._volume_multithreaded

Post by void »

Depends on the underlying hardware.

For spinning disks, try manually setting separate device thread.
It should speed up indexing performance a little because the bottleneck is typically network bandwidth and the Windows API overhead.

Avoid multithreading of spinning disks. Using multithreading on spinning disk would make indexing slower overall.

For SSDs drives go ahead an enable multiple threads for samba network drives.



To clarify the changes in 1413:
The default behavior has not changed.
The default behavior is to use separate device thread.
Volumes with the same device index will share the same thread.
The change in 1413 allows you to override this behavior by manually setting the threading mode to separate device thread (instead of "Use Default") to forcefully use a unique device index.
A separate thread will then be used for each volume / samba share.
GSD
Posts: 51
Joined: Fri Apr 28, 2023 12:59 pm

Re: [Solved] ..._volume_multithreaded

Post by GSD »

void wrote: Wed May 20, 2026 1:03 am Depends on the underlying hardware.

For spinning disks, try manually setting separate device thread.
It should speed up indexing performance a little because the bottleneck is typically network bandwidth and the Windows API overhead.

Avoid multithreading of spinning disks. Using multithreading on spinning disk would make indexing slower overall.

For SSDs drives go ahead an enable multiple threads for samba network drives.
Got it, thank you! It's a spinning disk, so I'll be sticking with the default behavior.
void wrote: Wed May 20, 2026 1:03 am To clarify the changes in 1413:
The default behavior has not changed.
The default behavior is to use separate device thread.
Volumes with the same device index will share the same thread.
The change in 1413 allows you to override this behavior by manually setting the threading mode to separate device thread (instead of "Use Default") to forcefully use a unique device index.
A separate thread will then be used for each volume / samba share.
I'm sorry, but I'm failing to grasp this. I probably need another coffee, but this read to me like 1413 allows enforcing... the default behavior? If so, when would one need to do that?
void
Developer
Posts: 19773
Joined: Fri Oct 16, 2009 11:31 pm

Re: [Solved] ..._volume_multithreaded

Post by void »

There's a difference between (Use Default) and Separate Device Thread

Typically (Use Default) will fallback to Separate Device Thread.
However, the (Use Default) - Separate Device Thread fallback can treat multiple volumes as the same device.

Manually setting Separate Device Thread will force Everything to use a separate thread for that volume.
Even when the volume is shared with another volume on the same device.

I'll rename the setting option "Separate Device Thread" to "Separate Volume Thread" in the next update:
Separate Volume Thread == a single thread for this volume.
Separate Device Thread == a single thread for all volumes on this device.
(Use Default) will still fall back to Separate Device Thread. (and multiple threads for SSDs)
Post Reply