Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sockets/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Memory 如何减少磁盘读写开销?_Memory_Memcached_Memory Mapped Files_Memory Mapping - Fatal编程技术网

Memory 如何减少磁盘读写开销?

Memory 如何减少磁盘读写开销?,memory,memcached,memory-mapped-files,memory-mapping,Memory,Memcached,Memory Mapped Files,Memory Mapping,我有一个网站主要由javascript编写。我在IIS上托管了它。 此网站从硬盘上的特定文件夹请求图像,并将其显示给最终用户。 对图像的要求非常频繁和快速 有没有办法减少磁盘读取操作的开销 我听说过内存映射,硬盘的一部分可以映射,它将被用作主内存。 有没有人能告诉我我是对是错,如果我是对的,有哪些步骤可以做到这一点。 如果我错了,还有其他解决办法吗?方向不对。您希望将IO减少到慢速磁盘(相对)。您可能希望将文件映射到物理内存中。在简单的场景中,操作系统将使用文件缓存自动处理此问题。您可以查看Wi

我有一个网站主要由javascript编写。我在IIS上托管了它。 此网站从硬盘上的特定文件夹请求图像,并将其显示给最终用户。 对图像的要求非常频繁和快速

有没有办法减少磁盘读取操作的开销

我听说过内存映射,硬盘的一部分可以映射,它将被用作主内存。 有没有人能告诉我我是对是错,如果我是对的,有哪些步骤可以做到这一点。
如果我错了,还有其他解决办法吗?

方向不对。您希望将IO减少到慢速磁盘(相对)。您可能希望将文件映射到物理内存中。在简单的场景中,操作系统将使用文件缓存自动处理此问题。您可以查看Windows是否提供了任何可调参数,或者至少可以查看您可以收集的性能指标

如果我没记错的话(几年前),IIS可以非常有效地处理静态文件,因为它有一个链接到IIS的内核路由驱动程序,但前提是它不能通过进一步的ISAPI过滤器等。。你可能会在第9频道上找到一些与此相关的信息

从长远来看,您应该考虑将静态资产移动到CDN,如CloudFront等


就像任何问题一样。。。你确定你有问题吗

虽然内存映射是可行的想法,但我建议使用memcached。它作为一个独特的过程运行,允许水平扩展,并在一些要求最高的网站上进行了尝试和测试,并处于主动部署状态。一个实现良好的memcached服务器可以显著提高性能

它也有许多语言的绑定,包括那些通过互联网的语言。我假设您想要一个Java解决方案(您的大多数标记都与该语言相关)。阅读以了解安装和其他管理任务。它还有代码示例(针对Java),您可以从中开始

在伪代码术语中,当您收到Moon.jpeg的请求时,您需要做的是:

String key = md5_hash(Moon.jpeg); /* Or some other key generation mechanism */
IF key IN memcached
   SUPPLY FROM memcached /* No disk access */
ELSE
   READ Moon.jpeg FROM DISK
   STORE IN memcached ASSOCIATED WITH key
   SUPPLY
END

这是一个非常粗糙的算法,您可以在文章中阅读有关缓存算法的更多信息。

您可以共享一些链接或其他内容,以便我可以在实现这一点时获得帮助。.在讲座中回答。。)我会的,一旦我退出。你的服务器端技术是什么?不。。我是软件开发人员。。目前正在处理性能问题。。。在一个项目中等待你的答案。。。。实际上更确切地说。。我在寻找解决办法。。这可以将特定文件夹中的所有文件添加到内存映射文件中,以便在服务器请求该文件夹中的任何文件时。。可以快速访问的。。以最少的磁盘io读取操作,我不知道你为什么说“不”。我假设您的服务器端技术是Java,因为您的大多数标记都与之相关。文件缓存不会像。。这些文件和图像将每天在该特定文件夹中更改。。这就是为什么我一直在寻找可以每天将这些文件添加到内存映射文件中的东西…没关系,操作系统管理文件缓存,当然缓存失效是其中的一个自然部分。它与[内存管理]无关。我把它改成了[java]。如果您不同意,请回滚。您没有仔细阅读问题。。。。我从来没提过java。。它的javascript。。。