検索

ホームページ  >  に質問  >  本文

linux - php循环对服务器造成的压力问题?

主要实现功能:
linux服务器上使用php脚本做每隔10秒的定时查表任务。

当前实现方法:

php脚本进程守护工具: supervisor
php脚本逻辑:

while(true) {
    // some logic code...
    // 查询不大的表中的特定数据并处理
    sleep(10);
}

1. 请问这样做会不会对服务器带来很大的压力呢?
2. if 1. true, 如果会的话,压力会主要出在什么地方?
3. php脚本的类似定时任务有什么更优方法实现?

PHPzPHPz2792日前688

全員に返信(7)返信します

  • PHP中文网

    PHP中文网2017-04-11 09:59:47

    Linux cron服务

        crontab -u www -e

    返事
    0
  • ringa_lee

    ringa_lee2017-04-11 09:59:47

    crontab 啊, 定时任务 用crontab 比较常用吧, 10s运行一次对服务器没啥压力啊, 又不是并发,

    返事
    0
  • 伊谢尔伦

    伊谢尔伦2017-04-11 09:59:47

    linux中sleep是挂起进程或是线程了,每10s检测一次的频率算很小了,不大可能给系统造成压力。定时检查在一些知名开源的项目中也很常用,尽管用就是了。单独开一个线程或是进程专门用作定时检测。

    返事
    0
  • 巴扎黑

    巴扎黑2017-04-11 09:59:47

    如果条件允许,最好把web服务器和这种脚本服务器分开。这样脚本服务器的效率能得到保障,不会收web请求量的影响。

    返事
    0
  • 大家讲道理

    大家讲道理2017-04-11 09:59:47

    有可能,要看你操作的内容,如果占用内存一直上升,但是没有释放掉,最后服务器应该会完蛋吧。。东西用完释放掉应该没问题

    返事
    0
  • 怪我咯

    怪我咯2017-04-11 09:59:47

    毫无问题.关键看你执行的是什么.

    返事
    0
  • 高洛峰

    高洛峰2017-04-11 09:59:47

    如果不sleep的话,那CPU使用率还是很高的。之前有在阿里云测试过,看过监控。CPU基本在50%左右(不过服务器配置也偏低,个人用);加上sleep,CPU基本1%以内


    不过个人的感觉影响的因素,不单是CPU。比如带宽,硬盘读写,内存等均有可能。只是看业务逻辑不同,影响的因素也不同~

    另建议可以用usleep,当时好像是折算后0.1秒的时候性能就区别比较大(不过具体数值忘记了,自己测吧!)

    返事
    0
  • キャンセル返事