当前位置: 首页 > news >正文

电商网站建设开发的语言有哪些中国亚马逊网站建设

电商网站建设开发的语言有哪些,中国亚马逊网站建设,wordpress淘宝客主题下载,即将开网的平台读Kafka技术书遇到困惑: 对比传统的数据复制和“零拷贝技术”这两种方案。假设有10个消费者#xff0c;传统复制方式的数据复制次数是41040次#xff0c;而“零拷贝技术”只需110 11次#xff08;一次表示从磁盘复制到页面缓存#xff0c;另外10次表示10个消费者各自…读Kafka技术书遇到困惑: 对比传统的数据复制和“零拷贝技术”这两种方案。假设有10个消费者传统复制方式的数据复制次数是4×1040次而“零拷贝技术”只需110 11次一次表示从磁盘复制到页面缓存另外10次表示10个消费者各自读取一次页面缓存。显然“零拷贝技术”比传统复制方式需要的复制次数更少。 困惑我的有两个问题: 1. 传统一次数据传输为什么需要4次拷贝 2. 为什么零拷贝下10个消费者只需要11次 第一个问题:传统一次数据传输为什么需要4次拷贝? 传统数据传输在实现上包含两个操作, read 和write,都是由用户程序来发起, 其中read和write中各有两次复制操作.  read负责将数据从磁盘加载到内存空间中, 由于用户程序没有直接读取磁盘或写入网卡等操作系统资源的的权限, 因此每次调用时, 上下文都需要从用户态切换到内核态. 在read中, 首先由系统交由DMA(direct memory access)做第一次复制, 将数据从磁盘搬运到内核空间的文件系统的页面缓存中; 然后再交由CPU执行数据的第二次复制, 将数据从页面缓存拷贝到用户内存空间中.  在write时, 首先cpu会将数据将用户空间拷贝到内核空间(文件系统缓冲区,pagecache), 放在socket缓存区中,完成第一次复制; 然后再由DMA将数据从socket缓存区搬运到网卡接口, 由网卡将数据传输到到网络中.   在此过程中发生了4次用户态与内核态的上下文切换(一次系统调用会发生两次上下文切换)、4次拷贝, 其中CPU复制两次、 DMA复制两次, 在其中很多复制步骤是非必要的, 如何进行优化?  常见优化手段有两种:  mmap writesendfile mmap是个共享缓存方案, 即把内核空间缓存去中的数据映射到用户空间中, 可被用户程序直接使用, 进行共享, 就不用将数据从内核空间搬到用户空间了, 在write时还是需要由CPU将数据从共享区复制到socket缓存区中. 这种做法还是会有4次上下文切换, 但少了一次数据拷贝. 做了优化, 但不多.  再看另外一种sendfile, sendfile可以看成是对mmap write操作的一种封装, 只需要指定下文件描述符和数据长度, 将两次系统调用减少为一次, 可以做到在内核态时将数据从磁盘复制到网卡, 但其中还是会经过三次数据复制: 磁盘-内核缓存内核缓存- socket缓存socket缓存-网卡 这种不是实际意义上的零拷贝, 但不在发生从内核空间到用户空间的拷贝了, 所以我理解所谓零拷贝指的是不发生从内核空间到用户空间的拷贝了。 第二个问题: 为什么零拷贝下10个消费者只需要11次拷贝? 那第二个问题为什么零拷贝下10个消费者只需要11次拷贝?怎么理解?  这是使用了更牛逼的SG-DMAThe Scatter-Gather Direct Memory Access技术, SG-DMA是一种特殊的DMA, 通过sendfile指定的文件描述符和数据长度, 实现了将内核中页缓存数据直接搬运到网卡中, 中间不需要经过socket缓存区, 且中间拷贝操作全程无cpu参与. 在这种意义下, 零拷贝指的是零cpu拷贝技术. SG-DMA实现了仅需两次拷贝就完成了一次磁盘数据的网络传输操作, 而对于10个消费者则需要10次使用SG-DMA将数据从内核页缓存拷贝到网卡的动作, 页缓存顾名思义是数据在内核空间的缓存, 对于同一条数据从磁盘拷贝到内核空间后就缓存起来, 后面再使用时就可无需再重新拷贝了.  所以1条消息发送给10个消费者, kafka做到了仅需通过11次拷贝就完成了, 越少的数据复制, 就越能更快的读取的数据, 延迟越少, 消费者性能就越好, 你说他的文件传输效率高不高.  其他使用零拷贝技术的还有Nginx系统. 其他:  chatgpt的答案:  零拷贝技术与传统数据复制次数比较解释 传统数据复制 在传统的数据复制方法中数据在从磁盘到达消费者之前会经历多次复制。这个过程通常包括以下步骤 从磁盘读取数据到内核空间的文件系统缓冲区页缓存。从文件系统缓冲区复制数据到用户空间的应用程序缓冲区。从应用程序缓冲区复制数据回内核空间的socket缓冲区。从socket缓冲区将数据发送到网络。 如果有10个消费者这个过程需要为每个消费者重复进行导致数据被复制了4次磁盘到文件系统缓冲区文件系统缓冲区到用户空间用户空间到socket缓冲区socket缓冲区到网络。因此总的数据复制次数是4×1040次。 零拷贝技术 零拷贝技术通过减少数据在用户空间和内核空间之间的不必要复制来降低CPU的负载和提高数据传输效率。在零拷贝的情况下数据传输过程如下 从磁盘读取数据到内核空间的文件系统缓冲区页缓存这是唯一的一次数据复制。使用零拷贝技术如Linux的sendfile系统调用直接从文件系统缓冲区传输数据到网络避免了数据到用户空间的复制。 每个消费者直接从文件系统缓冲区读取数据所以对于10个消费者数据复制次数为1磁盘到文件系统缓冲区加上10每个消费者读取一次文件系统缓冲区总共是11011次。 结论 零拷贝技术显著减少了数据复制次数从40次降低到了11次。这减少了CPU的工作负担提高了数据传输的效率并且减少了延迟。在处理大量数据或者高速网络传输时零拷贝技术的优势尤为明显 参考:  chatgpt原来 8 张图就可以搞懂「零拷贝」了https://www.cnblogs.com/xiaolincoding/p/13719610.html
http://www.hkea.cn/news/14321339/

相关文章:

  • 网站ip和pv手机网页设计网站建设
  • 聊城做网站公司做网站那个语言好
  • 网站开发环境有哪些php专业展馆展厅设计
  • 规范门户网站建设今天建设银行网站无法登录
  • html特效网站哪家卖的wordpress主题好
  • 网站标题 关键字wordpress实现mp4播放
  • 网站建设2017国内排行百度蜘蛛对视频网站的抓取
  • 什么网站做网页好wordpress 主机推荐
  • 哪个网站做漂流瓶任务页面设计重要性
  • 淄博抖音推广公司网络seo优化推广
  • 12306网站是是阿里巴巴做的吗甘肃省住房与城乡建设部网站
  • 安徽网站优化价格咨询wordpress社区聊天室
  • 泰州市建设局审图中心网站花卉电子商务网站开发
  • 手机网站地址会议网站定制
  • 数码电子产品网站建设策划书石家庄网站建设
  • app网站开发框架wordpress媒体库上传电影
  • 用阿里云服务器做盗版小说网站吗莱芜网站
  • iis 网站正在建设中百度账号登录个人中心
  • 做网站客户要求分期淮安 做网站 app
  • 苏州建设工程信息网站WordPress模板推荐国外
  • 怎么做网站拍卖的那种免备案免费域名
  • 电子商务网站建设的开发方案爱装网
  • 为什么小城市做不出来好的网站工作中存在的问题和不足
  • 台州网站优化方案动态asp.net网站开发教程
  • 教你如何建设网站网页浏览器的缩写
  • 音乐网站建设论文的目的和意义梧州红豆论坛
  • 泰格豪雅手表官方网站济南最新消息今天
  • 懒人图库网站源码智能网站建设制作
  • 做直播的网站有哪些网站在线留言的用途
  • 建站平台 iiswordpress wie文件