LINUX.ORG.RU

Сообщения recon88

 

Зависают треды на посылке почты

Сегодня перестала отправлятся почта с сервера. Проблема оказалась в том что fixed thread pool оказался забит задачами, причем текущие активные задачи просто зависли на методе java.net.SocketInputStream.socketRead0(и висели судя по логам уже 20 часов).

Есть подозрение что была проблема с сетью и сокеты позависали при создании соединения.

Наблюдал подобное на другом проекте, тогда пытались пофиксить это установкой setKeepAlive, после этого проблема не наблюдалась, но т.к. проблема воспроизводится редко и сложно(простое отключение сети не помогает, сокет коректно валится), не могу утверждать что именно это помогло.

Stacktrace:

java.net.SocketInputStream.socketRead0(Native Method)
java.net.SocketInputStream.read(SocketInputStream.java:152)
java.net.SocketInputStream.read(SocketInputStream.java:122)
sun.security.ssl.InputRecord.readFully(InputRecord.java:442)
sun.security.ssl.InputRecord.readV3Record(InputRecord.java:554)
sun.security.ssl.InputRecord.read(InputRecord.java:509)
sun.security.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:927)
sun.security.ssl.SSLSocketImpl.performInitialHandshake(SSLSocketImpl.java:1312)
sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1339)
sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1323)
com.sun.mail.util.SocketFetcher.configureSSLSocket(SocketFetcher.java:507)
com.sun.mail.util.SocketFetcher.getSocket(SocketFetcher.java:238)
com.sun.mail.smtp.SMTPTransport.openServer(SMTPTransport.java:1900)
com.sun.mail.smtp.SMTPTransport.protocolConnect(SMTPTransport.java:638)
javax.mail.Service.connect(Service.java:295)
sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
java.lang.reflect.Method.invoke(Method.java:606)

Может кто сталкивался и успешно решил эту проблему, а то в интернете в основном советуют перезагрузить JVM или закрыть сокет(к которому, по понятным причинам доступа нет).

 hangs, , ,

recon88
()

Помогите понять потребление памяти

Есть сервер с 1Гб памяти, и 512Мб свопом. Периодически java сервер убивается OOM Killer. Прямо перед этим событием atop показывает следующую картину:

MEM |  tot   987.5M |  free   54.7M |  cache  87.0M |  dirty   0.7M |  buff   10.4M  | slab   39.4M  |               |               |
SWP |  tot   512.0M |  free   12.3M |               |               |                |               | vmcom   1.4G  | vmlim   1.0G  |

  PID    MINFLT     MAJFLT     VSTEXT      VSIZE      RSIZE     VGROW      RGROW     RUID         EUID          MEM     CMD       
28966      1847        840         1K     938.6M     636.9M     1024K      8772K     webserve     webserve      64%     java
31968      1573         18     17358K       7.9G     51036K        0K       460K     mongodb      mongodb        5%     mongod
 5985     15357          5      5243K     50360K     30028K     1156K       740K     postgres     postgres       3%     postgres
 5984      2726         22      5243K     49072K     29432K        0K       192K     postgres     postgres       3%     postgres
 5824         0          0      5243K     49460K     29200K        0K         0K     postgres     postgres       3%     postgres
 5983      7872          0      5243K     49072K     28968K    -1348K      -784K     postgres     postgres       3%     postgres
 6140      5092          0      5243K     49072K     27864K        0K         0K     postgres     postgres       3%     postgres
 3469         0          0      5243K     47036K      9092K        0K         0K     postgres     postgres       1%     postgres
 3468         0          0      5243K     47036K      7196K        0K         0K     postgres     postgres       1%     postgres

Я знаю какие процессы доедают оставшуюся память, но интересует почему занято так много памяти и свопа в момент перед падением. Хотя если просуммировать колонку RSIZE - не получится 1.5 гигабайта.

recon88
()

Странное поведение tomcat7 на VDS

Имеется хостинг на fastvps с параметрами CPU - 1400 Mhz, RAM - 800 MB.

При запуске tomcat ничего не происходит, логи пустые, изредка появляется всего одна строчка

Jun 17, 2012 7:28:54 AM org.apache.catalina.core.AprLifecycleListener init INFO: The APR based Apache Tomcat Native library which allows optimal performance in production environments was not found on the java.library.path: /opt/java/jre/lib/amd64/server:/opt/java/jre/lib/amd64:/opt/java/jre/../lib/amd64:/usr/java/packages/lib/amd64:/usr/lib64:/lib64:/lib:/usr/lib

В процессах висит java:

ps aux | grep java root 815 7.3 4.7 464432 39316 pts/0 Sl 17:02 0:00 /usr/bin/java -Djava.util.logging.config.file=/root/apache-tomcat-7.0.27/conf/logging.properties -server -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Djava.endorsed.dirs=/root/apache-tomcat-7.0.27/endorsed -classpath /root/apache-tomcat-7.0.27/bin/bootstrap.jar:/root/apache-tomcat-7.0.27/bin/tomcat-juli.jar -Dcatalina.base=/root/apache-tomcat-7.0.27 -Dcatalina.home=/root/apache-tomcat-7.0.27 -Djava.io.tmpdir=/root/apache-tomcat-7.0.27/temp org.apache.catalina.startup.Bootstrap start

Похожее происходит с другими java процессами.

Окружение:

  • uname -a Linux hostname 2.6.32-042stab055.10 #1 SMP Thu May 10 15:38:32 MSD 2012 x86_64 GNU/Linux

  • Система - debian 6.0 x86_64(тоже проявляется и на ubuntu 10.0, centos 6.0)
  • java -version java version «1.6.0_26» Java(TM) SE Runtime Environment (build 1.6.0_26-b03) Java HotSpot(TM) 64-Bit Server VM (build 20.1-b02, mixed mode)

    из репозитория

 fastvps, ,

recon88
()

Читалки с компенсацией вибрации

Интересует вопрос, есть ли подобные вещи, а то в транспорте очень устают глаза от постоянной мелкой вибрации.

recon88
()

[mapreduce][hbase] Как установить количество параллельных вызовов map

Изучаю hbase. В качестве пример решаю задачу по аггрегации значений в таблице по ключу(аналог group by). Вторая фаза (reduce) проходит очень быстро, и использует все ресурсы. Первая же фаза(map) запускается в одном потоке(проверялось получение имени текущего потока), и работает очень долго. Hbase запускается поверх Hadoop, в режиме pseudo-distributed.

Долго искал возможность настройки количества маперов, но найденные подсказки не помогли:

- Установка mapred.tasktracker.map.tasks.maximum в hbase/conf/hbase-site.xml и/или в hadoop/conf/hdfs-site.xml не повлияла.
- использование api setNumReduceTasks - аналогично не повлияла

Параметры таблицы на которой проводится тестирование:
- ключ : id+timestamp
- значение : double
- количество значений : 43200000(43 миллиона)
- название таблицы - 'spi'

./hadoop fs -ls «hdfs://localhost:9000/hbase/spi»
Found 14 items
drwxr-xr-x - artem supergroup 0 2011-08-14 15:18 /hbase/spi/10bd9f466936f3d6fec18d4198b3335e
drwxr-xr-x - artem supergroup 0 2011-08-14 15:18 /hbase/spi/3c2e8f9f89be020709ce2c6f8c4e451d
drwxr-xr-x - artem supergroup 0 2011-08-14 15:18 /hbase/spi/5ca1e607e0c081bb7295bbe3980aa1a2
drwxr-xr-x - artem supergroup 0 2011-08-14 15:30 /hbase/spi/5f58ef8d755f9f9fcaa6dceabed02226
drwxr-xr-x - artem supergroup 0 2011-08-14 15:30 /hbase/spi/6cd2c97238eee8f4e7077f01345a7ebb
drwxr-xr-x - artem supergroup 0 2011-08-14 15:18 /hbase/spi/78aec9ff2c75934b53732afdbe27c65a
drwxr-xr-x - artem supergroup 0 2011-08-14 15:18 /hbase/spi/7ee9e57aedf0938882082d2e0606c3cb
drwxr-xr-x - artem supergroup 0 2011-08-14 15:18 /hbase/spi/989bc6f730450d540643b86813248d1c
drwxr-xr-x - artem supergroup 0 2011-08-14 15:18 /hbase/spi/99909b39f99ebaa8b84d9d3f9cf718e1
drwxr-xr-x - artem supergroup 0 2011-08-14 15:30 /hbase/spi/c055f4813990bcf59113baa4b3b45aa1
drwxr-xr-x - artem supergroup 0 2011-08-14 15:30 /hbase/spi/ccbb7d2cdbe0f37221bc8a507728fbdf
drwxr-xr-x - artem supergroup 0 2011-08-14 15:02 /hbase/spi/e7ac605ae9c766e602c2ba28691139f2
drwxr-xr-x - artem supergroup 0 2011-08-14 15:18 /hbase/spi/ea96720876a9eb717101a73254a010a8
drwxr-xr-x - artem supergroup 0 2011-08-14 15:18 /hbase/spi/f9038fd18b2d0a4193468456f290c77c

Судя по всему количество частей таблицы не нулевое.

Вопрос : как увеличить количество обработчиков(на map и reduce фазах)?

Версия HBase : hbase-0.90.4, версия hadoop - hadoop-0.20.2

recon88
()

Iptables не применяются правила

Выполняю следующие команды:

echo 1 > /proc/sys/net/ipv4/ip_forward
iptables -t nat -A PREROUTING -d 192.168.2.41 -p udp --dport 8793 -j DNAT --to-destination 192.168.2.201:8793
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

Суть: перенаправлять все пакеты которые приходят на текущий компьютер по указанному адресу(--to-destination).

Проблема : после выполнения этих команд, пакеты не перенаправляются(проверяю при помощи tcpdump). Пакеты приходят, но не уходят.

Содержимое таблицы после некоторого времени работы

iptables -t nat -L -v 
Chain PREROUTING (policy ACCEPT 512 packets, 45754 bytes)
 pkts bytes target     prot opt in     out     source               destination         
    0     0 DNAT       udp  --  any    any     anywhere             host             udp dpt:8793 to:192.168.2.201:8793 

Chain OUTPUT (policy ACCEPT 1314 packets, 82818 bytes)
 pkts bytes target     prot opt in     out     source               destination         

Chain POSTROUTING (policy ACCEPT 429 packets, 26992 bytes)
 pkts bytes target     prot opt in     out     source               destination         
   19  1237 MASQUERADE  all  --  any    eth0    anywhere             anywhere            

Что самое странное - иногда правила применяются и пакеты начинают ходить, но иногда этого не происходит. Закономерности не выяснил

recon88
()

TCP socket timeout problem

Возникла проблема : есть два хоста(A-клиент и B-сервер). С хоста A создается соединение к хосту B по SSH. После прошедшии некоторого времени и большого количества переподключений(обусловленно спецификой работы алгоритма создания подключений) получил следующую ситуацию:
1) netstat --inet - на хосте A, показывает открытое соединение.
2) netstat --inet - на хосте B, не показывает никаких соединений с A
3) после попытки убить соединение на A при помощи cutter выяснилось что оно не фигурирует в /proc/net/ip_conntrack

Соединение висит уже 6 часов и отваливаться не думает. Основная проблема в том что для него вызывана процедура блокирующего чтения, которая не может отвалиться и вызывает проблемы в работе программы.

Вопросы:
1) как может возникнуть подобная ситуация, разве соединение не должно отваливаться по таймауту?
2) как лучше всего решать подобные ситуации(желательно системными настройками, так как доступа к вызову read - нет)?

recon88
()

[TTY] Screen + cp

Есть девайс, к которому можно подключаться через последовательный интерфейс - /dev/ttyUSBx. Подключение делается при помощи screen. Интересует вопрос : есть ли аналог [rs]cp, но который бы работал чере последовательный интерфейс(ведь shell можно создать, занчит и копировать файлы должна быть возможность).

 

recon88
()

Ядро Debian 2.6.22.18 - сборка iptables как модуля

Здравствуйте. Интересует как можно собрать iptables как модуль для ядра. При попытке изменения в menuconfig нельзя поставить M, хотя в интернете встречаются упоминания.

recon88
()

[Java] Архитектура. Выбор технологий

За счет каких материалов можно ориентироваться в различных технологиях, и принципах построения расширяемой архитектуры. Мне кажется маловероятным что все держится только на опыте.

Пример : на основании каких входных требований можно решить применять JMS? (и если можно указать материалы, на основании которых это решение принято).

 

recon88
()

git-svn в реальной работе

Хочется использовать git на работе, но основной репозиторий понятное дело - svn. Есть вариант использования git-svn. Интересует опыт использования, и какие проблемы возникали.

recon88
()

[Java][Profiling] Нахождение memory leaks

Есть большое приложение, которое работает на удаленной системе в продакшене. Раз в несколько месяцев оно начинает сбоить и вываливать OutOfMemoryException. Есть возможность переодично собирать снапшоты кучи(с помощью jboss profiler). Судя по времени нормальной работы утечка происходит довольно медленно.

Интересует приемы и инструменты, позволяющие анализировать собранную информацию.

На данный момент надеюсь на следуюую последовательность : визуализация потребления памяти для каждого класса, в зависимости от времени(gnuplot). Затем - выбор кандидатов, по принципу постоянного увеличения потребления памяти во времени, и последующий из стуктурный анализ(при помощи базы данных кросс-ссылок).

 

recon88
()

[haskell][yi] Кто-то пробовал?

Начал недавно разбираться, вроде очень перспективный проект. Есть генератор инкрементальных парсеров(на основе комбинаторов), да и все задача гораздо проще решаются на haskell чем на elisp. К тому же есть очень богатый набор библиотек, да и вобще все написано более правильно.

Интересно, кто-то пытался пользоваться? Возможно ли его допилить до состояния замены emacs`а за вменяемое время?

 

recon88
()

[JSP][EJB] Быстрая отладка

Начал разбираться с J2EE. Сейчас использую сервер Tomcat + geronimo. Однако один вопрос не дает мне покоя - как можно быстро посмотреть на результаты работы созданого приложения, стадия deploy выполняется довольно долго. Есть ли способы уменьшить длительность цикла «разработка-отладка», или это принято делать модульным и интеграционным тестированием(хотя понятно что полный процесс использования трудно будет эмулировать тестами). Под быстрой отладкой я понимаю аналог PHP где после изменения текста программы, можно сразу увидеть изменения.

 

recon88
()

[Python] Быстрое освоение языка

Какие технологии/фичи в питоне вы считаете важными для реальной разработки. Интересует как web так и desktop применение.

Есть ли некий список best practice?

Какие типовые проекты можете посоветовать для улучшения навыков(примеры : PHP - форум, гостевая книга; Haskell - компилятор, eDSL)

 

recon88
()

[Arch][pacman] Переустановка пакета с учетом зависимостей

Можно ли в pacman переустановить пакет с переустановкой всех его зависимостей(как будто с нуля)? В gentoo для этого есть emerge --emptytree.

Проблема такая : база pacman сохранилась, но содержимое /usr не совпадает с записями в базе(часть пакетов отсутствует), поэтому надо переустановить все пакеты, но обычное pacman -Q | xargs pacman -S не работает потому что не соблюдается порядок установки(некоторые пакеты зависят от последующих, и отказываются ставиться). В случае же если запрашиваемая команда существует то можно будет переустановить все так - pacman -Qe | xargs pacman -S <?--emptytree?>

 ,

recon88
()

UML vs DSL

Здравствуйте! Интересует мнение по следующим вопросам:

1. Насколько корректно возможности сравнивать UML и DSL(domain specific language), учитывая возможность создания профилей для UML(которые, судя по описанию позволяют специализировать UML).

2. Можно ли создавать полноценные приложения из UML описания - не только генерация классов, а полноценная генерация кода из выскоуровневого описания(так называемой код поведения).

3. На сколько сильно позволяет увеличивать уровень абстракции UML модель, и годится ли она для высокоуровневого анализа ПО(например в случае с DSL уровень абстракции приближается к уровню спецификации задачи)? - здесь лучше развернутый ответ : почему увеличивает уровень, за счет каких свойств языка UML.

4. Ограничивается ли синтаксис UML только графической нотацией, или возможно использование текстового представления?

5. Практический вопрос : на сколько широко применяется UML в реальных разработках, и чем именно он помогает разработчикам(не является ли он просто графической нотацией объектной архитектуры приложения?)

recon88
()

[LaTeX] ГОСТ и перечисления

Здравствуйте! У меня есть вопрос по перечислениям по ГОСТ. Есть ли способ начинать их с большой буквы? Вопрос возникает потому что пункты перечисления довольно большие(несколько предложений), а уровней вложености заголовков уже не хватает(не могу сделать их пунктами или подпунктами). И вобще, что принято делать в таких случаях?

 

recon88
()

[Arch][Xorg] Проблемы с клавиатурой Microsoft Natural 4000

Только сегодня решил поставить Arch, но столкнулся со следующей проблемой : на запускаются иксы.

При запуске через 'startx' все что вижу в ответ:

(EE) Microsoft Natural Ergonomic Keyboard 4000: failed to initialize for relative axes.

Лог иксов: http://pastebin.com/QQCCqu59

Версии:

extra/xorg-server 1.9.2-2 (xorg) Xorg X server

extra/xf86-input-evdev 2.5.0-1 (xorg-input-drivers) X.org evdev input driver

extra/xf86-input-keyboard 1.4.0-3 (xorg-input-drivers) X.Org keyboard input driver

 ,

recon88
()

[embedded] Оптимизация, подводные камни

Навеяно темой про memory allocator - в данный момент разрабатываю по Cortex-M3 и некоторые из изменений моей программы дают странные и необъяснимые(с точки зрения моих знаний) результаты.

Что вы можете посоветовать из общих и специализированных статей по подобным «подводным камням» в программировании.

 

recon88
()

RSS подписка на новые темы