Articles of caching

调整inodecaching的linuxcaching设置

我正在处理文件系统中的一亿个文件(分布在许多子目录中),我需要能够非常快速地列出它们,特别是为了有效地同步它们。 另一方面,我并不需要将文件的实际内容保存在caching中。 我不断地添加和删除文件,但并不经常(类似于每秒十次)。 有没有一种方法可以告诉操作系统(2.6.18-194.el5)在inodecaching上使用24GB可用RAM,而不是文件caching? 我已经看过/ proc / etc / vm / vfs_cache_pressure,但它似乎不是我正在寻找…

这是一个陈旧的ISP DNScaching的情况下,还是我fu something了吗?

我目前正在将传统网站(从传统托pipe服务提供商)转移到现代解决scheme。 由于我的上下文特定的要求(其中包括财务限制),我决定在一个静态IP地址为104.131.187.206的Digitalocean液滴(一个虚拟化的linux实例)上备份和复制网站。 我已经正确地configuration了一切,清理了复制与系统紧密耦合的Web应用程序所产生的各种松散的结果,而且重复的网站工作得很好。 现在,我的目标是将现有域名mcbc.on.ca指向DO小滴上新的重复网站。 传统(共享)托pipe提供商的IP地址是216.251.32.98 。 很明显, mcbc.on.ca一直指向这个地址。 我想要的是mcbc.on.ca指向104.131.187.206 。 此外,我仍然使用DNS和域名服务器的传统托pipe提供商。 我的任务应该很简单 – 只需修改区域文件中mcbc.on.ca的现有A条目,以便它现在指向104.131.187.206 。 现在,我也想保留一个原始网站的引用,所以我为original.mcbc.on.ca添加了一个新的条目,指向216.251.32.98 。 我昨天成功地完成了这一切,并且我的DNS更改已经成功传播(使用此工具进行validation)。 仅供参考,我已经做了约12个小时。 我的问题:出于某种奇怪的原因,每当我访问网站mcbc.on.ca ,它有时会parsing为旧地址216.251.32.98 ,其他时间正确parsing为104.131.187.206 。 我认为旧地址的频率约为40%,新地址的频率为60%。 这显然是一个问题。 考虑到我已经等了很长时间(尽pipe我明白12小时当然less于48小时),以及我上面提到的工具显示DNSlogging已经传播到ALL世界, 我的怀疑是我家的互联网ISP提供商有一个陈旧的DNScaching。 我的问题:我是对的吗? 如果不是,你觉得我的问题是什么?

学习缩放PHP应用程序有什么好的资源?

我相当熟悉PHP。 但我相当绿色的PHP的一个方面是caching,负载平衡等。 许多公司雇用PHP开发人员正在寻找这些高利用率的背景,我从来没有真正用PHP开发企业基础架构。 这看起来更像是系统pipe理types的东西,所以当公司总是要求这样的经验的时候,我会感到一丝慌乱。 无论如何,我想我更好地学习。 哪里是开始学习这些东西的好地方?

不考虑LAMP开发服务器上的文件更改

我为PHP开发build立了一个小型的LAMP虚拟机。 它工作正常,除了当已经被服务的图像被修改在磁盘上,然后再次请求,“旧”的图像仍然在服务(我得到一个304从未修改答案从Apache2)。 这种caching行为在服务器上是可取的,但是在频繁编辑文件的开发环境中是一种痛苦。 唯一(不方便)的方式,我发现访问新的文件内容是: 重启虚拟机, 或发出sync; echo 3 > /proc/sys/vm/drop_caches sync; echo 3 > /proc/sys/vm/drop_caches 是否有一个Apache指令,我可以用它来确保apache将检查每次请求时磁盘上的文件是否已经更改? 更新 :加载的Apache模块: #apache2ctl -t -D DUMP_MODULES 加载模块: core_module(静态) log_config_module(静态) logio_module(静态) mpm_prefork_module(静态) http_module(静态) so_module(静态) alias_module(共享) auth_basic_module(共享) authn_file_module(共享) authz_default_module(共享) authz_groupfile_module(共享) authz_host_module(共享) authz_user_module(共享) autoindex_module(共享) cgi_module(共享) deflate_module(共享) dir_module(共享) env_module(共享) mime_module(共享) negotiation_module(共享) php5_module(共享) setenvif_module(共享) status_module(共享) 语法OK 编辑 :其实,我的DocumentRoot存储在一个共享的VirtualBox文件夹。 这似乎是当一个文件被覆盖,virtualbox模块不会通知Linux使其caching失效。 因此,违反直觉的行为。 当我对“常规”linux目录执行相同的覆盖操作时,不会发生这种情况。

如何将no-cache标头添加到由apache和nginx提供的所有404页面?

我最近在切换到Cloudflare后遇到了一个问题,解决scheme是基本上阻止Cloudflarecaching404响应。 在我们的负载均衡的多服务器设置中,偶尔会出现404s,但是它们可以通过rsync(通过lsyncd)快速修复。 在Cloudflare之前,随着rsync的工作,对404ed文件的重新请求将很快变为200。 但是,由于Cloudflarecaching基于caching头的所有数据,并且apache和nginx都没有发送404caching头,所以Cloudflare最终caching了404响应。 我一直在寻找一个解决scheme,在apache和nginx(全球所有托pipe域名)上为404s全局添加这样一个头文件,但到目前为止都是空白的。 谁能帮忙? 谢谢。

两个独立的PHP-FPM网站似乎使用相同的代码?

我有两个网站有两个代码库,但是当我更改一个代码库时,我看到了两个网站的变化。 我有两个同一个网站的结帐。 它们被设置为通过Apache2和FastCGI使用PHP-FPM。 结帐在: /var/www/site1 /var/www/site2 Apache的configuration如下所示: <VirtualHost *:80> ServerName site1.myserver.com DocumentRoot /var/www/site1 <IfModule mod_fastcgi.c> AddHandler php5-fcgi-handler .php Action php5-fcgi-handler /php5-fcgi-uri Alias /php5-fcgi-uri fcgi-application FastCgiExternalServer fcgi-application -socket /var/run/site1-fpm.sock -pass-header Authorization -idle-timeout 30000 -flush </IfModule> </VirtualHost> <VirtualHost *:80> ServerName site2.myserver.com DocumentRoot /var/www/site2 <IfModule mod_fastcgi.c> AddHandler php5-fcgi-handler .php Action php5-fcgi-handler /php5-fcgi-uri Alias /php5-fcgi-uri fcgi-application FastCgiExternalServer fcgi-application -socket […]

SSD作为Linux交换大型虚拟内存应用程序?

这个问题在这个问题上有所涉及,但在64位Linux上运行,我有一套数据cachingJVM以及想要一个大的网页caching。 今天的每个高速caching被configuration为总体适合的系统内存(24GB),并坚持LRU磁盘。 我很好奇,但是性能,如果我们**分配caching进程,并build立一个高优先级的Linux交换的SSD。 我想知道Linux内核是否比我们简单的LRU过程更智能/更快? 我关心的是过度分配JVM堆,并且通过内核交换堆页面,因此GC必须定期遍历所述页面。

Chromecaching302redirect

我有一个PHP脚本,用于在网站上旋转横幅图像。 在Firefox / IE页面刷新下将会有另一个请求和一个不同的图像被返回。 在Chrome浏览器下,请求似乎被caching,只有在新选项卡中打开页面才会实际查询脚本。 我相信这曾经工作在旧版本的铬,我已经尝试了几个不同types的redirect代码都具有相同的结果。 有小费吗? <img class="banner" src="/inc/banner.php" alt=""> ~$ cat /var/www/inc/banner.php <?php header("HTTP/1.1 302 Redirect"); header("Cache-Control: max-age=0, no-cache, no-store, must-revalidate"); //header('HTTP/1.1 307 Temporary Redirect'); //header("expires: none"); //header("expires: max"); //header("Cache-Control: public"); $folder = '../img/banner/'; $exts = 'jpg jpeg png gif'; $files = array(); $i = -1; if ('' == $folder) $folder = './'; […]

我应该禁用Windows 2008虚拟机上的写入caching吗?

我有一台Windows Server 2008 x64标准虚拟机,它运行在带有硬件RAID控制器的Perc 6 / i机器上,机器上有一块电池。 尽我所能提供额外的performance,我想我应该禁用这个。 这很危险吗? 我的理解是,电池备份写caching提高了主机操作系统的性能,告诉它写入完成时,他们仍然坐在闪存等待写入。 但是,我不明白这对绩效会有什么不利影响,但是,是否有一个获得(甚至是微乎其微的)使其失效的能力? 有机器有备用电源。 以下是一个屏幕截图:

ZFScaching是否打开压缩的ZFS文件系统中的压缩或解压缩数据?

ZFS支持文件系统压缩,并且还caching经常或最近访问的数据。 如果一个系统有很多的CPU,但底层的数据存储系统很慢。 在压缩打开的情况下,ZFS可能会更好地执行。 通过测量CPU和磁盘使用率以及吞吐量来编写文件时,可以很容易地testing这个function (当然可能存在延迟,但这对大文件来说不成问题)。 但是caching呢? 如果每次读取数据都必须进行解压缩,那么这可能不是一个好主意。 caching的数据是否被压缩? 有人有这方面的信息吗?