有一个带有 Raid 10 的 NAS 来保存资源。
一次,大约有 24 台机器尝试访问相同的资源(渲染农场中的 3d 渲染)。
虽然网络是1Gbps,NAS也快,但是速度确实降低了,出现了瓶颈现象。
我想知道是否有一种硬件方式可以将 SSD 用作 NAS 的 Cache 机器(Raid 10)。
我的问题是:如果涉及登录会话,我可以实现相同的目标吗?IE。当我只想向注册用户提供内容而不是其他用户时。那么如何在涉及缓存时克服会话,并最终在下次将缓存用于另一个会话?
详细场景:
我的网站的目标是仅向注册用户提供内容。
有大量用户登录,每个用户都有不同的会话 ID。
一个 php 页面查询数据库并找到用户“A”想要的“XYZ”并生成 HTML 输出。
现在,如果用户“B” (具有不同的会话 ID)在一段时间后想要相同的“XYZ”,如何让 Nginx 从缓存中传送,而无需让 php 页面再次查询数据库。
以前有人这样做过吗?
关于可能的问题欺骗的澄清:
nginx 将动态内容缓存为静态 我的问题是在涉及会话时缓存动态内容。上面的问题更笼统(没有提到会话)。
之间有什么关系:
innodb_buffer_pool_size和query_cache_ *
两者都用于缓存查询,但有什么区别?我可以同时使用吗?
谢谢
这可能是 Windows DNS 特定问题或一般 DNS 最佳实践问题 - 我不确定!
我们将我们的第 3 方 DNS 条款从提供商 A 迁移到提供商 B。
我注意到我们的内部递归 Windows DNS 服务器仍然为指向提供商 A 的服务器的域缓存了 NS 记录,即使几天前我与我们的注册商更改了名称服务器,即使选择缓存记录的属性显示 TTL 为1天。
在此缓存中的 NS 记录过期 24 小时后,DNS 服务器是否会返回 TLD 服务器以更新权限,还是会优先访问 dns1.providera.com,因为这是它缓存的内容?
在这种情况下,我安排让提供商 A 的服务器运行一周以允许更改传播,因此 dns1.providera.com 仍处于活动状态,并且仍会提供表示 dns1.providera.com 的 NS 和 SOA 记录。负责这个域。鉴于这一事实,Windows DNS 服务器是否会返回 TLD 并获取权限更改,还是只是假设一切正常并在其缓存的 NS 记录上更新时间戳?
我想知道确保缓存选择它的最佳方法是什么。我是不是该:-
(1) 将提供者 A 的服务器留在原地并处于活动状态并等待缓存赶上......基本上我们现在正在做的事情似乎有问题 - 可能专门针对 Windows 服务器,或者可能更广泛。(2) 将提供者 A 的服务器留在原地,但更改它们提供的 NS 和/或 SOA 信息以告诉缓存新服务器负责。(3) 在 2*TTL 之后移除提供者 A 的服务器以强制更新剩余的缓存。
(2) 的问题在于,在提供者 A 的系统上,我似乎无法将 NS 或 SOA …
我这里有问题。
我用鱿鱼透明代理设置了我的路由器,还做静态文件缓存。
它可以成功缓存静态文件。但它不能缓存带有查询字符串的静态文件。示例:http :
//www.example.com/style.css => 这将成功缓存
http://www.example.com/style.css?v=1.1 => 这不会缓存。
有谁知道为什么以及如何解决这个问题?
我正在尝试仅为locationnginx 中的特定块设置一些标头。
我遇到的问题是这些location块包含rewrite语句,显然似乎删除了自定义标题。
在这个例子中,我有两个我想要的规则:
/static应该有expires max;(它设置标题Cache-Control: max-age=some huge value和Expires: some future date really far off),并将它们的名字重写为不包含的内容/staticCache-Control: public(没有max-age)这是我尝试的配置:
server {
listen [::]:80;
root /somepath;
location /static {
expires max;
rewrite /static(.*) /whatever$1;
}
add_header Cache-Control public;
}
Run Code Online (Sandbox Code Playgroud)
并具有以下目录结构:
/somepath
/somepath/f1.txt
/somepath/static/f2.txt
Run Code Online (Sandbox Code Playgroud)
然后我们得到以下信息:
f1.txt: Cache-Control: public, 没有Expires标题f2.txt: Cache-Control: public, 没有Expires标题这对f1.txt但无效 …
我在静态内容上添加了X-Accel-Expires标头以及Last-Modified标头。我想知道缓存这些元素而不缓存任何其他内容的正确设置是什么。
这是我目前所拥有的,但它不缓存任何内容:
http {
include /etc/nginx/mime.types;
access_log /var/log/nginx/access.log;
sendfile on;
client_max_body_size 2000m;
keepalive_timeout 65;
tcp_nodelay on;
gzip on;
gzip_disable "MSIE [1-6]\.(?!.*SV1)";
include /etc/nginx/conf.d/*.conf;
include /etc/nginx/sites-enabled/*;
ssl_certificate /etc/nginx/chain.pem;
ssl_certificate_key /etc/nginx/key.key;
proxy_cache_path /var/lib/nginx/cache levels=1:2 keys_zone=cache:30m max_size=1G;
proxy_temp_path /var/lib/nginx/proxy 1 2;
proxy_cache_use_stale error timeout invalid_header http_502;
server {
listen 80;
server_name domain;
location / {
proxy_pass http://127.0.0.1:8080;
proxy_set_header X-Real-IP $remote_addr;
proxy_read_timeout 700;
proxy_set_header Host $http_host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
Run Code Online (Sandbox Code Playgroud) 在工作中,我使用(真实的)硬件 RAID 控制器(带有电池支持的写入缓存)管理多台机器,当阵列由于磁盘故障而降级时,这些控制器有一个令人讨厌的习惯,即回退到直写行为。
我想不出任何原因,所以我将这些阵列配置为在使用热备件重建阵列时强制进入写回行为,现在一切似乎都运行良好。
任何人都可以想出为什么在阵列由于磁盘故障而以降级模式运行时切换到直写是个好主意的原因吗?(当然,如果 BBU 本身出现故障,则直写而不是回写是完全有意义的)。
鱿鱼.conf:
http_access allow all
# Squid normally listens to port 3128
http_port 3128 accel defaultsite=localhost no-vhost
cache_peer localhost parent 80 0 no-query originserver name=myAccel
cache_peer_access myAccel allow all
# Uncomment and adjust the following to add a disk cache directory.
cache_dir ufs /usr/local/var/cache/squid 100 16 256
# Leave coredumps in the first cache dir
coredump_dir /usr/local/var/cache/squid
Run Code Online (Sandbox Code Playgroud)
Squid 3.2.9,通过 Homebrew 安装在 OSX 上
localhost: ~ $ squid -v
Squid Cache: Version 3.2.9
configure options: '--disable-debug' '--disable-dependency-tracking' '--prefix=/usr/local/Cellar/squid/3.2.9' '--localstatedir=/usr/local/var' 'CC=cc' 'CXX=c++' 'PKG_CONFIG_LIBDIR=/usr/lib/pkgconfig' …Run Code Online (Sandbox Code Playgroud) 我很清楚这个站点上已经多次讨论过 I/O 等待,但所有其他主题似乎都涵盖了恒定的I/O 延迟,而我们需要在我们的服务器上解决的 I/O 问题发生在不规则的(短) 间隔,但始终存在高达 20k ms 的等待时间和 2 秒的服务时间的大量尖峰。受影响的磁盘是 /dev/sdb(希捷 Barracuda,详情见下文)。
典型的 iostat -x 输出有时看起来像这样,这是一个极端示例,但绝非罕见:
iostat (Oct 6, 2013)
tps rd_sec/s wr_sec/s avgrq-sz avgqu-sz await svctm %util
0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
16.00 0.00 156.00 9.75 21.89 288.12 36.00 57.60
5.50 0.00 44.00 8.00 48.79 2194.18 181.82 100.00
2.00 0.00 16.00 8.00 46.49 3397.00 500.00 100.00
4.50 0.00 40.00 8.89 43.73 5581.78 222.22 100.00 …Run Code Online (Sandbox Code Playgroud)