是否有任何命令可以读取文件并将其加载到linux磁盘缓存中?这是在最新的 debian 系统上。
我知道在一般情况下,最好让 linux 内核解决这个问题。但我有一个边缘情况。我有一台安装了 NFS 控制器的笔记本电脑,我想播放一个长视频文件,但我不想因为网络问题而中断播放。我知道稍后会完整读取(较大的)文件。我知道在播放这个视频时没有其他(真的)会运行。有足够的可用内存来存储此文件。
(我知道我可以将文件复制到新的 tmpfs 文件系统中,但我很好奇是否有更短的方法来做到这一点)
我在linuxatemyram 上阅读了有关 Linux 和缓存内存的信息,但有一些对我来说没有意义的东西,如果服务器的负载甚至很低,而不是释放一些缓存内存,它开始使用交换,这会使服务器变慢..
即使是现在,当服务器负载达到load average: 0.00, 0.00, 0.00一定程度时,一些内存会被交换,而超过 85% 的内存被用于交换。
我读过类似的问题,例如this和this,但有人提到不应该发生交换。同样,直到 3 周前,只有一小部分内存被缓存占用,我们没有更改任何可能影响缓存内存的内容。
你能告诉我这个值是否仍然可以,还是我有问题?
谢谢!
[root@web01 ~]# cat /proc/meminfo
MemTotal: 5183448 kB
MemFree: 249260 kB
Buffers: 330848 kB
Cached: 4317828 kB
SwapCached: 92 kB
Active: 2883596 kB
Inactive: 1882468 kB
HighTotal: 4315324 kB
HighFree: 63516 kB
LowTotal: 868124 kB
LowFree: 185744 kB
SwapTotal: 5799928 kB
SwapFree: 5799796 kB
Dirty: 368 kB
Writeback: 0 kB
AnonPages: 117356 kB
Mapped: 21076 kB
Slab: …Run Code Online (Sandbox Code Playgroud) 我们有以下 url 我们想要代理缓存:
file.php?parameter=one¶mater2=two&r=EPOCHTIMESTAMP
Run Code Online (Sandbox Code Playgroud)
查询字符串参数“参数”因请求而异。“paramater2”也是如此。
查询字符串参数 r 是我们用来确保客户端不提供缓存(在客户端)内容的时间戳。又名“缓存破坏者”。是的,我们还使用了所有适当的不缓存 h 标头。
现在,我们想通过 nginx 代理缓存其中的一些请求。是否可以指示 nginx 忽略 r 查询字符串参数,但在为条目设置缓存键时使用所有其他参数?如果我们不能忽略参数 r,那么 nginx 代理缓存将毫无用处,因为每个缓存键都是唯一的。
谢谢。
我运行着一个流量相当大的网站,由于一些不幸的事件,我在 Linode 的云中的机器宕机了。而且我只有一台暴露于外界的负载均衡器机器(一个 IP)。
此外,我的网站是可以镜像的6,000 多个静态页面的候选。现在我的 DNS 是CloudFlare。
我可以做些什么来维护我网站的静态镜像并路由到它,以防我的网站出现故障。
因为我是从 Linode 运行的,所以我没有像Route53这样的东西来检测一个 IP 地址的停机时间并指向另一个 IP 地址。
人们使用静态镜像站点和防止停机的策略是什么?
domain-name-system cache mirroring static-content cloudflare
我想将 Varnish 设置为 Apache 的反向代理缓存。
如何设置 Varnish 使其不缓存来自特定文件夹(及其子文件夹)的内容,例如 /public_html/shop/
在query_cache_size一个通常会希望能像那种环境看起来这使我迷惑不解,因为它默认为0。然后我从 MySQL 文档中阅读了有关query_cache_wlock_invalidate设置的以下内容
通常,当一个客户端在 MyISAM 表上获取 WRITE 锁时,如果查询缓存中存在查询结果,则不会阻止其他客户端发出从表中读取的语句。将此变量设置为 1 会导致获取表的 WRITE 锁,从而使查询缓存中引用该表的任何查询无效。这会强制尝试访问该表的其他客户端在锁定生效时等待。
它没有提及 InnoDB 引擎。当 Innodb 对行/表有写锁时,此设置是否也阻止从缓存读取?
我目前正在将旧网站(从旧托管服务提供商)转移到现代解决方案。由于我的上下文特定要求(包括财务限制),我决定在具有静态 IP 地址的 Digitalocean droplet(虚拟化 linux 实例)上备份和复制网站104.131.187.206。我已经适当地配置了所有内容,清理了复制与其系统紧密耦合的 Web 应用程序等产生的各种松散端,并且复制的网站运行良好。
现在,我的目标是将现有域名指向DO droplet 上的mcbc.on.ca新重复网站。传统(共享)托管服务提供商的 IP 地址是216.251.32.98. 显然mcbc.on.ca一直指向这个地址。我想要的是mcbc.on.ca指向104.131.187.206. 此外,我仍在使用传统托管服务提供商的 DNS 和名称服务器。
我的任务应该很简单 - 只需修改mcbc.on.caZone 文件中现有的 A 条目,使其现在指向104.131.187.206. 现在,我还想保留对原始网站的现有引用,因此我original.mcbc.on.ca为该点添加了一个新的 A 条目216.251.32.98。
我昨天成功完成了所有这些,并且我的 DNS 更改已经成功传播(使用此工具验证)。仅供参考,我进行更改已经大约 12 个小时了。
我的问题:由于某种奇怪的原因,每当我访问 网站时mcbc.on.ca,它有时会解析为 OLD 地址216.251.32.98,而有时会正确解析为104.131.187.206。我会说旧地址的频率约为 40%,新地址的频率约为 60%。这显然是一个问题。
考虑到我已经等了很长时间(虽然我知道 12 小时肯定少于 48 小时),以及我上面提到的工具显示 DNS 记录已经传播到所有世界上, …
我当前用于 drupal 配置的 nginx 出现以下错误。不知何故,我无法启用 nginx 缓存。尝试了不同的配置,但加班我得到了同样的错误。有人可以帮忙吗?
nginx: [emerg] the size 5242880 of shared memory zone "MYAPP" conflicts with already declared size 0 in /etc/nginx/nginx.conf:51
nginx: configuration file /etc/nginx/nginx.conf test failed
Run Code Online (Sandbox Code Playgroud)
我的 nginx.conf
user nginx;
worker_processes auto;
http { include /etc/nginx/conf.d/*.conf;
include /etc/nginx/mime.types;
fastcgi_cache_path /var/cache/nginx levels=1:2 keys_zone=MYAPP:5M max_size=256M inactive=2h;
fastcgi_cache_key “$scheme$request_method$host$request_uri”;
add_header X-Cache $upstream_cache_status;
## Set a cache_uid variable for authenticated users.
map $http_cookie $cache_uid {
default nil; # hommage to Lisp :)
~SESS[[:alnum:]]+=(?<session_id>[[:alnum:]]+) $session_id;
}
map $request_method $no_cache { …Run Code Online (Sandbox Code Playgroud) 我有两个带有两个代码库的网站,但是当我更改一个代码库时,我会看到两者都发生了变化。
我有两个同一个网站的结帐。它们被设置为通过带有 FastCGI 的 Apache2 使用 PHP-FPM。结帐在:
/var/www/site1
/var/www/site2
Run Code Online (Sandbox Code Playgroud)
Apache 配置如下所示:
<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 /var/run/site2-fpm.sock -pass-header Authorization -idle-timeout 30000 -flush
</IfModule>
</VirtualHost>
Run Code Online (Sandbox Code Playgroud)
FPM 池配置如下所示:
[site1]
user = site1-user
group = site1-group
listen = /var/run/site1-fpm.sock
listen.owner …Run Code Online (Sandbox Code Playgroud) 我在 LVM 上运行 ext4 文件系统。我正在考虑的两个主要加速选项是 LVM 缓存和外部 ext4 日志。
听起来如果我为此使用单个 SSD,回写模式下的 LVM 缓存与在外部设备上拥有 ext4 日志是一样的......
这是正确的解释吗?
cache ×10
linux ×2
nginx ×2
apache-2.2 ×1
apache-2.4 ×1
cloudflare ×1
domain-name ×1
drupal ×1
ext4 ×1
fastcgi ×1
http ×1
innodb ×1
kernel ×1
lvm ×1
memory ×1
mirroring ×1
mysql ×1
opcode ×1
optimization ×1
php-fpm ×1
querystring ×1
swap ×1
varnish ×1