Articles of caching

内存中的操作系统caching增加,导致系统CPU使用率过高

很长的问题,所以请裸露我:我有一个奇怪的问题,我从来没有见过的服务器。 在具有〜30G RAM的机器上,应用程序需要〜10G(分布在数百个进程中)。 随着时间的推移,操作系统开始用高速caching和缓冲区来填充备用RAM(对于Linux来说是完全正常的)。 之前我已经看到过这种情况,没有任何问题,但是在这台机器上,随着空的内存量的减less,在256M的标记处,系统CPU疯狂(在8个CPU上达到100%,持续时间约为3分钟)。 我猜测操作系统正在使用所有的CPU随机播放内存来获得一些空闲空间。 从我对Linux内存pipe理的理解来看,它应该尽可能在RAM中使用自由空间,因为它可以用于操作系统级别的caching,但是当被问及时将其交给任何需要它的应用程序,从过去的经验来看,这不是一个创伤性的体验为CPU。 它总是发生。 那么为什么这里会有所不同呢? 我附加了相关指标的vmstat输出的一小部分(每2秒捕获一次)。 当可用内存达到256M时,您可以看到系统CPU(第14列,右起第3列)开始变得忙碌,然后在30秒后变得非常疯狂。 rb swpd free buff cache si so bi bo in cs us sy id wa 1 0 0 293876 5022848 18797528 0 0 206 1712 20924 12845 29 9 61 1 6 0 0 285324 5022848 18797656 0 0 0 0 18795 11382 23 […]

当涉及ISPcaching域名服务器时,SOA序列是否重要?

比方说,我忘记更新SOA文件时更新SOA串行。 当然,这意味着任何奴隶都不会同步到主,因为它认为没有改变。 我的问题是,SOA序列是否对ISPcaching名称服务器有任何影响? 例如,假设ISP的客户请求了www.example.org并获得了93.184.216.34。 然后,我更改域名有IP 93.184.216.35,但忘记更新SOA序列。 当TTL到期时,如果客户的ISPcachingparsing程序对www.example.org发出新的请求,并看到93.184.216.35,它是否拒绝更新caching,并且仍然将数据从caching中提供出来,如果串行不递增?

回写模式下的LVMcaching相当于外部的ext4日志?

我在LVM上运行ext4文件系统。 我正在看的两大加速选项是LVMcaching和外部的ext4日志。 这听起来像是我正在使用单个SSD,在回写模式下的LVMcaching与在外部设备上使用您的ext4日志是一样的…基本上,如果发生任何事情,您将重置为前期日志位置。 这是一个正确的解释?

Apache Web服务器间歇性地服务403:“由Options指令禁止的目录索引”和304

我们在CentOS 5.5 Linux上为Apache / 2.2.19configuration了一个带有SSI的.html文件的网站。 工作正常,但偶尔会得到403的根页面(index.html作为目录索引)。 当页面工作时没有文件系统改变,不起作用,然后再次工作。 当它不起作用,就好像Apache已经决定index.html文件不存在一样,所以试图服务一个目录列表,但是这是故意被我们的configuration拒绝。 Apache虚拟主机特定的错误日志包含如下条目: [Tue Aug 09 03:10:47 2011] [error] [client 66.249.72.3] Directory index forbidden by Options directive: /main/directory/ Apache通用错误日志不包含任何内容 Apache虚拟主机特定访问日志包含如下条目: 66.249.72.3 – – [09/Aug/2011:03:10:47 +0100] "GET / HTTP/1.1" 403 230 "-" "SAMSUNG-SGH-E250/1.0 Profile/MIDP-2.0 Configuration/CLDC-1.1 UP.Browser/6.2.3.3.c.1.101 (GUI) MMP/2.0 (compatible; Googlebot-Mobile/2.1; +http://www.google.com/bot.html)" 总体分布: # fgrep 'GET / ' `ls -tr domain-access_log*` […]

如何防止扩展脚本的snmpdcaching结果

在我的freebsd盒子上,我有来自net-snmp-5.5_4包的snmpd守护进程。 在snmpd.conf文件中我有: extend .1.3.6.1.4.1.2021.2 inpt /usr/bin/perl /usr/local/etc/snmp/mpdinput.pl 其中mpdinput.pl我的脚本,从一些mpd5-ngnetworking接口返回input八位字节。 仙人掌读取这个值,并绘制这样的图表: 我添加了红线来图。 在标记的地方snmpdcaching结果并返回prev值,这就是为什么rrdtool绘制零活动。 这对我来说是一个问题。 如何防止caching导致snmpd?

可以清除caching文件没有特定的扩展名或驻留在特定的目录

我有清漆安装caching(很多)我的服务服务的图像。 大约每秒4k的约200幅图像,清漆按照以下规则高兴地服务: if (req.request == "GET" && req.url ~ "\.(css|gif|jpg|jpeg|bmp|png|ico|img|tga|wmf)$") { remove req.http.cookie; return(lookup); } 现在,我最近在同一台服务器上添加了另一个服务,创build了缩略图,但不添加特定的扩展名。 这些文件具有以下文件名模式: http://www.example.com/thumbnails/date-of-thumbnail/xxxxxxxxx.xx 其中xx是数字,所以xxxxxxxxx.xx可能是6482364283.73(最后两个数字)(实际上这是时间戳,所以我可以在文件名中保留额外的信息) 这有副作用,清漆不caching他们,我看到他们不断由Apache本身服务。 即使我现在可以改变格式来创build以.jpg结尾的thumbnails ,有没有办法改变我的varnish守护进程的vcl文件来caching一个目录下的所有东西( thumbnails目录),或者是所有包含两个数字的东西延期? 让我知道,如果我可以提供任何额外的信息! 谢谢!

在linux中写入caching

我已经阅读了很多关于服务器错误,并在谷歌上search写caching,但仍不能find答案。 我有一个HP RAID ProLiant DL380 G5硬盘RAID 512 MB电池备份caching。 我使用debian linux。 有3个写caching:1.操作系统写入caching2.硬盘突袭与512 MB电池备份caching3.硬盘caching 我的问题是:如何正确configuration它们,所以在断电时不会丢失数据。 我以为禁用操作系统写入caching和硬盘caching可以解决这个问题,并且由于硬件RAIDcaching,它仍然会运行良好。 我对吗? 第二个问题是关于硬件RAID突发读写比。 我在想,因为OS RAM被用作读取caching,所以最好把HR raid cache的比例改为0/100或者0/80(读/写)。 所以它会更好地利用50/50,我认为这是默认的读/写caching比率。 这个比例的最佳值是多less? 谢谢

Windows中文件系统的数据同步行为

在Linux中,挂载支持commit选项,在mount(8)手册页中描述为: commit=nrsec Sync all data and metadata every nrsec seconds. The default value is 5 seconds. Zero means default. 在Windows中,回写式caching只有在存储Policies Removal policy设置为Better performance才能起作用。 我们假设它已打开。 有没有什么办法可以像在Linux中一样调整Windows中的写入caching行为? 在commit选项旁边的Linux中,挂载的文件系统types必须支持才能生效,还有一些重要的虚拟机设置可以创build与写回caching行为相关的附加约束条件,并且可以通过将新值附加到/proc/sys/vm/目录下的/ proc / sys / vm / *文件中描述: dirty_background_bytes 包含pdflush后台写回守护程序将开始写回的脏内存量。 注意: dirty_background_bytes是dirty_background_bytes的对应物。 一次只能指定其中一个。 当一个sysctl被写入时,它立即被考虑到评估脏的内存限制,另一个在读取时显示为0。 dirty_background_ratio 包含占总系统内存的百分比, pdflush后台写回守护进程将开始写出脏数据的页数。 dirty_bytes 包含生成磁盘写入的进程本身将开始写回的脏内存量。 注意: dirty_bytes是dirty_bytes的副本。 一次只能指定其中一个。 当一个sysctl被写入时,它立即被考虑到评估脏的内存限制,另一个在读取时显示为0。 注意:dirty_bytes允许的最小值是两页(以字节为单位)。 任何低于此限制的值都将被忽略,旧的configuration将被保留。 dirty_expire_centisecs 这个可调参数用于定义脏数据的大小,以便有资格由pdflush守护进程写出 。 它以百分之一秒表示。 在内存中已经被脏了的时间比这个时间间隔更长的数据将在下一次pdflush守护进程唤醒时被写出。 […]

IIS输出caching与ASP.NET输出caching

从iis.net引用: The ASP.NET page output cache is separate from the IIS 7 output cache. In applications that use the Integrated ASP.NET mode, the ASP.NET page output cache can be used programmatically for any content-type, much like the IIS 7 output cache. The ASP.NET page output cache is separate from the IIS 7 output cache. In […]

通过Varnish服务应用程序HTTP / 5xx错误页面

我正在通过Varnish来运行几个Rails应用程序,以提供更好的caching支持,希望能够更灵活地构buildrails中的页面caching选项。 我偶然发现的一个问题是,当从应用服务器返回HTTP / 50x错误时,varnish不会提供自定义错误页面(例如,当rails应用程序引发exception时,我们会渲染一个自定义的错误HTML模板) – 而不是看到'好'用户友好的错误页面,我们看到以下文字: Error 503 Service Unavailable Service Unavailable Guru Meditation: XID: 828451354 Varnish cache server 有没有什么办法可以将获取的HTML从后端服务器传递到客户端? 是否像实现sub_error VCL方法和使用获取或通过指令一样简单? 谢谢。