HostBill Queue Performance

Overview


To improve front-end performance HostBill executes long-running tasks in the background queue. Those include, but not limit to:

  • Account provisioning, terminations, suspensions, upgrades etc.
  • Domain actions - registration, transfers, renewals etc.
  • Messaging - emails, sms, mobile notifications etc.
  • Updating counters, stats, cache etc.

When installing it's required to add crontab entry to run queue.php file every minute.

Improving Queue Performance


If you check Extras → System Logs → Task queue log in your HostBill, and find that there is a lot of tasks in Pending state, it means that queue is not performing well, which is caused by too-few queue workers available. To fix:

  • Non enterprise-install
    (HostBill installed manually - not through install.sh script; HostBill installed on control panel account; i.e: on cPanel)
    • If it's possible on your environment, try to install PHP extensions: POSIX and PCNTL
      Make sure that those extensions function like pcntl_fork are in disable_functions php.ini declaration for web, and are not disabled for cli usage.
    • If option above is not possible to do, duplicate cron entry for queue.php multiple times (ie 5x):

      * * * * * php -q /path/to/hb/queue.php -r
      * * * * * php -q /path/to/hb/queue.php -r
      * * * * * php -q /path/to/hb/queue.php -r
      * * * * * php -q /path/to/hb/queue.php -r
      * * * * * php -q /path/to/hb/queue.php -r
    • Problem: Queue is taking too much server resources (on cPanel install).
      Solution: Use queue in foreground mode (-r flag in queue.php - refer to Automation/cron setup article)
  • Enterprise install
    (HostBill installed through install.sh script, required php extensions are already in place) 
    If particular queue is not performing well (ie. Mailing queue is too slow) you can increase number of workers that this queue have active at once. To do so:
    • Login to your HostBill server through ssh.
    • Switch to HostBill user ( # su hostbill )
    • Run queue.php with -h argument to get list of queue options:

      php -q /path/to/hb/queue.php -h
    • In response to command above find argument responsible for setting number of workers on queue you wish to increase, ie: --hb_mail_queue=NUMBER
    • Edit crontab ( # crontab -e -u hostbill ) for HostBill user
    • To queue.php entry add argument with increased number of workers on queue you wish to speed up, like:
       

      * * * * * php -q /path/to/hb/queue.php --hb_mail_queue=6


Note about Office 365 email

When using Office365 as email provider number of mail workers cannot be be set to more than 3, as your emails may be rejected with error: 4.3.2 STOREDRV