10 月,开发者不可错过的开源大数据大会-2021 WeDataSphere 社区大会深圳站 了解详情
写点什么

ScaleUp 解除了大量 IIS 的文件上传限制

2010 年 5 月 23 日

LeanServer 公司创建了名为 ScaleUp 的 IIS 7.0 的扩展程序,它解决了与文件上传相关并且困扰微软 web 平台的一些问题。 据它的作者所说,ScaleUp 提高了上传速度、支持不受限的上传文件大小,将每台服务器同时支持的上传数提升到上千个,并且包含了进度报告、流传输和过滤等等。

一直以来,ASP 和 ASP.NET 在上传文件方面都存在问题。 最开始的时候,开发者无法从 POST 信息中提取文件,除非他编写了自定义的代码来解析 post 并取得文件的数据。 ASP.NET 引入了 FileUpload 控件,它会同步地将 POST 数据载入到内存中,解析数据以从中提取文件,然后将其存储在磁盘上,从而提升了上传的效率。 这个解决方案有很多问题,最严重的就是它对内存的快速分块会导致 OutOfMemory 异常,因为在传送到磁盘之前,整个文件都会被放在内存中。 ASP.NET 2.0 做出了更多的改善,包括磁盘缓冲方法,这会将任何超过 80KB 的文件都存储到磁盘上。 然而,还是存在一些限制:

  • 上传的文件最大只能有 2GB(ASP.NET),或者 4GB(IIS)
  • 每个上传都会使用一个线程,这导致线程数量紧张
  • 磁盘缓冲对性能有很严重的负面影响
  • 无法以流模式上传,并且没有进度报告

ScaleUp 声称解决了上述所有问题。 框架的特性可以保证:

  • 更快地上传,会是原有速度的 20 倍
  • 对上传文件的大小没有限制
  • 每台服务器同时可以上传上千个文件
  • 提供了进度报告、流传输和过滤的特性
  • 跨服务器对上传过程的企业级性能监控

之前微软 IIS 的 PM,同时也是现在 LeanServer 的 CTO Mike Volodarsky ScaleUp 的工作方式做出了说明:

ScaleUp 的秘密在于它使用 IIS 7.0 的本地扩展层,用它自己的高性能的预载入引擎替换了 IIS 平台的上传处理程序。 这使得它可以解除之前存在的上传限制,同时允许所有现存的与 IIS 兼容的应用程序可以处理 web 上传,而不需要在应用程序中做任何本质性的改变。

ScaleUp 上传引擎的核心支持完全地异步请求预载入(asynchronous request preload),这解决了线程紧张的问题,并且让我们能够完全利用当前的服务器所提供的多核优势。

整个引擎在读取网络数据、解析多部分 / 格式数据上传、流模式实体过滤以及磁盘存储方面都完全是异步的。 在内部,我们会使用高级 Windows 性能技术,像异步无缓存的 IO、高级缓冲区管理以及很多书中可以极大提升上传流量,并降低服务器上的资源使用量的 IIS7.0 技巧。

当前 ScaleUp 已经被 MySpace 使用,来处理每天两千五百万次上传,他们说在安装了 IIS 扩展之后,已经减少了上传服务器的数量。 ScaleUp 可以用在 ASP、ASP.NET 和 PHP 应用程序中,并且能够用在现存的应用程序中而不需要修改。

查看英文原文: ScaleUp Addresses Many of IIS’ File Uploading Limitations

2010 年 5 月 23 日 08:381265
用户头像

发布了 340 篇内容, 共 115.5 次阅读, 收获喜欢 9 次。

关注

评论

发布
暂无评论
发现更多内容

策略模式解析

南方有乔木兮

JVM系列之:通过一个例子分析JIT的汇编代码

程序那些事

Java JVM JIT 汇编

实现扫码登陆的最简单方案与原理

Java小咖秀

Java 解决方案 经验总结

六字说出微服务的本质

看山

架构 微服务

LeetCode002-两数相加-medium

书旅

算法 数据结构与算法

实践录丨如何在鲲鹏服务器OpenEuler操作系统中快速部署OpenGauss数据库

华为云开发者社区

数据库 鲲鹏920 操作系统 服务器 opengauss

助力银行核心下移,监控分布式数据库,融天鹰眼轻松应对五大挑战

DT极客

(政务上链)新数据孤岛、安全风险等问题待解

CECBC区块链专委会

工作效率 公开透明 新技术

IDEA 插件找不到?看这里!那就自己敲一个!

程序员小航

json IDEA 开发工具 idea插件 IntelliJ IDEA

【华为云技术分享】DLI跨源|当DLI遇见MongoDB

华为云开发者社区

数据库 mongodb dlib 数据集 华为云

新技术(区块链)--让游戏行业走的更远

CECBC区块链专委会

区块链技术 防篡改不可逆

编程日课•理解学院

顿晓

学习 编程日课 理解学院

骚操作!用 CPU 烤肉,这位程序员做到了!

程序员生活志

程序员 gpu 程序人生

Twitter高性能分布式日志系统架构解析

俊俊哥

pulsar bookKeeper 分布式文件存储

海华大赛第一名团队聊比赛经验和心得:AI在垃圾分类中的应用

华为云开发者社区

AI 算法 数据分析 垃圾回收机制 华为云

java高并发系列 - 第11天:线程中断的几种方式

简爱W

架构师技术领导力成长之路

IT民工大叔

领导力 架构师

一条更新sql在mysql中是怎么执行的

简爱W

LeetCode题解:189. 旋转数组,pop+unshift一行,JavaScript,详细注释

Lee Chen

LeetCode 前端进阶训练营

秒懂云通信:如何用阿里云语音通知服务(小白指南)

阿里云Edge Plus

语音

Java异步之《我call(),Future在哪里》

BUZHIDAO

架构师训练营第九周

Melo

创业公司技术体系建设-CI/CD

星际行者

CI/CD

功能扎实的ERP模版已上架应用库(支持免费安装使用)

明道云

刚坐下,一个面试官居然问了我 30个Spring Boot问题!

只喝纯牛奶

智能的财务管理系统,来自某科技公司CEO亲手搭建

明道云

面经手册 · 第1篇《认知自己的技术栈盲区》

小傅哥

Java 面试 小傅哥 技术栈

Spring系列第2篇:控制反转(IoC)与依赖注入(DI),晦涩难懂么?

老大哥

腾讯安全领御区块链与张裕集团达成战略合作,打造高端葡萄酒区块链溯源平台

CECBC区块链专委会

产品溯源 无法篡改

Spring Boot+Redis+拦截器+自定义Annotation实现接口自动幂等

我是苞谷

我天!xx.equals(null) 是什么骚操作??

导导

ScaleUp解除了大量IIS的文件上传限制-InfoQ