84669 Lernen von Personen
152542 Lernen von Personen
20005 Lernen von Personen
5487 Lernen von Personen
7821 Lernen von Personen
359900 Lernen von Personen
3350 Lernen von Personen
180660 Lernen von Personen
48569 Lernen von Personen
18603 Lernen von Personen
40936 Lernen von Personen
1549 Lernen von Personen
1183 Lernen von Personen
32909 Lernen von Personen
有两个程序要操作硬盘,一个读,一个写。两个程序不同时运行时,都能达到硬盘的性能上限。180M/s。但当两个程序同时跑起来时,读取速度却大幅下降速度大概只有60M左右。写的速度受影响要小很多平均能到120-160M/s吧。在两个同时抢占硬盘时,有哪些方法去做平衡读写速度的差异?提高读取的速度。
欢迎选择我的课程,让我们一起见证您的进步~~
从硬盘的角度来说,读写访问应该是互斥的,所以是单进程/线程的。
CPU内部有task scheduler调度读写程序,微观上如果两者的优先级相同,且发生频率相同,有可能是写的速度是读的一半左右,所以按照 写-读-写-读 round-robin的时间轮转算法来安排读写程序在CPU中的执行顺序的话,最后写能占有 2/3的CPU/硬盘时间,所以带宽降为2/3左右。
试试看读写程序进行 IPC 进程间通信,通过同步互斥的方式协调两者的执行?
具体还是要看应用场景,读写的数据有没有相关性,发生的频率和profile。
是不是有什么其他的操作阻塞读操作了? 一般对于普通的机械硬盘,读的速度肯定是要快些的。建议检查下在读完数据之后,是否立即处理了,还是有后续的操作可能阻塞了读操作
读写的原理作用我就不说了,建议一下,如果是阿里云的,可以弄一个阿里云的固态硬盘当网站系统,读写那速度比机械硬盘是不能相比的
从硬盘的角度来说,读写访问应该是互斥的,所以是单进程/线程的。
CPU内部有task scheduler调度读写程序,微观上如果两者的优先级相同,且发生频率相同,有可能是写的速度是读的一半左右,所以按照 写-读-写-读 round-robin的时间轮转算法来安排读写程序在CPU中的执行顺序的话,最后写能占有 2/3的CPU/硬盘时间,所以带宽降为2/3左右。
试试看读写程序进行 IPC 进程间通信,通过同步互斥的方式协调两者的执行?
具体还是要看应用场景,读写的数据有没有相关性,发生的频率和profile。
是不是有什么其他的操作阻塞读操作了? 一般对于普通的机械硬盘,读的速度肯定是要快些的。
建议检查下在读完数据之后,是否立即处理了,还是有后续的操作可能阻塞了读操作
读写的原理作用我就不说了,建议一下,如果是阿里云的,可以弄一个阿里云的固态硬盘当网站系统,读写那速度比机械硬盘是不能相比的