FLVCache segment is full
Hi everybody.
I'm using FMS 3.5.3 (with updates) on my RedHat pool server.
Let me introduce (i cant tell much more details about this because of privacy).
Ive got 10 real machines under an hardware front VIP router. It just distribute the requests between these 10 machines.
Each machine has 4 Quadcore processor, with 8GB ram (it isnt so much, but a week ago we had 4GB by peer). Each machine has an great MD3000I storage that serves the mp4 files as audio streaming.
So far, so good...
And now here I'll tell you the real issues about my problems.
I've got an application that the users (from internet) chooses the audio wich they want to listen to.
There are more than 200.000 files(and growing) to be streamed to the internet clients, so I just use Stream from "recorded" files.
These huge amount of files are separated into 2 "applications", and these applications loads 3 instances as I can see in <Distribute numprocs="3">Instances</Distribute> in the Application.xml config file.
In my "fms.ini" file, the parameter SERVER.FLVCACHE_MAXSIZE was with default value(500MB) and i started notice in my core.00.log file, that I took a lot of "FLVCache segment is full" message.
I realized that each time I took this message, the streaming stops to some client and the client could be me either.
I cant tell about my number of clients that connects to my servers, but its a huge number of clients, streaming 1 or more files of my collection of more than 200.000 mp4 files.
There are peeks during the day that My servers generates lots(Kind of 90.000 each day) of "FLVCache segment is full" message.
I raise the value to 3000MB and my server crashed down seconds after some connections. Later I've tried again with 1000 so it crashed again. Finnaly I put 750 and it could handle and the Messages of Flvcache full went down to some acceptable(1000 each day).
I want to solve this issue of "FLVCache segment full"...
My doubts:
- FLVCache value is 500 for example.
1 - I'll take one instance per aplication, so in my case (ive got 2 apps) it will take 2 processes, and these processes will use NUMBER_OF_PROCESSES * FLVCACHE_MAXSIZE = TOTAL_MEMORY of fmscore process?
2 - Each application will have his own FLVCache of 500Mb?
3 - If i raise the number of applications, my memory will be splitted in more spaces so my problems will raise?
4 - If i put every files to be served into just one application, with 8 instances (like my number of processors), can I raise the value of FLVCACHE to 3000MB so I'll have more memory to cache works with more space and will stop the errors?
Ive read all the docs, and didnt figured out in which level FLVCache would act, and how it breaks my files.
5 - Can anyone explain how my mp4 files are cached and threated? There are any parameters to threat that?
7 - My IO is a kind of fast comparing to usual... Can I do more IO and serve the files direct from disk or a kind of virtual memory to FMS work?
I cant show more details from my kind of application, but if i was unclear about my issues and explanations, ask me to explain in other words...
English isnt my natural language! 🙂
Tks!
Everton
