I guess I have finally found out the reason why this is happen to me. Fragmentation. I am using Deluge as my torrent client and I am using it heavily to download huge torrent. There is a setting call "Pre-allocate disk space" is left uncheck all these while. This result in those huge single file is not store sequential on the hard disk. This impact the read performance. I have put this hypothesis to the test and the result is promising. I download the torrent twice with "Pre-allocate disk space" enabled and disabled. One first test it is enabled and once the torrent downloaded finish. I remove the job from the client ensure that nothing is accessing the file. I was able to achieve a read speed of 200+MB/s for the while transfer of 50GB. I delete everything and move on to the second test. I disable the "Pre-allocate disk space" and download the same torrent once again. This time round my read speed hovering at 100+MB/s. In another word, the option "Pre-allocate disk space" does help to ensure that data is written in sequential manner.