Стал подвисать dhcp сервер. (BGDHCP_IPN_6.0_160.zip)
dhcp.out
Код:
ok
Exception in thread "Thread-9170" java.lang.OutOfMemoryError: Java heap space
at java.io.BufferedReader.<init>(Unknown Source)
at java.io.BufferedReader.<init>(Unknown Source)
at javax.xml.parsers.FactoryFinder.findJarServiceProvider(Unknown Source)
at javax.xml.parsers.FactoryFinder.find(Unknown Source)
at javax.xml.parsers.SAXParserFactory.newInstance(Unknown Source)
at ru.bitel.common.XMLUtils.parseDocument(XMLUtils.java:393)
at bitel.billing.server.ext.dhcp.DHCPRelayProcessor.adminCommand(DHCPRelayProcessor.java:1091)
at bitel.billing.server.ext.dhcp.DHCPAdminSocketThread.run(DHCPAdminSocketThread.java:45)
Exception in thread "Thread-9171" java.lang.OutOfMemoryError: Java heap space
at java.io.BufferedReader.<init>(Unknown Source)
at java.io.BufferedReader.<init>(Unknown Source)
at javax.xml.parsers.FactoryFinder.findJarServiceProvider(Unknown Source)
at javax.xml.parsers.FactoryFinder.find(Unknown Source)
at javax.xml.parsers.SAXParserFactory.newInstance(Unknown Source)
at ru.bitel.common.XMLUtils.parseDocument(XMLUtils.java:393)
at bitel.billing.server.ext.dhcp.DHCPRelayProcessor.adminCommand(DHCPRelayProcessor.java:1091)
at bitel.billing.server.ext.dhcp.DHCPAdminSocketThread.run(DHCPAdminSocketThread.java:45)
Exception in thread "Thread-9172" java.lang.OutOfMemoryError: Java heap space
at java.nio.HeapByteBuffer.<init>(Unknown Source)
at java.nio.ByteBuffer.allocate(Unknown Source)
at sun.nio.cs.StreamDecoder.<init>(Unknown Source)
at sun.nio.cs.StreamDecoder.<init>(Unknown Source)
at sun.nio.cs.StreamDecoder.forInputStreamReader(Unknown Source)
at java.io.InputStreamReader.<init>(Unknown Source)
at javax.xml.parsers.FactoryFinder.findJarServiceProvider(Unknown Source)
at javax.xml.parsers.FactoryFinder.find(Unknown Source)
at javax.xml.parsers.SAXParserFactory.newInstance(Unknown Source)
at ru.bitel.common.XMLUtils.parseDocument(XMLUtils.java:393)
at bitel.billing.server.ext.dhcp.DHCPRelayProcessor.adminCommand(DHCPRelayProcessor.java:1091)
at bitel.billing.server.ext.dhcp.DHCPAdminSocketThread.run(DHCPAdminSocketThread.java:45)
При этом dhcp.log бежит (видно через tailf). Адреса выдаются, но вяло.
В такой момент перестают отвечать шлюзы (свитчи), т.к. они все дочерние к этому dhcp.
Попытка посмотреть статус (dhcp_status.sh) или остановить (dhcp_stop.sh) сервер невозможно.
Помогает лишь kill -9
Добавил в настройки нитей до 20 и памяти до 512 - проработал почти 3-е суток.
Вот конфиг:
Код:
[root@home BGDHCP_IPN]# cat ./dhcp.properties
processor.class=bitel.billing.server.ext.dhcp.DHCPRelayProcessor
admin.port=1868
dhcp.thread.count=20
dhcp.data.save.delay=3600
dhcp.data.save.period=3600
dhcp.server.identifier=193.169.62.2
#dhcp.option.42=C1A93E11
dhcp.option.42=0A000001
#▒▒▒▒▒ ▒▒▒ ▒▒▒▒ 193.169.62.32/27
#net.1.ip=193.169.62.32
#net.1.bits=27
#net.1.dhcp.router=193.169.62.33
#net.1.dhcp.subnetMask=255.255.255.224
#▒▒▒▒▒ ▒▒▒ ▒▒▒▒ 193.169.63.0/24
net.2.ip=193.169.63.0
net.2.bits=24
net.2.dhcp.router=193.169.63.1
net.2.dhcp.subnetMask=255.255.255.0
#▒▒▒▒▒ ▒▒▒ ▒▒▒▒ 176.114.48.0/24
net.3.ip=176.114.48.0
net.3.bits=24
net.3.dhcp.router=176.114.48.1
net.3.dhcp.subnetMask=255.255.255.0
#▒▒▒▒▒ ▒▒▒ ▒▒▒▒ 176.114.51.0/24
net.4.ip=176.114.51.0
net.4.bits=24
net.4.dhcp.router=176.114.51.1
net.4.dhcp.subnetMask=255.255.255.0
Сам dhcp.sh
Код:
[root@home BGDHCP_IPN]# cat ./dhcp.sh
#!/bin/sh
JAVA_HOME=/opt/java/jdk
#JAVA_HOME=/usr
if [ -z "$JAVA_HOME" ]; then
echo "The JAVA_HOME environment variable is not defined"
echo "This environment variable is needed to run this program"
exit 1
fi
BGDHCP_IPN_HOME=.
CLASSPATH=${BGDHCP_IPN_HOME}:$BGDHCP_IPN_HOME/lib/*
for i in "$BGDHCP_IPN_HOME/lib"/*.jar; do
CLASSPATH="${CLASSPATH}":"$i"
done
if [ "$1" = "start" ]; then
nohup ${JAVA_HOME}/bin/java -Djava.net.preferIPv4Stack=true -Xmx1024m -cp ${CLASSPATH} bitel.billing.server.ext.dhcp.DHCP $1 $2 $3 $4 $5 $6 > ./log/dhcp.out 2>&1 &
else
${JAVA_HOME}/bin/java -Djava.net.preferIPv4Stack=true -Xmx1024m -cp ${CLASSPATH} bitel.billing.server.ext.dhcp.DHCP $1 $2 $3 $4 $5 $6
fi
Я теперь памяти еще побольше дал ему.
В чем может быть причина?
ADD:
Код:
[root@home BGDHCP_IPN]# /opt/java/jdk//bin/java -version
java version "1.6.0_45"
Java(TM) SE Runtime Environment (build 1.6.0_45-b06)
Java HotSpot(TM) 64-Bit Server VM (build 20.45-b01, mixed mode)