Questions tagged «cache»

存储临时或临时数据以提高应用程序或系统性能的位置或过程。

3
IIS重置会强制重新发送缓存的项目吗?
当我们发布网站更新时,我正在尝试制定一种策略来处理缓存的javascript文件,css,图像等。在开始在javascript文件上实现版本号之前,我想知道在每个发行版之后重新设置IIS是否会有效地导致重新发送缓存的文件。
10 iis-7  asp.net  cache 

1
如何基于请求URI使用HAproxy 1.6添加响应头?
我将HAproxy 1.6用作Tomcat服务器前的负载平衡器。 我需要基于请求URI添加响应头。 例如,我想Cache-Control public,max-age="600"在请求uri是时添加响应头,/api但在请求uri是其他东西时不添加。 我的第一次尝试是使用基于路径的acl将标头添加到http-response: acl api path_reg ^/api/(.*)$ http-response add-header Cache-Control public,max-age="600" if api 当我使用启动haproxy时-d,我警告说path_reg(或path)与http-response以下版本不兼容: Dec 6 15:22:29 ip-10-30-0-196 haproxy-systemd-wrapper[315]: [WARNING] 340/152229 (2035) : parsing [/etc/haproxy/haproxy.cfg:78] : acl 'api' will never match because it only involves keywords that are incompatible with 'backend http-response header rule' 我尝试添加标头http-request而不是http-response: acl api …

1
如果Linux缓存太大,为什么QEMU无法分配内存?
如果我使用我的机器[Ubuntu 16.04 64位,内核4.4]一段时间,QEMU需要删除内核缓存,否则,它将无法分配RAM。 为什么会发生? 这是一个示例运行: ~$ free -m total used free shared buff/cache available Mem: 15050 5427 3690 56 5931 4803 Swap: 0 0 0 ~$ sudo qemu-system-x86_64 -m 10240 # and other options qemu-system-x86_64: cannot set up guest memory 'pc.ram': Cannot allocate memory ~$ echo 3 | sudo tee …

1
Nginx缓存在多个服务器之间共享
我们有8个使用Nginx的REST-ish API服务器,使用FastCGI和PHP-FPM来处理请求。我们目前正在使用Nginx的FastCGI缓存(如的指令fastcgi_cache_path)。这意味着将缓存API响应,但是每个服务器都有一个单独的缓存。 是否有一种在所有八台服务器之间共享缓存存储的好方法? 我们已经考虑过将Redis用作共享存储,但是可用的模块似乎需要更改应用程序。在某些情况下,我们可能希望将响应缓存在我们控制范围之外(通过HTTP到外部API)。理想情况下,可以使用替代品来替代FastCGI和HTTP响应的Nginx内置缓存。
9 nginx  cache 

2
如何在局域网中为客户端计算机创建Yum Cache Server
像在Ubuntu中一样,我们可以选择创建“ Ubuntu更新缓存服务器”,该服务器直接从Internet下载和更新软件包,并为其他客户端ubuntu计算机提供服务以安装/更新软件包。对于基于RHEL的发行版(Centos,fedora),我们可以以相同的方式创建“更新缓存服务器”,该更新服务器从Internet抓取软件包并本地提供给局域网中的客户端计算机。也像ubuntu一样,缓存服务器可用于所有版本的centos,fedora等。

1
Varnish如何处理存储空间不足?
我使用的是Varnish 3.0.3(撰写本文时为最新版本),带有或多或少的默认安装,并使用以下内容进行存储: # # Cache file location VARNISH_STORAGE_FILE=/var/lib/varnish/varnish_storage.bin # # # Cache file size: in bytes, optionally using k / M / G / T suffix, # # or in percentage of available disk space using the % suffix. VARNISH_STORAGE_SIZE=4000M # # # Backend storage specification VARNISH_STORAGE="file,${VARNISH_STORAGE_FILE},${VARNISH_STORAGE_SIZE}" # 可以缓存的大多数页面将具有非常长的TTL。我正在使用的网站很大,并且有数百万个页面,可能无法满足上述存储容量(4 GB)。 …
9 cache  varnish  ttl 

2
使用缓存时磁盘I / O较高?
几天前,我注意到磁盘I / O等待和磁盘活动下降(这很棒)。然后我还注意到我的缓存已满(*)且碎片化。然后我刷新了缓存。此后,磁盘延迟和磁盘活动跃升到以前的水平(这很糟糕)。 IOtop显示[jbd2 / sda2-8]和[flush-8:00]始终位于磁盘使用率之上。这是具有大量可用内存(总共16 GB,其中约8 GB是缓冲区/缓存)的Dell R210,硬件RAID 1(H200)。 (*)缓存是PHP的APC操作码缓存,它减少了PHP脚本执行的磁盘访问。缓存已满并且分散,因为它包含来自开发实例的文件。当我注意到时,我将它们过滤掉了。 问题是:为什么磁盘I / O从理论上讲应该减少?以下是穆宁的一些图表。从2月6日到8日,缓存已满。 在我注释掉apc.mmap_file_mask后,按照@ cyberx86的说明进行更改 几天后https://serverfault.com/a/362152/88934


4
htaccess中按什么顺序放置规则有关系吗?
我希望这是一个简单的“是”或“否”答案(请指定原因) Q1:规则以什么顺序放在htaccess中有关系吗? 由于它们是完全分开的项目:例如 问题2:如果可以,我是否申请了正确的订单? 为了加速htacces引擎而不用不必要的规则使其过载? 问题3:关于在此处禁用/添加内容的任何提示都欢迎+1! # DirectoryIndex index.php /index.php AddDefaultCharset UTF-8 RewriteEngine on # Options All # Options +FollowSymLinks # Options +FollowSymLinks -Indexes -ExecCGI # RewriteBase / ##################################################### <IfModule mod_headers.c> ExpiresActive On ExpiresDefault M172800 Header unset ETag FileETag None Header unset Pragma ##### STATIC FILES <FilesMatch "\\.(ico|jpg|png|gif|svg|swf|css|js|fon|ttf|eot|xml|pdf|flv)$"> ExpiresDefault M1209600 …

2
ZFS和缓存设备
我将向我的ZFS存储中添加SSD驱动器作为缓存。有人对此有经验吗?如果缓存设备死了,该数据将受到影响吗?
9 cache  ssd  zfs 

5
带SSD缓存存储的Squid或其他HTTP缓存?
我正在考虑在具有SSD驱动器的系统上设置一个鱿鱼(或可能的清漆)缓存。 明显的好处是这些系统具有很高的读取速度,我希望我的命中率会很高。 假设我可以将7个SSD放入RAID配置。(有些情况会让我收拾更多东西) 实施问题: 我应该使用RAID0吗?(我预计驱动器最终会出现故障,因此这似乎很危险。) 我应该使用RAID10吗?(这使我的磁盘空间减少了一半,这是昂贵的。) 我应该使用RAID5吗?(众所周知,SSD具有“不良”的写入性能和写入限制,并且所有额外的奇偶校验写入都可能会大大降低此速度。) 我应该只将每个磁盘视为自己的鱿鱼数据存储区吗?(squid处理多个数据存储的性能如何?如果/当一个失败时会发生什么?) 我应该忽略数据存储,而只是将SSD放入大型SWAP分区中,然后让Linux VM做到这一点吗?(似乎草率) 在生产环境中使用SSD的人们的任何建议将不胜感激。(特别是如果您将它们用于HTTP缓存)
9 raid  http  squid  cache  ssd 

4
如何为apache和nginx服务的所有404页添加无缓存标题?
切换到Cloudflare后,我最近遇到了一个问题,解决方案是基本上停止Cloudflare缓存404响应。 在我们的负载均衡的多服务器设置中,偶尔会出现404错误,但它们会通过rsync(通过lsyncd)快速修复。在Cloudflare之前,随着rsync的工作,对404ed文件的重新请求很快就会变成200。 但是,由于Cloudflare基于缓存标头缓存所有数据,而apache和nginx均未发送404的不缓存标头,因此Cloudflare最终将404响应缓存了一段时间。 我一直在寻找一种解决方案,以便在apache和nginx中(全局地,对于所有托管域)为404s全局添加这样的标头,但到目前为止,它还是空白。 有人可以帮忙吗? 谢谢。

2
Debian / Ubuntu是否可以在删除它们后重新初始化/ var / lib / apt / lists和/ var / apt / cache?
在删除或最小化它们后是否可以恢复/ var / lib / apt / lists和/ var / apt / cache的功能 我试图将Ubuntu VM缩小到最小大小,并决定删除/ var / lib / apt / lists和/ var / cache / apt以便在需要更新系统时还原它们。我已经完成了/ var / cache / apt的操作而没有主要的副作用,只需重新创建一些目录即可重新启用它。/ var / lib / apt / lists是我不确定的一个。是否可以通过像/ var / cache / apt这样重新创建来删除它并恢复其功能? 这样做会破坏apt和dpkg对系统配置的了解还是将其存储在其他地方?
9 ubuntu  debian  apt  cache  var 

2
Nginx + php-fpm-每个php-fpm在运行时处理70-100%cpu
我遇到以下情况: 我们使用8核,8gb ram,2.6 GHz频率的linode-使用nginx + php-fpm-我们获得了非常高的cpu使用情况图(我们不想成为如此糟糕的VPS邻居)... 我们一次在网站上的用户数少于100,因此这种情况也令人难以置信,这是因为我们的CPU使用率很高。 我们使用的是一个非常未知的,可能是cpu密集的php方式的,可疑的,可怕的框架,而不是众所周知的,文档完善,精心设计的其他框架,如wordpress或drupal,其中有很多关于缓存的文档(以及插件)处理缓存)在nginx + php_fpm平台上的php。 因此,我们有大约6个开放的php-fpm进程,它们在运行时分别消耗大量(30+,通常接近99%)的cpu-我丝毫不知道如何阻止他们使用太多的cpu 。我不知道是哪个PHP脚本导致了这些峰值,因为它们一直在发生……通常只有1或2个正在运行-但是当所有6个脚本运行时,我们会最大化所有8个cpus。 我的pool.d / www.conf文件具有以下设置: pm = dynamic pm.max_children = 10 pm.start_servers = 4 pm.min_spare_servers = 2 pm.max_spare_servers = 6 我们进行此^设置是因为,按照我的解释方式,我们的内存实际上是惊人的(htop显示使用了472/7000 + mb,没有交换等),并且我们可以处理更多的进程并中断等待获得的行已处理-但不幸的是,由于每个进程在运行时对我们的cpu来说过于繁琐-我们最终将CPU驱动通过屋顶-因此我们无法处理足够的进程。 问题 -我们到底该怎么做才能减少进程php-fpm cpu的使用,以便我们可以增加该pool conf文件中php-fpm的设置 -而且是的,/ var / log / php5- fpm.log大喊大叫我们要增加孩子并调整/增加最小/最大/启动服务器。但是,这样做会使我们的平均负载达到疯狂,如前所述。我们如何在不必使用缓存的情况下做到这一点或我们有哪些选择? 我的点子?我已经阅读了有关使用cpulimit的信息,以确保没有任何进程花费超过分配的cpu数量-但这会使速度变慢以致无法使用吗?或者这样做,我们可以提高运行多个流程的能力-我还认为可以运行两个池-一个池用于我们的前向网站(客户体验),另一个用于后端(这在一定时间影响我们的前向站点) -正在运行消耗性报告)。 我已经花了几天的时间在这个主题上进行研究,搜索等等,但是这很困难,因为每个人的情况对于他们的系统来说都是如此独特-问题在于这样一个特定的,闻所未闻的,可能写得不好的框架-很难找到解决方案。我们也不能只废弃此框架-我必须找到某种解决方案。 更新:我已经实现了memcache来存储php会话-因为该框架严重依赖于用户会话,并且我们系统的性质是员工经常一次使用多个选项卡-每个选项卡都返回到会话以确认功能/用户数据等...因此,我希望由此带来的效果有所提高-如果您愿意,欢迎对此发表评论-我将在明天达到更高的高峰时段时看看情况如何。

3
让清漆从高速缓存中获取旧数据时发送新数据吗?
我正在缓存动态生成的页面(PHP-FPM,NGINX),并在它们前面涂上清漆,效果很好。 但是,一旦达到缓存超时,我将看到: 新客户请求页面 清漆识别缓存超时 客户等待 清漆从后端获取新页面 varnish将新页面交付给客户端(并且还缓存了页面,用于下一个立即获取它的下一个请求) 我想做的是: 客户要求页面 清漆识别超时 清漆将旧页交付给客户 清漆从后端获取新页面并将其放入缓存 以我为例,过时的信息不是一个大问题,尤其是当我们谈论几分钟后的缓存超时时,这并不是一个好地方。 但是,我不想惩罚用户排队等待,而是立即交付东西。有可能吗? 为了说明这一点,这是对配置为缓存一分钟的服务器运行围攻5分钟的示例输出: HTTP/1.1,200, 1.97, 12710,/,1,2013-06-24 00:21:06 ... HTTP/1.1,200, 1.88, 12710,/,1,2013-06-24 00:21:20 ... HTTP/1.1,200, 1.93, 12710,/,1,2013-06-24 00:22:08 ... HTTP/1.1,200, 1.89, 12710,/,1,2013-06-24 00:22:22 ... HTTP/1.1,200, 1.94, 12710,/,1,2013-06-24 00:23:10 ... HTTP/1.1,200, 1.91, 12709,/,1,2013-06-24 00:23:23 ... HTTP/1.1,200, 1.93, 12710,/,1,2013-06-24 00:24:12 ... …

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.