真实的故事 CPU MEMORY Copy 1: Web server application Server buffer 硬盘→文件缓冲区 Writen (内核空间) Kernel TCP/IP File system Socket buffe Copy 2 Copy 2 File cache buffer *文件缓冲区→应用缓 冲区(用户空间) MEMORY BUS Copy 3: Copy 4 s*应用缓冲区>套接字 缓冲区(内核空间) I/O BUS NETWORK ADAPTOR 幸Copy4: Network *套接字缓冲区→网卡 FIGURE 5.2 Redundant copies involved in handling a GET request at a server. TCP程序还需要扫描一遍 数据,计算TCP检查和
一个真实的故事 Copy 1: 硬盘→文件缓冲区 (内核空间) Copy 2: 文件缓冲区→应用缓 冲区 (用户空间) Copy 3: 应用缓冲区→套接字 缓冲区(内核空间) Copy 4: 套接字缓冲区→网卡 TCP程序还需要扫描一遍 数据,计算TCP检查和
资源消耗情况 拷贝和TCP检查和计算:每个字需要穿过内存总 线7~9次! 不同内存区域之间的拷贝(copy2,copy3): *每个字都要通过内存总线读一次和写 *计算TCP检查和:每个字都要通过内存总线读一次 *涉及外设的拷贝(copy1,copy4): *如果由CPU做拷贝(PIO):每个字都要通过内存总线 读一次和写一次 *如果由设备做拷贝(DMA):每个字只需通过内存总 线读一次或写一次 *涉及外设的拷贝都需要消耗IO总线带宽
资源消耗情况 拷贝和TCP检查和计算:每个字需要穿过内存总 线7~9次! 不同内存区域之间的拷贝(copy 2,copy 3): 每个字都要通过内存总线读一次和写一次 计算TCP检查和:每个字都要通过内存总线读一次 涉及外设的拷贝(copy 1,copy 4): 如果由CPU做拷贝(PIO):每个字都要通过内存总线 读一次和写一次 如果由设备做拷贝(DMA):每个字只需通过内存总 线读一次或写一次 涉及外设的拷贝都需要消耗I/O总线带宽
对服务器吞吐量的影响 *在上面的例子中: *Web服务器吞吐量不超过T/7,T为内存速度和内存总线 速度中的较小值 *有效的文件缓冲区大小仅为总容量的1/3 多余的拷贝在两个方面损害了服务器的性能: *由于使用了过多的总线和内存带宽,服务器的运行速 度远远低于总线速度 *由于使用了过多的内存,服务器不得不大量地从磁盘 而不是主存读文件 *如果请求动态内容,还要增加一次拷贝(CG|程序 →>Web服务器)
对服务器吞吐量的影响 在上面的例子中: Web服务器吞吐量不超过T/7,T为内存速度和内存总线 速度中的较小值 有效的文件缓冲区大小仅为总容量的1/3 多余的拷贝在两个方面损害了服务器的性能: 由于使用了过多的总线和内存带宽,服务器的运行速 度远远低于总线速度 由于使用了过多的内存,服务器不得不大量地从磁盘 而不是主存读文件 如果请求动态内容,还要增加一次拷贝(CGI程序 →web服务器)
请求动态内容 1. User fills in forr Data 2. Form sent back CGI ase 3. Handed to CGI Browser Server script on disk User 4. CGI queries DB 5. Record found 2 4 6. CGI builds page 5 7. Page returned 8. Page displayed Step6:CG|程序将构造好的网页文件,通过进程间通信 机制传给Web服务器程序,涉及一次拷贝
请求动态内容 Step 6:CGI 程序将构造好的网页文件,通过进程间通信 机制传给web服务器程序,涉及一次拷贝
52消除copy4 CPU MEMORY Web server application copy 3 Server buffer K, *为什么需要 Iwrite reado↓ copy 4? Kernel TCP/IP File system Socket buffer opy 2 File cache buffer ks 简单的解释: *适配器内存和 MEMORY BUS Copy 1 内核存储空间 DISK 不在同一个硬 1/O BUS 件上 NETWORK ADAPTOR Network 但是,这个理 FIGURE 5.2 Redundant copies involved in handling a GET request at a server 由不充分!
5.2 消除copy 4 为什么需要 copy 4? 简单的解释: 适配器内存和 内核存储空间 不在同一个硬 件上 但是,这个理 由不充分!