HylaFAX The world's most advanced open source fax server

[Date Prev][Date Next][Thread Prev][Thread Next] [Date Index] [Thread Index]

AW: AW: Problems submitting very large Number of jobs sequentially



Hello!

The 50MB was "spinning" out of my mind. Only 1 Page/fax, about
45-60kb/fax.

The number of errors and the idle-Times of the modems is constant.

How do you changed the assignModem behaviour ? Any patch or code
snippit avaible ?

Thanks!

Christoph

-----Ursprüngliche Nachricht-----
Von: Didier Gautheron [mailto:dgautheron@magic.fr]
Gesendet am: Montag, 27. Juli 1998 04:42
An: Christoph Stotz
Cc: flexfax@sgi.com
Betreff: Re: AW: flexfax: Problems submitting very large Number of jobs
sequen tial ly

Hi

Christoph Stotz wrote:
> The theory of too many files don´t seem to me to be the solution.
Yes but a 1500-5000 files in a directory is a problem on all OS. and
here you have 4 to 5 dirs :
info
sendq
doneq
docq

and the directory from where jobs are 'sendfaxed'.

I don't undertand yours numbers
- Where did you get the 50Mbytes number for faxq?
- Spool partition 5000 faxes --> 3.5 Giga? How many pages per fax?

> Is it possible to tell hylafax to call a batch-file if the number
> of jobs in queue is smaller than the number of free modemlines
> avaible ?
I don't think you could do this out of the box.
But you could use some trick on xferlog and or faxwatch to get a tick
each time a fax is sent.


- Do you have starvation: some modems are staying a little idle at the
end of a call with plenty of jobs waiting? 
- Do you have more errors than under light load? 
 
The text below is over simplified but I hope there's no big mistake.

The delay is coming from the faxq's scheduler : it's a multi threads prg
using fork and exec to achieve its goals.
The main thread (faxq) is waiting in a loop for events:
events are coming from:
fifo : 
- hfaxq submiting job
- faxgetty
- faxsend (not sendfax , faxsend is the prg which actually sends the
fax)
child's dead:
- mainly faxsend
timeout
- mainly from jobs waiting queue

Of course when faxq is not in its waiting loop it doesn't see other
events coming, they are waiting in system's buffers.

faxq is shooting itself in the foot and it's pushing your computer in
the red zone with big queue :
runScheduler in faxd/faxQueueApp.c++ is processing all the jobs in the
run gueue even if no modems are in READY state. So in your case the main
thread is reading 1500 and up files (jobs status file) for nothing - if
the main goal of hylafax is sending faxes, not trashing out of
delay,tries or whatever faxes, of course - And runSheduler is called
many times: each time you add a job, each time a job finished, and so
on.

It's easy to change this ie : change assignModem behavior so
runScheduler will return when there's no more modems available . I tried
and yes now with a 10000 run queue, sendfax takes the same time. 
But side effects are unknow, after all it's just faxq's main routines
:).


Didier.




Project hosted by iFAX Solutions