Sunday, June 13, 2010

Some tips to fine tune hylafax faxserver

We have a heavy-duty fax server for broadcasting.  It is built using below components:
Asterisk  1.4.31 rc1
Hylafax 5.4.1
iaxmodem 1.7
DELL E5530 XEONX2 8G RAM, 500G harddisk in RAID1
90 iaxmodems are configured so that our full speed is around 3xE1.  We do not install hardware fax card on the same machine. Instead, we route the fax outbound calls to PSTN via SIP gateway, which literally has capacity over 100E1.
Given the hardware and bandwidth, we must perform the steps below to tap the capacity of our machine.
1. Set RingsBeforeAnswer to 0
In each modem-specific configuration file (/var/spool/hylafax/etc/ttyIAXxx.conf), update RingsBeforeAnswer to 0 (RingsBeforeAnswer: 0).  You don't need to restart faxq because it will re-read the config before each send.
Note that RingsBeforeAnswer:0 is the preferred way in SEND-ONLY environment because it gives more precise modem state information to faxgetty and faxq.
2. Set MaxConcurrentPreps to 2 
This parameter applies to faxq configuration only (/var/spool/hylafax/etc/config).  Its default value is 1, just to make sure that your unix box is not overwhelmed by bulk sending.  It should be, however, adjusted according to modem usage and workload observation. 
The unix command 'top' is a good indication of how busy your system is when using something other than default.  The cpu load of 3 to 4 is still safe in most environments.   In our case, setting MaxConcurrentPreps to 2 will just increase the cpu load to 4.
One could shortly see the impact of MaxConcurrentPreps on modem usage by running 'faxstat'.  The number of modems in 'Send' state is almost twice of using default value.
3. Use class1 modem
It is a good idea to configure class1 modems.  From our experience, it gives stable fax result.
Our recent fax job is over 100,000 faxes and completed in 4 days. 
Talk to me now via ZoiPPE! My ZoiPPE number is 85230003 

1 comment: