Joel Oleson had some great suggestions for increasing SharePoint Index performance. A lot of these go for your farm performance in general.
There are at least two that would not have occurred to me, make sure you take a look:
- Put your Search db and on separate disks transaction logs, both the fastest most optimized disks with fast optimized spindles for writing (dedicated disks are essential)
- Optimize your temp db: grow it, give it space, you can even split it into multiple dbs and ensure it is on the most optimized disks (dedicated disks are essential). Don't forget to optimize the transaction logs of the temp db either!
- Optimize the network between the servers you are indexing and the index server (GB NIC speed is preferred within a farm)
- Consider topology changes to optimize network throughput and eliminate double hops.
- Increase the your RAM on your x64 SQL Servers (8 GB is really a good place to start, 16 GB or more is looking better and better.)
- Defragment your databases, and applicable drives (if fragmented) and run relevant dbcc consistency checks – Refer to KB on SharePoint Safe DBCC commands
- Increase the # of crawl threads (you'll have to watch this, it is the easiest way to speed up your crawls, but watch the box it is "attacking" it can be heavy handed.)
- Reduce the maximum index file size (optional)
- Remove any unused, single threaded and poor performing ifilters
- Reduce the amount of full indexes, run incremental crawls on a schedule where they can complete, and remove non essentials such as every 5 minute incremental jobs these will simply cause unnecessary churn.