我有一个不寻常的问题,我设法找到了根源。我目前设置在 CentOS Linux 6.3 nginx/1.0.15 PHP 版本 5.3.18 PHP-FPM 5.3.18-1
我有一个 refresh.txt 文件,每次有人发布更新新时间戳时都会写入该文件。我们还让 JS 每 1 秒检查一次时间戳的值。现在的问题是.. 假设 5 个人或更多人同时大喊写入 refresh.txt 文件,它将使用 100% cpu。只是为了写一个时间戳!!
我不知道它为什么这样做..
这是我的php代码。
if(!empty($rf_clear))
$tb_send = "clear";
else
$tb_send = time();
// Add flatfile check
$tbcheck = "refresh.txt";
$tbsend = fopen($tbcheck, 'w');
$tbtime = $tb_send;
fwrite($tbsend, $tbtime);
fclose($tbsend);
JS
talk_jax.open("GET", boardurl+"/talkbox/refresh.txt?nocache="+nocache);
我该如何解决这个问题或者解决这个问题?任何帮助我都会非常感激。
谢谢。
编辑:仍然没有解决这个问题。有没有办法限制请求?或者有没有更好的方法一起完成这一切。
我已经尝试过 APC 缓存,问题在于它没有足够快地提供 php 文件,所以喊声真的很慢,除非我做错了什么?
apc_store("refresh", time());
JS
talk_jax.open("GET", boardurl+"/talkbox/refresh.php?nocache="+nocache);
我也尝试过使用数据库。提供 php 文件同样太慢了。