I posted this over in the transcoder forum, because I figure it has something to do with that, however, it may just be a normal thing.
thread over in the other forum is
This sever (3.6.2, windows, 16 cores, 24GB ram with 8000M heap size) is running four live streams with little traffic. Two are single bitrate, two are transcoded from 720p to 360p, 240p and 160p. Starting up the server and transcoders has the system running at about 750MB to 1000MB of RAM in use. Since the transcoder mountpoints were started, the amount of memory Wowza is using has been steadily creeping up. Today, 6 days later, we are averaging 2.8GB of RAM, and the trend is a pretty linear line upwards.
Is this growth in memory use normal? I am worried we’ll run out of memory after a few weeks when it hits the 8GB allocated for java.
server has “Java HotSpot™ 64-Bit Server VM version 23.0-b21”, threads are around 900, CPU runs around 25% when transcoding two sources.
conf files that may be relevant
@echo off
set _EXECJAVA=java
set JAVA_OPTS=-server -Xmx8000M
rem If running JDK, uncomment to run server environment (faster)
rem set JAVA_OPTS=%JAVA_OPTS% -server
rem Better garbage collection setting to avoid long pauses
rem set JAVA_OPTS=%JAVA_OPTS% -XX:+UseConcMarkSweepGC -XX:+UseParNewGC -XX:NewSize=512m
rem Uncomment to log debug garbage collection information
rem set NOW=%date:~10,4%-%date:~4,2%-%date:~7,2%-%time:~0,2%-%time:~3,2%
rem set JAVA_OPTS=%JAVA_OPTS% -verbose:gc -Xloggc:"%WMSAPP_HOME%/logs/gc_%NOW%.log" -XX:+PrintGCDetails -XX:+PrintGCTimeStamps -XX:+PrintHeapAtGC -XX:+PrintGCApplicationConcurrentTime -XX:+PrintGCApplicationStoppedTime
rem Uncomment to write heap dump on OutOfMemoryError
rem set JAVA_OPTS=%JAVA_OPTS% -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=%WMSAPP_HOME%
rem Uncomment to fix multicast crosstalk problem when streams share multicast port
rem set JAVA_OPTS=%JAVA_OPTS% -Djava.net.preferIPv4Stack=true
rem Uncomment to force Java to use specific language settings
rem set JAVA_OPTS=%JAVA_OPTS% -Duser.language=en -Duser.country=US -Dfile.encoding=Cp1252
set EXECCSCRIPT=cscript
if not exist "%SystemRoot%\SysWOW64\cscript.exe" goto skip64bitcscript
set EXECCSCRIPT="%SystemRoot%\SysWOW64\cscript.exe"
:skip64bitcscript
set WMSCONFIG_URL=
rem set WMSAPP_HOME=C:/wms2
rem set WMSCONFIG_HOME=C:/wms2
set WMSENVOK="false"
rem Guess WMSAPP_HOME if not defined
set CURRENT_DIR=%cd%
if not "%WMSAPP_HOME%" == "" goto gotAppHome
set WMSAPP_HOME=%CURRENT_DIR%
if exist "%WMSAPP_HOME%\bin\startup.bat" goto okAppHome
cd ..
set WMSAPP_HOME=%cd%
cd %CURRENT_DIR%
:gotAppHome
if exist "%WMSAPP_HOME%\bin\startup.bat" goto okAppHome
%EXECSCRIPT% "displaymsg.vbs" "The WMSAPP_HOME environment variable is missing or not defined correctly (%WMSAPP_HOME%). This environment variable is needed to run the server."
goto end
:okAppHome
rem Guess WMSCONFIG_HOME if not defined
set CURRENT_DIR=%cd%
if not "%WMSCONFIG_HOME%" == "" goto gotConfigHome
set WMSCONFIG_HOME=%WMSAPP_HOME%
if exist "%WMSCONFIG_HOME%\conf\Server.license" goto okConfigHome
cd ..
set WMSCONFIG_HOME=%cd%
cd %CURRENT_DIR%
:gotConfigHome
if exist "%WMSCONFIG_HOME%\conf\Server.license" goto okConfigHome
%EXECSCRIPT% "displaymsg.vbs" "The WMSCONFIG_HOME environment variable is missing or not defined correctly (%WMSCONFIG_HOME%). This environment variable is needed to run the server."
goto end
:okConfigHome
%EXECSCRIPT% "checkjavahome.vbs" //Nologo
if not %errorlevel% == 0 goto end
set WMSENVOK="true"
set _EXECJAVA=%JAVA_HOME%\bin\java.exe
:end
vhost.xml
<Root>
<VHost>
<HostPortList>
<HostPort>
<ProcessorCount>16</ProcessorCount>
<IpAddress>128.104.nnn.nnn</IpAddress>
<!-- 128.104.144.134 is our fixed 10 gig number -->
<!-- Separate multiple ports with commas -->
<!-- 80: HTTP, RTMPT -->
<!-- 554: RTSP -->
<Port>1935,80,443,554</Port>
<HTTPIdent2Response></HTTPIdent2Response>
<SocketConfiguration>
<ReuseAddress>true</ReuseAddress>
<!-- suggested settings for video on demand applications -->
<ReceiveBufferSize>65000</ReceiveBufferSize>
<ReadBufferSize>65000</ReadBufferSize>
<SendBufferSize>65000</SendBufferSize>
<!-- suggest settings for low latency chat and video recording applications
<ReceiveBufferSize>32000</ReceiveBufferSize>
<ReadBufferSize>32000</ReadBufferSize>
<SendBufferSize>32000</SendBufferSize>
-->
<KeepAlive>true</KeepAlive>
<!-- <TrafficClass>0</TrafficClass> -->
<!-- <OobInline>false</OobInline> -->
<!-- <SoLingerTime>-1</SoLingerTime> -->
<!-- <TcpNoDelay>false</TcpNoDelay> -->
<AcceptorBackLog>100</AcceptorBackLog>
</SocketConfiguration>
<HTTPStreamerAdapterIDs>cupertinostreaming,smoothstreaming,sanjosestreaming,dvrchunkstreaming,mpegdashstreaming</HTTPStreamerAdapterIDs>
<HTTPProviders>
<HTTPProvider>
<BaseClass>com.wowza.wms.http.HTTPCrossdomain</BaseClass>
<RequestFilters>*crossdomain.xml</RequestFilters>
<AuthenticationMethod>none</AuthenticationMethod>
</HTTPProvider>
<HTTPProvider>
<BaseClass>com.wowza.wms.http.HTTPClientAccessPolicy</BaseClass>
<RequestFilters>*clientaccesspolicy.xml</RequestFilters>
<AuthenticationMethod>none</AuthenticationMethod>
</HTTPProvider>
<HTTPProvider>
<BaseClass>com.wowza.wms.http.HTTPProviderMediaList</BaseClass>
<RequestFilters>*jwplayer.rss|*jwplayer.smil|*medialist.smil|*manifest-rtmp.f4m</RequestFilters>
<AuthenticationMethod>none</AuthenticationMethod>
</HTTPProvider>
<HTTPProvider>
<BaseClass>com.wowza.wms.http.HTTPServerVersion</BaseClass>
<RequestFilters>*</RequestFilters>
<AuthenticationMethod>none</AuthenticationMethod>
</HTTPProvider>
</HTTPProviders>
</HostPort>
<!-- 443 with SSL -->
<!--
<HostPort>
<ProcessorCount>4</ProcessorCount>
<IpAddress>*</IpAddress>
<Port>443</Port>
<HTTPIdent2Response></HTTPIdent2Response>
<SSLConfig>
<KeyStorePath>${com.wowza.wms.context.VHostConfigHome}/conf/keystore.jks</KeyStorePath>
<KeyStorePassword>[password]</KeyStorePassword>
<KeyStoreType>JKS</KeyStoreType>
<SSLProtocol>TLS</SSLProtocol>
<Algorithm>SunX509</Algorithm>
<CipherSuites></CipherSuites>
<Protocols></Protocols>
</SSLConfig>
<SocketConfiguration>
<ReuseAddress>true</ReuseAddress>
<ReceiveBufferSize>65000</ReceiveBufferSize>
<ReadBufferSize>65000</ReadBufferSize>
<SendBufferSize>65000</SendBufferSize>
<KeepAlive>true</KeepAlive>
<AcceptorBackLog>100</AcceptorBackLog>
</SocketConfiguration>
<HTTPStreamerAdapterIDs>cupertinostreaming,smoothstreaming,sanjosestreaming,dvrchunkstreaming,mpegdashstreaming</HTTPStreamerAdapterIDs>
<HTTPProviders>
<HTTPProvider>
<BaseClass>com.wowza.wms.http.HTTPCrossdomain</BaseClass>
<RequestFilters>*crossdomain.xml</RequestFilters>
<AuthenticationMethod>none</AuthenticationMethod>
</HTTPProvider>
<HTTPProvider>
<BaseClass>com.wowza.wms.http.HTTPClientAccessPolicy</BaseClass>
<RequestFilters>*clientaccesspolicy.xml</RequestFilters>
<AuthenticationMethod>none</AuthenticationMethod>
</HTTPProvider>
<HTTPProvider>
<BaseClass>com.wowza.wms.http.HTTPProviderMediaList</BaseClass>
<RequestFilters>*jwplayer.rss|*jwplayer.smil|*medialist.smil|*manifest-rtmp.f4m</RequestFilters>
<AuthenticationMethod>none</AuthenticationMethod>
</HTTPProvider>
<HTTPProvider>
<BaseClass>com.wowza.wms.http.HTTPServerVersion</BaseClass>
<RequestFilters>*</RequestFilters>
<AuthenticationMethod>none</AuthenticationMethod>
</HTTPProvider>
</HTTPProviders>
</HostPort>
-->
<!-- Admin HostPort -->
<HostPort>
<ProcessorCount>16</ProcessorCount>
<IpAddress>128.104.nnn.nnn</IpAddress>
<Port>8086</Port>
<HTTPIdent2Response></HTTPIdent2Response>
<SocketConfiguration>
<ReuseAddress>true</ReuseAddress>
<ReceiveBufferSize>16000</ReceiveBufferSize>
<ReadBufferSize>16000</ReadBufferSize>
<SendBufferSize>16000</SendBufferSize>
<KeepAlive>true</KeepAlive>
<AcceptorBackLog>100</AcceptorBackLog>
</SocketConfiguration>
<HTTPStreamerAdapterIDs></HTTPStreamerAdapterIDs>
<HTTPProviders>
<HTTPProvider>
<BaseClass>com.wowza.wms.http.streammanager.HTTPStreamManager</BaseClass>
<RequestFilters>streammanager*</RequestFilters>
<AuthenticationMethod>admin-digest</AuthenticationMethod>
</HTTPProvider>
<HTTPProvider>
<BaseClass>com.wowza.wms.http.HTTPServerInfoXML</BaseClass>
<RequestFilters>serverinfo*</RequestFilters>
<AuthenticationMethod>admin-digest</AuthenticationMethod>
</HTTPProvider>
<HTTPProvider>
<BaseClass>com.wowza.wms.http.HTTPConnectionInfo</BaseClass>
<RequestFilters>connectioninfo*</RequestFilters>
<AuthenticationMethod>admin-digest</AuthenticationMethod>
</HTTPProvider>
<HTTPProvider>
<BaseClass>com.wowza.wms.http.HTTPConnectionCountsXML</BaseClass>
<RequestFilters>connectioncounts*</RequestFilters>
<AuthenticationMethod>admin-digest</AuthenticationMethod>
</HTTPProvider>
<HTTPProvider>
<BaseClass>com.wowza.wms.transcoder.httpprovider.HTTPTranscoderThumbnail</BaseClass>
<RequestFilters>transcoderthumbnail*</RequestFilters>
<AuthenticationMethod>admin-digest</AuthenticationMethod>
</HTTPProvider>
<HTTPProvider>
<BaseClass>com.wowza.wms.http.HTTPProviderMediaList</BaseClass>
<RequestFilters>medialist*</RequestFilters>
<AuthenticationMethod>admin-digest</AuthenticationMethod>
</HTTPProvider>
<HTTPProvider>
<BaseClass>com.wowza.wms.livestreamrecord.http.HTTPLiveStreamRecord</BaseClass>
<RequestFilters>livestreamrecord*</RequestFilters>
<AuthenticationMethod>admin-digest</AuthenticationMethod>
</HTTPProvider>
<HTTPProvider>
<BaseClass>com.wowza.wms.http.HTTPServerVersion</BaseClass>
<RequestFilters>*</RequestFilters>
<AuthenticationMethod>none</AuthenticationMethod>
</HTTPProvider>
</HTTPProviders>
</HostPort>
</HostPortList>
<HTTPStreamerAdapters>
<HTTPStreamerAdapter>
<ID>smoothstreaming</ID>
<Name>smoothstreaming</Name>
<Properties>
</Properties>
</HTTPStreamerAdapter>
<HTTPStreamerAdapter>
<ID>cupertinostreaming</ID>
<Name>cupertinostreaming</Name>
<Properties>
</Properties>
</HTTPStreamerAdapter>
<HTTPStreamerAdapter>
<ID>sanjosestreaming</ID>
<Name>sanjosestreaming</Name>
<Properties>
</Properties>
</HTTPStreamerAdapter>
<HTTPStreamerAdapter>
<ID>dvrchunkstreaming</ID>
<Name>dvrchunkstreaming</Name>
<Properties>
</Properties>
</HTTPStreamerAdapter>
<HTTPStreamerAdapter>
<ID>mpegdashstreaming</ID>
<Name>mpegdashstreaming</Name>
<Properties>
</Properties>
</HTTPStreamerAdapter>
</HTTPStreamerAdapters>
<HandlerThreadPool>
<PoolSize>480</PoolSize>
</HandlerThreadPool>
<TransportThreadPool>
<PoolSize>360</PoolSize>
</TransportThreadPool>
<IdleWorkers>
<WorkerCount>4</WorkerCount>
<CheckFrequency>50</CheckFrequency>
<MinimumWaitTime>5</MinimumWaitTime>
</IdleWorkers>
<NetConnections>
<ProcessorCount>16</ProcessorCount>
<IdleFrequency>250</IdleFrequency>
<SocketConfiguration>
<ReuseAddress>true</ReuseAddress>
<ReceiveBufferSize>65000</ReceiveBufferSize>
<ReadBufferSize>65000</ReadBufferSize>
<SendBufferSize>65000</SendBufferSize>
<KeepAlive>true</KeepAlive>
<!-- <TrafficClass>0</TrafficClass> -->
<!-- <OobInline>false</OobInline> -->
<!-- <SoLingerTime>-1</SoLingerTime> -->
<!-- <TcpNoDelay>false</TcpNoDelay> -->
<AcceptorBackLog>100</AcceptorBackLog>
</SocketConfiguration>
</NetConnections>
<HTTPTunnel>
<KeepAliveTimeout>2000</KeepAliveTimeout>
</HTTPTunnel>
<Client>
<ClientTimeout>90000</ClientTimeout>
<IdleFrequency>250</IdleFrequency>
</Client>
<!-- RTP/Authentication/Methods defined in Authentication.xml. Default setup includes; none, basic, digest -->
<RTP>
<IdleFrequency>75</IdleFrequency>
<DatagramConfiguration>
<Incoming>
<ReuseAddress>true</ReuseAddress>
<ReceiveBufferSize>1024000</ReceiveBufferSize>
<SendBufferSize>65000</SendBufferSize>
<!-- <MulticastBindToAddress>true</MulticastBindToAddress> -->
<!-- <MulticastInterfaceAddress>192.168.1.22</MulticastInterfaceAddress> -->
<!-- <TrafficClass>0</TrafficClass> -->
<MulticastTimeout>50</MulticastTimeout>
<DatagramMaximumPacketSize>4096</DatagramMaximumPacketSize>
</Incoming>
<Outgoing>
<ReuseAddress>true</ReuseAddress>
<ReceiveBufferSize>65000</ReceiveBufferSize>
<SendBufferSize>65000</SendBufferSize>
<!-- <MulticastBindToAddress>true</MulticastBindToAddress> -->
<!-- <MulticastInterfaceAddress>192.168.1.22</MulticastInterfaceAddress> -->
<!-- <TrafficClass>0</TrafficClass> -->
<MulticastTimeout>50</MulticastTimeout>
<DatagramMaximumPacketSize>4096</DatagramMaximumPacketSize>
</Outgoing>
</DatagramConfiguration>
<UnicastIncoming>
<ProcessorCount>8</ProcessorCount>
</UnicastIncoming>
<UnicastOutgoing>
<ProcessorCount>16</ProcessorCount>
</UnicastOutgoing>
<MulticastIncoming>
<ProcessorCount>4</ProcessorCount>
</MulticastIncoming>
<MulticastOutgoing>
<ProcessorCount>4</ProcessorCount>
</MulticastOutgoing>
</RTP>
<Application>
<ApplicationTimeout>60000</ApplicationTimeout>
<PingTimeout>12000</PingTimeout>
<ValidationFrequency>20000</ValidationFrequency>
<MaximumPendingWriteBytes>0</MaximumPendingWriteBytes>
<MaximumSetBufferTime>60000</MaximumSetBufferTime>
</Application>
<StartStartupStreams>true</StartStartupStreams>
<!-- Properties defined here will be added to the IVHost.getProperties() collection -->
<Properties>
</Properties>
</VHost>
</Root>