Il Monday 17 March 2008 23:11:52 Ross Finlayson ha scritto: > >So it seems to be a strange threading or concurrency problem > > Unlikely, because the LIVE555 code is single-threaded.
Do you think it could be easely extended to be multithreaded? > You're clearly running into a resource limit; the question now is: > Which resource? Nice question. I intially thought that my performance issue was a FAQ :-( > Because your 95-stream limit seems to be happening > per process (rather than machine-wide), the first thing I would look > at is increasing the maximum number of open files (sockets) per > process. No, 95-96 it is not a limit like "I cannot accept other clients" but just a visual quality limit, I could reach like 300 streams before hitting disk IO 100%. Anyway, "ulimit -a" reports 1024 open files max as default on debian. > Linux has a way to increase this (I'm not sure of the > details, though). Yes, ulimit can increase that, but I reported no differences increasing max open files. > Of course, down the road you need to also consider running into > limits of network bandwidth and/or file system bandwidth. Bandwith seems to me to not be not really an issue, because on that machine I have 3 bonded gibabit interfaces used for like 6% each (at 95 streams). I will investigate filesystem bandwitdth but I have reported same limits between ext3, ext3 with largefile4 and xfs (ranging from 3 sas 10k to 6 sas 15k). So I'm little clueless, anyone did similar tests* before? * My test system is like that, you need to generate a list of movies streamables by live555MediaServer like the one below and invoke "test_rtsp.sh $filelist $url $baseport", you could then add streams until a client starts to lose frames/packets: $ filelist=/srv/movies/list $ url=rtsp://10.0.0.10:8554 $ baseport=1500 $ cat $filelist b00560.mpg.ts b00635.mpg.ts b00711.mpg.ts b00729.mpg.ts b00752.mpg.ts b00753.mpg.ts b00759.mpg.ts b00760.mpg.ts b00762.mpg.ts b00798.mpg.ts $ cat test_rtsp.sh #!/bin/sh MOVIES=$1 URL=$2 BASEPORT=$3 i=0 for movie in `cat $MOVIES` ; do sleep 3 PORT=$(( $BASEPORT + $i )) #echo $i: openRTSP -r -p $PORT $URL/$movie echo $i: openRTSP -p $PORT $URL/$movie openRTSP -p $PORT $URL/$movie > /dev/null 2>&1 & i=$(( i+2 )) done -- ESC:wq _______________________________________________ live-devel mailing list live-devel@lists.live555.com http://lists.live555.com/mailman/listinfo/live-devel