How do Run the Spotlight indexer at a lower priority to reduce CPU load on your Mac

From WeatherCat Wiki (Holst)
(Difference between revisions)
Jump to: navigation, search
(Initial creation of draft of this page.)
 
m
Line 2: Line 2:
 
Do '''NOT''' follow this procedure until approved!
 
Do '''NOT''' follow this procedure until approved!
  
OS-X has a built-in file content indexing system called ''Spotlight''.  This system relies upon a system daemon named ''mds''.  That daemon spawns in turn UNIX processes that run invisibly in the background to index files during the time your Macintosh is running.  The ''mds'' daemon is supposed to accomplish this task in such a way as to not interfere with the operations of your computer.  However, there are situations that can fool the ''mds'' daemon into assuming that indexing can be accomplished when it isn't the most convenient.  For example, even if a computer is not being used, it may be in a bedroom and the CPU intensive task of indexing files could turn on the computers fan thus becoming a nuisance.  Many users of WeatherCat run their computers 24/7, as a result the evening and early morning hours provide ample time to accomplish the task of indexing a hard drive.  In that case, it may be desirable to have the ''mds'' daemon work as slowly as it can be configured to.
+
OS-X has a built-in file content indexing system called ''Spotlight''.  This system relies upon a system daemon named ''mds''.  That daemon spawns in turn UNIX processes that run invisibly in the background to index files during the time your Macintosh is running.  The ''mds'' daemon is supposed to accomplish this task in such a way as to not interfere with the operations of your computer.  However, there are situations that can fool the ''mds'' daemon into assuming that indexing can be accomplished when it isn't the most convenient.  For example, even if a computer is not being used, it may be in a bedroom and the CPU intensive task of indexing files could turn on the computers fans - potentially becoming a nuisance.  Many users of WeatherCat run their computers 24/7, as a result, the evening and early morning hours provide ample time to accomplish the task of indexing a hard drive.  In that case, it may be desirable to have the ''mds'' daemon work as slowly as it can be configured to.
  
Early in the existence of UNIX, a system to control the priority of running applications was added.  This system under the UNIX command name: ''nice'' allows for CPU intensive applications to be given lower priority than applications requiring quick response.  OS-X continues to incorporate this feature and various users have found a way to "renice" the ''mds'' daemon to reduce its effect on your computer.  Two possible ways to do this are described here:
+
Early in the existence of UNIX, a system to control the priority of running applications was added.  This system under the UNIX command name: ''nice'' allows for CPU intensive applications to be given lower priority than applications requiring quick response.  OS-X continues to incorporate this feature and various users have found a way to "renice" the ''mds'' daemon to reduce its effect on your computer.  Two possible ways to do this are described in these blog entries:
  
 
* [http://newartisans.com/2008/04/run-the-spotlight-indexer-at-a-lower-priority/ Run the Spotlight indexer at a lower priority]
 
* [http://newartisans.com/2008/04/run-the-spotlight-indexer-at-a-lower-priority/ Run the Spotlight indexer at a lower priority]
Line 15: Line 15:
 
  /System/Library/LaunchDaemons/com.apple.metadata.mds.plist
 
  /System/Library/LaunchDaemons/com.apple.metadata.mds.plist
  
One way to modify this file is to use a free property list editor called [http://www.nightproductions.net/prefsetter.html Pref Setter].  If you have Apple's development environment installed than you can use the Xcode: ''Property List Editor''.  Either tool will work for this procedure.
+
One way to modify this file is to use a free property list editor called [http://www.nightproductions.net/prefsetter.html ''Pref Setter''].  If you have Apple's development environment installed than you can use the Xcode: ''Property List Editor''.  Either tool will work for this procedure.
  
 
To start, you should make two copies of the ''com.apple.metadata.mds.plist'' file - one to modify and one as a backup in case you run into a problem.  To do this, you will need to use the ''Terminal'' application.  Enter the following 3 commands one after the other:
 
To start, you should make two copies of the ''com.apple.metadata.mds.plist'' file - one to modify and one as a backup in case you run into a problem.  To do this, you will need to use the ''Terminal'' application.  Enter the following 3 commands one after the other:
Line 53: Line 53:
 
  sudo mv ~/com.apple.metadata.mds.plist /System/Library/LaunchDaemons/com.apple.metadata.mds.plist
 
  sudo mv ~/com.apple.metadata.mds.plist /System/Library/LaunchDaemons/com.apple.metadata.mds.plist
  
You will be asked to supply your Mac administrator's password.  Once this is done you can restart your Mac and you should see that the ''mds'' process uses less of your computers resources.  Should you have any problems, copy the backup copy of the ''com.apple.metadata.mds.plist'' that you had kept to your home folder and once more use the terminal command above to move that version into the correct location.  Once again, by rebooting you will return to the condition you were before making any modifications.   
+
You will be asked to supply your Mac administrator's password.  Once this is done you can restart your Mac and you should see that the ''mds'' process uses less of your computer's resources.  Should you have any problems, copy the backup copy of the ''com.apple.metadata.mds.plist'' that you had kept to your home folder and once more use the terminal command above to move that version into the correct location.  Once again, by rebooting you will return to the condition you were before making any modifications.   
  
 
As noted this procedure requires meticulous precision.  However, if you follow this procedure to the letter, you shouldn't have any difficulties with this modification.
 
As noted this procedure requires meticulous precision.  However, if you follow this procedure to the letter, you shouldn't have any difficulties with this modification.

Revision as of 00:32, 21 January 2014

Draft document!! Do NOT follow this procedure until approved!

OS-X has a built-in file content indexing system called Spotlight. This system relies upon a system daemon named mds. That daemon spawns in turn UNIX processes that run invisibly in the background to index files during the time your Macintosh is running. The mds daemon is supposed to accomplish this task in such a way as to not interfere with the operations of your computer. However, there are situations that can fool the mds daemon into assuming that indexing can be accomplished when it isn't the most convenient. For example, even if a computer is not being used, it may be in a bedroom and the CPU intensive task of indexing files could turn on the computers fans - potentially becoming a nuisance. Many users of WeatherCat run their computers 24/7, as a result, the evening and early morning hours provide ample time to accomplish the task of indexing a hard drive. In that case, it may be desirable to have the mds daemon work as slowly as it can be configured to.

Early in the existence of UNIX, a system to control the priority of running applications was added. This system under the UNIX command name: nice allows for CPU intensive applications to be given lower priority than applications requiring quick response. OS-X continues to incorporate this feature and various users have found a way to "renice" the mds daemon to reduce its effect on your computer. Two possible ways to do this are described in these blog entries:

The procedure below is a conservative composite of the two blog entries above. While there is nothing extremely dangerous in following this procedure, it is modifying your system. Therefore extra caution is advised. System backups are always recommended beyond the backup proposed in this procedure.

What is required is to modify a file in your system called: com.apple.metadata.mds.plist. The complete UNIX path to this file is:

/System/Library/LaunchDaemons/com.apple.metadata.mds.plist

One way to modify this file is to use a free property list editor called Pref Setter. If you have Apple's development environment installed than you can use the Xcode: Property List Editor. Either tool will work for this procedure.

To start, you should make two copies of the com.apple.metadata.mds.plist file - one to modify and one as a backup in case you run into a problem. To do this, you will need to use the Terminal application. Enter the following 3 commands one after the other:

cd
cp /System/Library/LaunchDaemons/com.apple.metadata.mds.plist ~
cp /System/Library/LaunchDaemons/com.apple.metadata.mds.plist ~/Desktop

The last command will put a copy of the com.apple.metadata.mds.plist file on your desktop so you may move it to any safe place as your backup version.

Now launch either Pref Setter or Property List Editor and open the copy of the com.apple.metadata.mds.plist in your home folder. It will look something like this:

Original com.apple.metadata.mds.plist.png

You will now need to add two keys. To do this use the gear menu at the top of Pref Setter application. The first new key you need to create has the name: LowPriorityIO. Keys are like computer language variable types. They hold a type of data and then are set to a particular value. The key LowPriorityIO is a boolean type key and it should have the value of true. The second key you need to create has the name Nice and is of type integer. You need to set this key to the value 20. When you are completed you should have something that looks like this in Pref Setter:

Prefs Setter version of mds plist.png

Here is the same modified com.apple.metadata.mds.plist file as it appears in Apple's Property List Editor:

Xcode Property list editor.png

Once you are satisfied that you have correctly made these modifications, save the modified file.

Now as a precaution, run the following command in your terminal session:

open ~/com.apple.metadata.mds.plist

This will open a TextEdit window that should look something like this:

TextEdit version of com.apple.metadata.mds.plist.png

The order of the elements may vary, but the each part should be as they are shown.

Once you are satisfied that you have a correctly modified file, you can install the file and restart your Macinotsh. Installing the modified file can be done with this terminal command:

sudo mv ~/com.apple.metadata.mds.plist /System/Library/LaunchDaemons/com.apple.metadata.mds.plist

You will be asked to supply your Mac administrator's password. Once this is done you can restart your Mac and you should see that the mds process uses less of your computer's resources. Should you have any problems, copy the backup copy of the com.apple.metadata.mds.plist that you had kept to your home folder and once more use the terminal command above to move that version into the correct location. Once again, by rebooting you will return to the condition you were before making any modifications.

As noted this procedure requires meticulous precision. However, if you follow this procedure to the letter, you shouldn't have any difficulties with this modification.

Personal tools
Namespaces

Variants
Actions
Navigation
Tools