javaone russia 2013: Опыт использования jdk и glassfish с raspberry pi
DESCRIPTION
JavaOne Russia 2013: Опыт использования JDK и Glassfish с Raspberry PiTRANSCRIPT
![Page 1: JavaOne Russia 2013: Опыт использования JDK и Glassfish с Raspberry Pi](https://reader034.vdocuments.mx/reader034/viewer/2022052621/55878be5d8b42a485d8b456f/html5/thumbnails/1.jpg)
Опыт использования JDK и Glassfish с Raspberry PI
Юрий Трухин, SDE, Researcher (CNIP GIS LLC)[email protected]/trukhinyuri
Wednesday, April 24, 13
![Page 2: JavaOne Russia 2013: Опыт использования JDK и Glassfish с Raspberry Pi](https://reader034.vdocuments.mx/reader034/viewer/2022052621/55878be5d8b42a485d8b456f/html5/thumbnails/2.jpg)
Wednesday, April 24, 13
![Page 3: JavaOne Russia 2013: Опыт использования JDK и Glassfish с Raspberry Pi](https://reader034.vdocuments.mx/reader034/viewer/2022052621/55878be5d8b42a485d8b456f/html5/thumbnails/3.jpg)
План
•Девайс
•Зачем
•Специфика ОС и JDK
•Опыт с Glassfish 4
•Пробуем
Wednesday, April 24, 13
![Page 4: JavaOne Russia 2013: Опыт использования JDK и Glassfish с Raspberry Pi](https://reader034.vdocuments.mx/reader034/viewer/2022052621/55878be5d8b42a485d8b456f/html5/thumbnails/4.jpg)
Raspberry Pi
Wednesday, April 24, 13
![Page 5: JavaOne Russia 2013: Опыт использования JDK и Glassfish с Raspberry Pi](https://reader034.vdocuments.mx/reader034/viewer/2022052621/55878be5d8b42a485d8b456f/html5/thumbnails/5.jpg)
Raspberry Pi
Подробная инженерная информация:http://www.element14.com/community/docs/DOC-42993/l/raspberry-pi-single-board-computer
Wednesday, April 24, 13
![Page 6: JavaOne Russia 2013: Опыт использования JDK и Glassfish с Raspberry Pi](https://reader034.vdocuments.mx/reader034/viewer/2022052621/55878be5d8b42a485d8b456f/html5/thumbnails/6.jpg)
Полет фантазии с PI http://pingbin.com/2012/12/30-cool-ideas-raspberry-pi-project/
Wednesday, April 24, 13
![Page 7: JavaOne Russia 2013: Опыт использования JDK и Glassfish с Raspberry Pi](https://reader034.vdocuments.mx/reader034/viewer/2022052621/55878be5d8b42a485d8b456f/html5/thumbnails/7.jpg)
Типичный кластер из Raspberry Piraspberrycolocation.com - бесплатный colocation вашего Pi
Wednesday, April 24, 13
![Page 8: JavaOne Russia 2013: Опыт использования JDK и Glassfish с Raspberry Pi](https://reader034.vdocuments.mx/reader034/viewer/2022052621/55878be5d8b42a485d8b456f/html5/thumbnails/8.jpg)
Raspberry Pi в стоечном исполнении:)
Wednesday, April 24, 13
![Page 9: JavaOne Russia 2013: Опыт использования JDK и Glassfish с Raspberry Pi](https://reader034.vdocuments.mx/reader034/viewer/2022052621/55878be5d8b42a485d8b456f/html5/thumbnails/9.jpg)
Кто из вас пробовал программировать на JAVA для Raspberry PI?
Wednesday, April 24, 13
![Page 10: JavaOne Russia 2013: Опыт использования JDK и Glassfish с Raspberry Pi](https://reader034.vdocuments.mx/reader034/viewer/2022052621/55878be5d8b42a485d8b456f/html5/thumbnails/10.jpg)
Кто из вас использовал Raspberry PI или ARM аналог с JAVA для каких-то производственных задач?
Wednesday, April 24, 13
![Page 11: JavaOne Russia 2013: Опыт использования JDK и Glassfish с Raspberry Pi](https://reader034.vdocuments.mx/reader034/viewer/2022052621/55878be5d8b42a485d8b456f/html5/thumbnails/11.jpg)
Зачем?
Wednesday, April 24, 13
![Page 12: JavaOne Russia 2013: Опыт использования JDK и Glassfish с Raspberry Pi](https://reader034.vdocuments.mx/reader034/viewer/2022052621/55878be5d8b42a485d8b456f/html5/thumbnails/12.jpg)
Зачем?
•Подготовка к HP Moonshot и другим “взрослым” arm серверам (хардверелизация?)
Wednesday, April 24, 13
![Page 13: JavaOne Russia 2013: Опыт использования JDK и Glassfish с Raspberry Pi](https://reader034.vdocuments.mx/reader034/viewer/2022052621/55878be5d8b42a485d8b456f/html5/thumbnails/13.jpg)
Зачем?
•Подготовка к HP Moonshot и другим “взрослым” arm серверам (хардверелизация?)
• Компьютер для одной задачи
Wednesday, April 24, 13
![Page 14: JavaOne Russia 2013: Опыт использования JDK и Glassfish с Raspberry Pi](https://reader034.vdocuments.mx/reader034/viewer/2022052621/55878be5d8b42a485d8b456f/html5/thumbnails/14.jpg)
Зачем?
•Подготовка к HP Moonshot и другим “взрослым” arm серверам (хардверелизация?)
• Компьютер для одной задачи
•Создание надежной системы на ненадежных узлах (как один из элементов)
Wednesday, April 24, 13
![Page 15: JavaOne Russia 2013: Опыт использования JDK и Glassfish с Raspberry Pi](https://reader034.vdocuments.mx/reader034/viewer/2022052621/55878be5d8b42a485d8b456f/html5/thumbnails/15.jpg)
Зачем?
•Подготовка к HP Moonshot и другим “взрослым” arm серверам (хардверелизация?)
• Компьютер для одной задачи
•Создание надежной системы на ненадежных узлах (как один из элементов)
• Решение задач малого бизнеса
Wednesday, April 24, 13
![Page 16: JavaOne Russia 2013: Опыт использования JDK и Glassfish с Raspberry Pi](https://reader034.vdocuments.mx/reader034/viewer/2022052621/55878be5d8b42a485d8b456f/html5/thumbnails/16.jpg)
ARM процессоры в будущем станут мейнстримом
Сегодняшний анонс
Wednesday, April 24, 13
![Page 17: JavaOne Russia 2013: Опыт использования JDK и Glassfish с Raspberry Pi](https://reader034.vdocuments.mx/reader034/viewer/2022052621/55878be5d8b42a485d8b456f/html5/thumbnails/17.jpg)
ARM процессоры в будущем станут мейнстримом
Сегодняшний анонс
Компания AMD будет производить ARM процессоры AMD G-Series X - это официально
http://www.forbes.com/sites/sharifsakr/2013/04/23/amd-to-reduce-reliance-on-pc-market-by-2016-sell-new-arm-based-chips/
Wednesday, April 24, 13
![Page 18: JavaOne Russia 2013: Опыт использования JDK и Glassfish с Raspberry Pi](https://reader034.vdocuments.mx/reader034/viewer/2022052621/55878be5d8b42a485d8b456f/html5/thumbnails/18.jpg)
Зачем?
Это интересно :)
Wednesday, April 24, 13
![Page 19: JavaOne Russia 2013: Опыт использования JDK и Glassfish с Raspberry Pi](https://reader034.vdocuments.mx/reader034/viewer/2022052621/55878be5d8b42a485d8b456f/html5/thumbnails/19.jpg)
Какую ОС поставить? Какую Java выбрать?
Wednesday, April 24, 13
![Page 20: JavaOne Russia 2013: Опыт использования JDK и Glassfish с Raspberry Pi](https://reader034.vdocuments.mx/reader034/viewer/2022052621/55878be5d8b42a485d8b456f/html5/thumbnails/20.jpg)
Важное в архитектуре ARM 11
• ARM (Advanced RISC Machine)
•Базируется на наборе инструкций ARMv6
•Имеет сопроцессор VFP (низкозатратные вычисления с плавающей запятой одинарной/двойной точности)
Wednesday, April 24, 13
![Page 21: JavaOne Russia 2013: Опыт использования JDK и Glassfish с Raspberry Pi](https://reader034.vdocuments.mx/reader034/viewer/2022052621/55878be5d8b42a485d8b456f/html5/thumbnails/21.jpg)
Для разработчиков Java важно, есть ли поддержка Hard float.
Рекомендуемые ОС с расширениями специально для Pi:
• Raspbian “weezy” (hard float)
• Soft-float Debian “weezy” Armel
Эти и другие ОС брать тут: http://www.raspberrypi.org/downloads
Wednesday, April 24, 13
![Page 22: JavaOne Russia 2013: Опыт использования JDK и Glassfish с Raspberry Pi](https://reader034.vdocuments.mx/reader034/viewer/2022052621/55878be5d8b42a485d8b456f/html5/thumbnails/22.jpg)
• JDK 8 Hard float for ARM Developer Preview
https://jdk8.java.net/fxarmpreview/index.html
регулярные выпуски обновлений вместе с обычной JDK8 - планируются через 3 месяца
будет оптимизирована для систем с малым количеством памяти
Рекомендуется для использования сейчас:
• JDK 7 update 21 for ARM Soft float
• Java SE Embedded 7 Update 21 Soft float/ Java SE Embedded Suite
Wednesday, April 24, 13
![Page 23: JavaOne Russia 2013: Опыт использования JDK и Glassfish с Raspberry Pi](https://reader034.vdocuments.mx/reader034/viewer/2022052621/55878be5d8b42a485d8b456f/html5/thumbnails/23.jpg)
Однако чтобы использовать сейчас, надо подшаманить:)
Wednesday, April 24, 13
![Page 24: JavaOne Russia 2013: Опыт использования JDK и Glassfish с Raspberry Pi](https://reader034.vdocuments.mx/reader034/viewer/2022052621/55878be5d8b42a485d8b456f/html5/thumbnails/24.jpg)
Доведение soft-float armel debian до рабочего состояния
Как правильно записать img образ ОС на карту:
http://elinux.org/RPi_Easy_SD_Card_Setup
Стандартное имя пользователя pi, пароль raspberry.
В любой версии Raspbian Pi настроен получить IP по DHCP.
В первый раз можно попасть по SSH, потом могут быть проблемы:)
Wednesday, April 24, 13
![Page 25: JavaOne Russia 2013: Опыт использования JDK и Glassfish с Raspberry Pi](https://reader034.vdocuments.mx/reader034/viewer/2022052621/55878be5d8b42a485d8b456f/html5/thumbnails/25.jpg)
Доведение soft-float armel debian до рабочего состояния
Сначала обновляем ОС штатными средствами:
sudo apt-get update && sudo apt-get upgrade && sudo apt-get dist-upgrade
Используем утилиту конфигурирования:
sudo raspi-config
Wednesday, April 24, 13
![Page 26: JavaOne Russia 2013: Опыт использования JDK и Glassfish с Raspberry Pi](https://reader034.vdocuments.mx/reader034/viewer/2022052621/55878be5d8b42a485d8b456f/html5/thumbnails/26.jpg)
raspi-config
Важно сделать expand_rootfs, иначе дальнейшие обновления просто не влезут на карту.
Wednesday, April 24, 13
![Page 27: JavaOne Russia 2013: Опыт использования JDK и Glassfish с Raspberry Pi](https://reader034.vdocuments.mx/reader034/viewer/2022052621/55878be5d8b42a485d8b456f/html5/thumbnails/27.jpg)
Обновляем ядро системы и др. системные компоненты
Устанавливаем апдейтер
sudo wget http://goo.gl/1BOfJ -‐O /usr/bin/rpi-‐update && sudo chmod +x /usr/bin/rpi-‐update
Обновляем
sudo rpi-‐update
После обновления в raspi-config можно включить ssh при старте ОС и он даже не пропадет после перезагрузки.
После обновления ядро будет 3.6.11+ или выше
Wednesday, April 24, 13
![Page 28: JavaOne Russia 2013: Опыт использования JDK и Glassfish с Raspberry Pi](https://reader034.vdocuments.mx/reader034/viewer/2022052621/55878be5d8b42a485d8b456f/html5/thumbnails/28.jpg)
Устанавливаем JDK 7
Качаем и распаковываем например в /opt/java/ текущую версию JDK для ARM
Создаем симлинк, например на current в той же папке, ссылающийся на текущую JDK, чтобы при обновлении Java не переконфигурировать, а просто менять симлинк
Говорим, где наша Java:
sudo update-alternatives --install "/usr/bin/java" "java" "/opt/java/current/bin/java" 1sudo update-alternatives --set java /opt/java/current/bin/java
Проверяем:
java -version
Wednesday, April 24, 13
![Page 29: JavaOne Russia 2013: Опыт использования JDK и Glassfish с Raspberry Pi](https://reader034.vdocuments.mx/reader034/viewer/2022052621/55878be5d8b42a485d8b456f/html5/thumbnails/29.jpg)
Устанавливаем JDK 7
Дописываем Java_Home и Path:
в конец /etc/environment дописываем JAVA_HOME="/opt/java/current"
в ~/.bashrc :
export JAVA_HOME="/opt/java/current"
export PATH=$PATH:$JAVA_HOME/bin
Перезагружаемся (sudo reboot)
Wednesday, April 24, 13
![Page 30: JavaOne Russia 2013: Опыт использования JDK и Glassfish с Raspberry Pi](https://reader034.vdocuments.mx/reader034/viewer/2022052621/55878be5d8b42a485d8b456f/html5/thumbnails/30.jpg)
Особенности JDK 7 на ARM
- нет G1GC
- не поддерживается -server VM, применение опции дает тот же эффект, как -client (в JDK 8 -server VM возможно будет работать на ARMv7)
– максимум ReservedCodeCacheSize - 32 мб (максимальный размер кэша кода у компилятора).
В реальном мире: если ваше приложение работает с 512 мб системной памяти - очень большая вероятность, что оно заработает на arm без специальных оптимизаций.
Wednesday, April 24, 13
![Page 31: JavaOne Russia 2013: Опыт использования JDK и Glassfish с Raspberry Pi](https://reader034.vdocuments.mx/reader034/viewer/2022052621/55878be5d8b42a485d8b456f/html5/thumbnails/31.jpg)
Опыт с Glassfish
Использовался в реальной производственной среде на кластере из 6 Raspberry Pi в каждом офисе компании.
Мы использовали внутренние разработки GEO4GEO/Semantics – интеллектуальная система хранения, обработки и анализа геоданных.
Технически это Java EE 7 serverside + модульный javascript толстый клиент.
(разработанный с modules.js https://github.com/trukhinyuri/
modules.js )
Wednesday, April 24, 13
![Page 32: JavaOne Russia 2013: Опыт использования JDK и Glassfish с Raspberry Pi](https://reader034.vdocuments.mx/reader034/viewer/2022052621/55878be5d8b42a485d8b456f/html5/thumbnails/32.jpg)
Настройки JVM
+UseSerialGC
-Xmx450m, Xms не установлен
-XX:MaxPermSize=192M
На 5 минут интенсивной работы приложения 25 секунд тратится на GC
Wednesday, April 24, 13
![Page 33: JavaOne Russia 2013: Опыт использования JDK и Glassfish с Raspberry Pi](https://reader034.vdocuments.mx/reader034/viewer/2022052621/55878be5d8b42a485d8b456f/html5/thumbnails/33.jpg)
Временные показатели
Старт домена - 1m20s
Старт панели управления Glassfish - 3m40s
Холодный старт ноды GEO4GEO – 84 секунд (получение адресов нодов от трекера облака, синхронизация индекса, проверка структуры семантической базы данных)
Вход в WebUI – мгновенно (в среднем модуле UI 5-20 запросов к rest за действие).
1 Raspberry Pi позволяет комфортно работать в GEO4GEO 10 пользователям (узкое место - подсистема передачи данных и одноядерный CPU), в случае, если все будут запрашивать данные или загружать их из системы
Минимальная отказоустойчивая конфигурация - распределенные 3PI + 3PI.
Wednesday, April 24, 13
![Page 34: JavaOne Russia 2013: Опыт использования JDK и Glassfish с Raspberry Pi](https://reader034.vdocuments.mx/reader034/viewer/2022052621/55878be5d8b42a485d8b456f/html5/thumbnails/34.jpg)
Semantics Internal Benchmark
Определяет время выборки множества данных по заданным семантическим меткам из индекса 99999x99999
Raspberry Pi 0.9GHz – 105 OpsPentium 4 2.0 GHz – 338 OpsCore i7 2.8GHz – 3682 Ops
Wednesday, April 24, 13
![Page 35: JavaOne Russia 2013: Опыт использования JDK и Glassfish с Raspberry Pi](https://reader034.vdocuments.mx/reader034/viewer/2022052621/55878be5d8b42a485d8b456f/html5/thumbnails/35.jpg)
Рекомендации
- Используйте asadmin утилиту для управления Glassfish (и развертывайте приложения с помощью ее)
- Попробуйте Glassfish Embedded в действии.
- Горизонтально масштабируйте ПО.
Если ничего не помогает и все тормозит и глючит?
Wednesday, April 24, 13
![Page 36: JavaOne Russia 2013: Опыт использования JDK и Glassfish с Raspberry Pi](https://reader034.vdocuments.mx/reader034/viewer/2022052621/55878be5d8b42a485d8b456f/html5/thumbnails/36.jpg)
Рекомендации
Если ничего не помогает и все тормозит и глючит:
КУПИТЕ НОРМАЛЬНЫЙ СЕРВЕР :)
Wednesday, April 24, 13
![Page 37: JavaOne Russia 2013: Опыт использования JDK и Glassfish с Raspberry Pi](https://reader034.vdocuments.mx/reader034/viewer/2022052621/55878be5d8b42a485d8b456f/html5/thumbnails/37.jpg)
Пробуем простое приложение modules.js на Glassfish 4 (Javascript + REST)
Wednesday, April 24, 13
![Page 38: JavaOne Russia 2013: Опыт использования JDK и Glassfish с Raspberry Pi](https://reader034.vdocuments.mx/reader034/viewer/2022052621/55878be5d8b42a485d8b456f/html5/thumbnails/38.jpg)
Youtrack на Raspberry PI
Wednesday, April 24, 13
![Page 39: JavaOne Russia 2013: Опыт использования JDK и Glassfish с Raspberry Pi](https://reader034.vdocuments.mx/reader034/viewer/2022052621/55878be5d8b42a485d8b456f/html5/thumbnails/39.jpg)
Спасибо за внимание!
Юрий Трухин, SDE, Researcher (CNIP GIS LLC)[email protected]/trukhinyuri
Wednesday, April 24, 13