У меня есть автономное приложение, в котором я пытаюсь создать 5 потоков для каждого потока. Я создаю mongoclient и сохраняю детали в MongoDB, а затем закрываю mongoclient.
Когда я запускаю свою службу mongo, она работает, но как только я запускаю свое java-приложение, через некоторое время моя служба mongo перестает работать, и я вижу приведенную ниже ошибку в системном журнале.
Out of memory: Kill process 12715 (mongod) score 433 or sacrifice child\\
kernel: [2946780.340246] Killed process 12715 (mongod) total-vm:6646800kB, anon-rss:6411432kB, file-rss:0kB
Я использую сервер Linux, у него 10 ГБ ОЗУ. Насколько мне известно, мы можем выполнять тысячи транзакций в MongoDB. И прежде чем я начну, я вижу свободную память, через некоторое время я получаю указанную выше ошибку.
Не уверен, что именно делать, нужно ли нам что-то настраивать на сервере Linux для обработки нескольких запросов mongo? или мне нужно где-нибудь увеличить лимит службы mongo?
Кто-нибудь может предложить мне это?
Заранее спасибо.
o / p of free -m до и после выполнения моей java следующие приложения:
До:
total used free shared buffers cached
Mem: 14032 7646 6385 54 4 153
-/+ buffers/cache: 7489 6542
Swap: 0 0 0
После:
total used free shared buffers cached
Mem: 14032 13845 186 54 106 4131
-/+ buffers/cache: 9607 4425
Swap: 0 0 0
Ниже приведены детали из mongod.conf
# mongod.conf
storage:
dbPath: /xxx/xxx
journal:
enabled: true
systemLog:
destination: file
logAppend: true
path: /var/log/mongodb/mongod.log
net:
port: 27017
bindIp: 127.0.0.1,xx.xx.xx.xx
processManagement:
fork: true
security:
authorization: enabled
Вывод cat / proc /
:
cat /proc/17694/limits
Limit Soft Limit Hard Limit Units
Max cpu time unlimited unlimited seconds
Max file size unlimited unlimited bytes
Max data size unlimited unlimited bytes
Max stack size 8388608 unlimited bytes
Max core file size 0 unlimited bytes
Max resident set unlimited unlimited bytes
Max processes 112088 112088 processes
Max open files 1024 4096 files
Max locked memory 65536 65536 bytes
Max address space unlimited unlimited bytes
Max file locks unlimited unlimited locks
Max pending signals 112088 112088 signals
Max msgqueue size 819200 819200 bytes
Max nice priority 0 0
Max realtime priority 0 0
Max realtime timeout unlimited unlimited us
ps xua | grep java results :::
root 17142 0.4 3.1 5645648 453180 pts/0 Sl Sep04 2:27 java -d64 -Xms1024m -Xmx2048m -server -cp bin:lib/* javaclassname -resourceDir /xxx/bin -dataDir /xxx/data
root 17491 22.1 11.2 5653432 1610716 pts/0 Sl Sep04 115:14 java -d64 -Xms1024m -Xmx2048m -server -cp bin:lib_new/* javaclassname -resourceDir /xxx/bin -dataDir /xxx/data -outConfigPath /xxx/xxx.xml -outCatBrandPath /xxx/xxx.xml -outCatAndSunCatPath /xxx/xxx.xml
xxx 19223 3.5 22.1 20396560 3184668 ? Sl Aug28 398:11 /usr/bin/java -Xms2g -Xmx2g -XX:+UseConcMarkSweepGC -XX:CMSInitiatingOccupancyFraction=75 -XX:+UseCMSInitiatingOccupancyOnly -XX:+DisableExplicitGC -XX:+AlwaysPreTouch -server -Xss1m -Djava.awt.headless=true -Dfile.encoding=UTF-8 -Djna.nosys=true -Djdk.io.permissionsUseCanonicalPath=true -Dio.netty.noUnsafe=true -Dio.netty.noKeySetOptimization=true -Dio.netty.recycler.maxCapacityPerThread=0 -Dlog4j.shutdownHookEnabled=false -Dlog4j2.disable.jmx=true -Dlog4j.skipJansi=true -XX:+HeapDumpOnOutOfMemoryError -Des.path.home=/elasticsearch-5.4.0 -cp /elasticsearch-5.4.0/lib/* org.elasticsearch.bootstrap.Elasticsearch
root 21617 2.2 21.7 18549248 3124416 ? Sl Aug28 247:34 /usr/bin/java -Djava.util.logging.config.file=/opt/apache-tomcat-8.0.30/conf/logging.properties -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Djava.endorsed.dirs=/opt/apache-tomcat-8.0.30/endorsed -classpath /opt/apache-tomcat-8.0.30/bin/bootstrap.jar:/opt/apache-tomcat-8.0.30/bin/tomcat-juli.jar -Dcatalina.base=/opt/apache-tomcat-8.0.30 -Dcatalina.home=/opt/apache-tomcat-8.0.30 -Djava.io.tmpdir=/opt/apache-tomcat-8.0.30/temp org.apache.catalina.startup.Bootstrap start
swapon -s вывод: Есть идеи, как я могу это остановить? 198.xxx - - [04 / сен / 2017: 17: 12: 11 +0100] "GET / HTTP / 1.0" 302 403 "google.com/results?search_query=i7j0O" "Mozilla / 5.0 (...
Я использую ddos с несколькими поисковыми системами Есть идеи, как мне это остановить?
198.x.x.x - - [04/Sep/2017:17:12:11 +0100] "GET / HTTP/1.0" 302 403 "google.com/results?search_query=i7j0O" "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.99 Safari/537.36"
198.x.x.x - - [04/Sep/2017:17:12:11 +0100] "GET / HTTP/1.0" 302 403 "google.com/results?search_query=eFvOwVu5U" "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.99 Safari/537.36"
198.x.x.x - - [04/Sep/2017:17:12:11 +0100] "GET / HTTP/1.0" 302 461 "bing.com/search?q=j1rLD" "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.99 Safari/537.36"
198.x.x.x - - [04/Sep/2017:17:12:11 +0100] "GET / HTTP/1.0" 302 403 "youtube.com/results?search_query=1kLPIe7" "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.99 Safari/537.36"
198.x.x.x - - [04/Sep/2017:17:12:11 +0100] "GET / HTTP/1.0" 302 403 "youtube.com/results?search_query=WBQbiA" "Mozilla/5.0 (Windows NT 10.0; WOW64; rv:50.0) Gecko/20100101 Firefox/50.0"
198.x.x.x - - [04/Sep/2017:17:12:11 +0100] "GET / HTTP/1.0" 302 403 "yahoo.com/results?search_query=qCzCMam" "Mozilla/5.0 (Windows NT 10.0; WOW64; rv:50.0) Gecko/20100101 Firefox/50.0"
Я не могу заблокировать этот IP-адрес 198.xxx, потому что это мой прокси.
Вам следует
Вы не указали, как создается ваш прокси, но поскольку он передает запрос, он также должен передавать реальный IP. Тогда у вас также есть право запретить IP. Для большей эффективности вы должны блокировать прокси.
Атаки, которые вы получаете, имеют явно не настоящие рефереры, но очень последовательные. Вы можете настроить регулярное выражение, чтобы запретить эти запросы, соответствующие такой строке реферера.
Например, ^ google \ .com \ / results \? Search_query \ = \ w {2,10} $
для запроса Google и еще несколько для остальных.