СХД DEPO Storage 4600 для консолидации данных в современной IT-инфраструктуре
JavaOne Russia 2013: Опыт использования JDK и Glassfish с Raspberry Pi
1. Опыт использования JDK
и Glassfish с Raspberry PI
Юрий Трухин,
SDE, Researcher (CNIP GIS LLC)
yuri@trukhin.com
twitter.com/trukhinyuri
Wednesday, April 24, 13
12. Зачем?
• Подготовка к HP Moonshot и другим “взрослым” arm
серверам (хардверелизация?)
Wednesday, April 24, 13
13. Зачем?
• Подготовка к HP Moonshot и другим “взрослым” arm
серверам (хардверелизация?)
• Компьютер для одной задачи
Wednesday, April 24, 13
14. Зачем?
• Подготовка к HP Moonshot и другим “взрослым” arm
серверам (хардверелизация?)
• Компьютер для одной задачи
• Создание надежной системы на ненадежных узлах
(как один из элементов)
Wednesday, April 24, 13
15. Зачем?
• Подготовка к HP Moonshot и другим “взрослым” arm
серверам (хардверелизация?)
• Компьютер для одной задачи
• Создание надежной системы на ненадежных узлах
(как один из элементов)
• Решение задач малого бизнеса
Wednesday, April 24, 13
16. ARM процессоры в будущем станут
мейнстримом
Сегодняшний анонс
Wednesday, April 24, 13
17. 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
20. Важное в архитектуре ARM 11
• ARM (Advanced RISC Machine)
• Базируется на наборе инструкций ARMv6
• Имеет сопроцессор VFP (низкозатратные вычисления
с плавающей запятой одинарной/двойной точности)
Wednesday, April 24, 13
21. Для разработчиков Java важно, есть ли поддержка
Hard float.
Рекомендуемые ОС с расширениями специально для
Pi:
• Raspbian “weezy” (hard float)
• Soft-float Debian “weezy” Armel
Эти и другие ОС брать тут: http://www.raspberrypi.org/downloads
Wednesday, April 24, 13
22. • 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
24. Доведение soft-float armel debian до рабочего
состояния
Как правильно записать img образ ОС на карту:
http://elinux.org/RPi_Easy_SD_Card_Setup
Стандартное имя пользователя pi, пароль raspberry.
В любой версии Raspbian Pi настроен получить IP по DHCP.
В первый раз можно попасть по SSH, потом могут быть
проблемы:)
Wednesday, April 24, 13
25. Доведение soft-float armel debian до рабочего
состояния
Сначала обновляем ОС штатными средствами:
sudo apt-get update && sudo apt-get upgrade && sudo apt-get dist-upgrade
Используем утилиту конфигурирования:
sudo raspi-config
Wednesday, April 24, 13
27. Обновляем ядро системы и др. системные
компоненты
Устанавливаем апдейтер
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
28. Устанавливаем JDK 7
Качаем и распаковываем например в /opt/java/ текущую версию JDK для ARM
Создаем симлинк, например на current в той же папке, ссылающийся на
текущую JDK, чтобы при обновлении Java не переконфигурировать, а просто
менять симлинк
Говорим, где наша Java:
sudo update-alternatives --install "/usr/bin/java" "java" "/
opt/java/current/bin/java" 1
sudo update-alternatives --set java /opt/java/current/bin/
java
Проверяем:
java -version
Wednesday, April 24, 13
29. Устанавливаем 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
30. Особенности JDK 7 на ARM
- нет G1GC
- не поддерживается -server VM, применение опции дает
тот же эффект, как -client (в JDK 8 -server VM возможно
будет работать на ARMv7)
– максимум ReservedCodeCacheSize - 32 мб
(максимальный размер кэша кода у компилятора).
В реальном мире: если ваше приложение работает с 512
мб системной памяти - очень большая вероятность, что
оно заработает на arm без специальных оптимизаций.
Wednesday, April 24, 13
31. Опыт с Glassfish
Использовался в реальной производственной среде на
кластере из 6 Raspberry Pi в каждом офисе компании.
Мы использовали внутренние разработки GEO4GEO/
Semantics – интеллектуальная система хранения,
обработки и анализа геоданных.
Технически это Java EE 7 serverside + модульный
javascript толстый клиент.
(разработанный с modules.js https://github.com/trukhinyuri/
modules.js )
Wednesday, April 24, 13
32. Настройки JVM
+UseSerialGC
-Xmx450m, Xms не установлен
-XX:MaxPermSize=192M
На 5 минут интенсивной работы приложения 25
секунд тратится на GC
Wednesday, April 24, 13
33. Временные показатели
Старт домена - 1m20s
Старт панели управления Glassfish - 3m40s
Холодный старт ноды GEO4GEO – 84 секунд (получение адресов нодов от
трекера облака, синхронизация индекса, проверка структуры семантической
базы данных)
Вход в WebUI – мгновенно (в среднем модуле UI 5-20 запросов к rest за
действие).
1 Raspberry Pi позволяет комфортно работать в GEO4GEO 10 пользователям
(узкое место - подсистема передачи данных и одноядерный CPU), в случае,
если все будут запрашивать данные или загружать их из системы
Минимальная отказоустойчивая конфигурация - распределенные 3PI + 3PI.
Wednesday, April 24, 13
34. Semantics Internal Benchmark
Определяет время выборки множества
данных по заданным семантическим меткам из индекса
99999x99999
Raspberry Pi 0.9GHz – 105 Ops
Pentium 4 2.0 GHz – 338 Ops
Core i7 2.8GHz – 3682 Ops
Wednesday, April 24, 13
35. Рекомендации
- Используйте asadmin утилиту для управления Glassfish (и
развертывайте приложения с помощью ее)
- Попробуйте Glassfish Embedded в действии.
- Горизонтально масштабируйте ПО.
Если ничего не помогает и все тормозит и глючит?
Wednesday, April 24, 13
36. Рекомендации
Если ничего не помогает и все тормозит и глючит:
КУПИТЕ НОРМАЛЬНЫЙ СЕРВЕР :)
Wednesday, April 24, 13