deadline: The deadline scheduler assigns an expiration time to every request and the request is processed when it reaches to its given expiration time, thus provides a specific amount of time to each request. The deadline scheduler is good for the systems getting a lot of small read request provided the requests are for the data block close to each other on the disk. In case if the requests are for data blocks far from each other on disk then deadline scheduler may increase the latency.
as : The anticipatory scheduler waits for sometime after servicing an I/O requests and before serving the next request, giving time to the first request as it might give next I/O request for the next block of data on disk. The anticipatory scheduler is beneficial when you have a single application frequently requesting for lot of reads.
The disadvantage of anticipatory scheduler is that, it may cause a overall delay if your application is interrupted by external requests.
cfq : The cfq (completely fair queuing) scheduler equally divides all I/O bandwidth among all processes issuing I/O requests. The cfq scheduler is good for systems with multiple I/O controllers, scsi/iscsi connections like LUNs.
noop : The noop scheduler puts requests into a unordered queue and they are processed in a FIFO(first in first out) order. The noop scheduler is good where I/O performance is done by a host bus adapter, or a external disk controller.