SlideShare une entreprise Scribd logo
1  sur  39
Télécharger pour lire hors ligne
Опыт использования JDK
и Glassfish с Raspberry PI
Юрий Трухин,
SDE, Researcher (CNIP GIS LLC)
yuri@trukhin.com
twitter.com/trukhinyuri
Wednesday, April 24, 13
Wednesday, April 24, 13
План
• Девайс
• Зачем
• Специфика ОС и JDK
• Опыт с Glassfish 4
• Пробуем
Wednesday, April 24, 13
Raspberry Pi
Wednesday, April 24, 13
Raspberry Pi
Подробная инженерная информация:
http://www.element14.com/community/docs/DOC-42993/l/raspberry-pi-single-board-
computer
Wednesday, April 24, 13
Полет фантазии с PI
http://pingbin.com/2012/12/30-cool-ideas-raspberry-pi-project/
Wednesday, April 24, 13
Типичный кластер из Raspberry Pi
raspberrycolocation.com - бесплатный colocation вашего Pi
Wednesday, April 24, 13
Raspberry Pi в стоечном исполнении:)
Wednesday, April 24, 13
Кто из вас пробовал программировать на JAVA для
Raspberry PI?
Wednesday, April 24, 13
Кто из вас использовал Raspberry PI или ARM аналог с JAVA
для каких-то производственных задач?
Wednesday, April 24, 13
Зачем?
Wednesday, April 24, 13
Зачем?
• Подготовка к HP Moonshot и другим “взрослым” arm
серверам (хардверелизация?)
Wednesday, April 24, 13
Зачем?
• Подготовка к HP Moonshot и другим “взрослым” arm
серверам (хардверелизация?)
• Компьютер для одной задачи
Wednesday, April 24, 13
Зачем?
• Подготовка к HP Moonshot и другим “взрослым” arm
серверам (хардверелизация?)
• Компьютер для одной задачи
• Создание надежной системы на ненадежных узлах
(как один из элементов)
Wednesday, April 24, 13
Зачем?
• Подготовка к HP Moonshot и другим “взрослым” arm
серверам (хардверелизация?)
• Компьютер для одной задачи
• Создание надежной системы на ненадежных узлах
(как один из элементов)
• Решение задач малого бизнеса
Wednesday, April 24, 13
ARM процессоры в будущем станут
мейнстримом
Сегодняшний анонс
Wednesday, April 24, 13
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
Зачем?
Это интересно :)
Wednesday, April 24, 13
Какую ОС поставить? Какую Java выбрать?
Wednesday, April 24, 13
Важное в архитектуре ARM 11
• ARM (Advanced RISC Machine)
• Базируется на наборе инструкций ARMv6
• Имеет сопроцессор VFP (низкозатратные вычисления
с плавающей запятой одинарной/двойной точности)
Wednesday, April 24, 13
Для разработчиков Java важно, есть ли поддержка
Hard float.
Рекомендуемые ОС с расширениями специально для
Pi:
• Raspbian “weezy” (hard float)
• Soft-float Debian “weezy” Armel
Эти и другие ОС брать тут: http://www.raspberrypi.org/downloads
Wednesday, April 24, 13
• 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
Однако чтобы использовать сейчас, надо
подшаманить:)
Wednesday, April 24, 13
Доведение soft-float armel debian до рабочего
состояния
Как правильно записать img образ ОС на карту:
http://elinux.org/RPi_Easy_SD_Card_Setup
Стандартное имя пользователя pi, пароль raspberry.
В любой версии Raspbian Pi настроен получить IP по DHCP.
В первый раз можно попасть по SSH, потом могут быть
проблемы:)
Wednesday, April 24, 13
Доведение soft-float armel debian до рабочего
состояния
Сначала обновляем ОС штатными средствами:
sudo apt-get update && sudo apt-get upgrade && sudo apt-get dist-upgrade
Используем утилиту конфигурирования:
sudo raspi-config
Wednesday, April 24, 13
raspi-config
Важно сделать expand_rootfs, иначе дальнейшие обновления просто не влезут на карту.
Wednesday, April 24, 13
Обновляем ядро системы и др. системные
компоненты
Устанавливаем апдейтер
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
Устанавливаем 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
Устанавливаем 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
Особенности JDK 7 на ARM
- нет G1GC
- не поддерживается -server VM, применение опции дает
тот же эффект, как -client (в JDK 8 -server VM возможно
будет работать на ARMv7)
– максимум ReservedCodeCacheSize - 32 мб
(максимальный размер кэша кода у компилятора).
В реальном мире: если ваше приложение работает с 512
мб системной памяти - очень большая вероятность, что
оно заработает на arm без специальных оптимизаций.
Wednesday, April 24, 13
Опыт с Glassfish
Использовался в реальной производственной среде на
кластере из 6 Raspberry Pi в каждом офисе компании.
Мы использовали внутренние разработки GEO4GEO/
Semantics – интеллектуальная система хранения,
обработки и анализа геоданных.
Технически это Java EE 7 serverside + модульный
javascript толстый клиент.
(разработанный с modules.js https://github.com/trukhinyuri/
modules.js )
Wednesday, April 24, 13
Настройки JVM
+UseSerialGC
-Xmx450m, Xms не установлен
-XX:MaxPermSize=192M
На 5 минут интенсивной работы приложения 25
секунд тратится на GC
Wednesday, April 24, 13
Временные показатели
Старт домена - 1m20s
Старт панели управления Glassfish - 3m40s
Холодный старт ноды GEO4GEO – 84 секунд (получение адресов нодов от
трекера облака, синхронизация индекса, проверка структуры семантической
базы данных)
Вход в WebUI – мгновенно (в среднем модуле UI 5-20 запросов к rest за
действие).
1 Raspberry Pi позволяет комфортно работать в GEO4GEO 10 пользователям
(узкое место - подсистема передачи данных и одноядерный CPU), в случае,
если все будут запрашивать данные или загружать их из системы
Минимальная отказоустойчивая конфигурация - распределенные 3PI + 3PI.
Wednesday, April 24, 13
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
Рекомендации
- Используйте asadmin утилиту для управления Glassfish (и
развертывайте приложения с помощью ее)
- Попробуйте Glassfish Embedded в действии.
- Горизонтально масштабируйте ПО.
Если ничего не помогает и все тормозит и глючит?
Wednesday, April 24, 13
Рекомендации
Если ничего не помогает и все тормозит и глючит:
КУПИТЕ НОРМАЛЬНЫЙ СЕРВЕР :)
Wednesday, April 24, 13
Пробуем простое приложение modules.js на Glassfish 4
(Javascript + REST)
Wednesday, April 24, 13
Youtrack на Raspberry PI
Wednesday, April 24, 13
Спасибо за внимание!
Юрий Трухин,
SDE, Researcher (CNIP GIS LLC)
yuri@trukhin.com
twitter.com/trukhinyuri
Wednesday, April 24, 13

Contenu connexe

Tendances

Релиз инжиниринг Mail.ru, взгляд изнутри / Максим Глеков (Mail.Ru Group)
Релиз инжиниринг Mail.ru, взгляд изнутри / Максим Глеков (Mail.Ru Group)Релиз инжиниринг Mail.ru, взгляд изнутри / Максим Глеков (Mail.Ru Group)
Релиз инжиниринг Mail.ru, взгляд изнутри / Максим Глеков (Mail.Ru Group)Ontico
 
Нагрузочное тестирование с помощью Яндекс.Танк - Алексей Лавренюк, PyCon RU 2...
Нагрузочное тестирование с помощью Яндекс.Танк - Алексей Лавренюк, PyCon RU 2...Нагрузочное тестирование с помощью Яндекс.Танк - Алексей Лавренюк, PyCon RU 2...
Нагрузочное тестирование с помощью Яндекс.Танк - Алексей Лавренюк, PyCon RU 2...it-people
 
2014.12.23 Александр Андреев, Parallels
2014.12.23 Александр Андреев, Parallels2014.12.23 Александр Андреев, Parallels
2014.12.23 Александр Андреев, ParallelsNikolay Samokhvalov
 
антон веснин Rails Application Servers
антон веснин Rails Application Serversантон веснин Rails Application Servers
антон веснин Rails Application Serversrit2010
 
Константин Осипов
Константин ОсиповКонстантин Осипов
Константин ОсиповCodeFest
 
Flask как хорошее решение для веб проекта
Flask как хорошее решение для веб проектаFlask как хорошее решение для веб проекта
Flask как хорошее решение для веб проектаPython Meetup
 
Нагрузочное тестирование с помощью Яндекс.Танка
Нагрузочное тестирование с помощью Яндекс.ТанкаНагрузочное тестирование с помощью Яндекс.Танка
Нагрузочное тестирование с помощью Яндекс.ТанкаAleksandr Boichenko
 
Кит на службе у человека microPaaS Deis / Алексей Медведчиков (2ГИС)
Кит на службе у человека microPaaS Deis / Алексей Медведчиков (2ГИС)Кит на службе у человека microPaaS Deis / Алексей Медведчиков (2ГИС)
Кит на службе у человека microPaaS Deis / Алексей Медведчиков (2ГИС)Ontico
 
Legacy в коробочке. Dev-среда на базе Kubernetes / Илья Сауленко (Avito)
Legacy в коробочке. Dev-среда на базе Kubernetes / Илья Сауленко (Avito)Legacy в коробочке. Dev-среда на базе Kubernetes / Илья Сауленко (Avito)
Legacy в коробочке. Dev-среда на базе Kubernetes / Илья Сауленко (Avito)Ontico
 
Пряморукий DNS: делаем правильно / Лев Николаев (Макснет)
Пряморукий DNS: делаем правильно / Лев Николаев (Макснет)Пряморукий DNS: делаем правильно / Лев Николаев (Макснет)
Пряморукий DNS: делаем правильно / Лев Николаев (Макснет)Ontico
 
системы сборок проектов
системы сборок проектовсистемы сборок проектов
системы сборок проектовRomero78
 
Мой маленький уютный PaaS / Илья Беда (bro.agency)
Мой маленький уютный PaaS / Илья Беда (bro.agency)Мой маленький уютный PaaS / Илья Беда (bro.agency)
Мой маленький уютный PaaS / Илья Беда (bro.agency)Ontico
 
Автоматизация тестирования клиентской производительности / Николай Лавлинский...
Автоматизация тестирования клиентской производительности / Николай Лавлинский...Автоматизация тестирования клиентской производительности / Николай Лавлинский...
Автоматизация тестирования клиентской производительности / Николай Лавлинский...Ontico
 
Formal verification of operating system kernels
Formal verification of operating system kernelsFormal verification of operating system kernels
Formal verification of operating system kernelsDenis Efremov
 
Веб-сервер Phantom
Веб-сервер PhantomВеб-сервер Phantom
Веб-сервер Phantomyaevents
 
Инструменты тестирования ядра Linux
Инструменты тестирования ядра LinuxИнструменты тестирования ядра Linux
Инструменты тестирования ядра LinuxDenis Efremov
 
Григорий Липин: Автоматизация нагрузочного тестирования
Григорий Липин: Автоматизация нагрузочного тестированияГригорий Липин: Автоматизация нагрузочного тестирования
Григорий Липин: Автоматизация нагрузочного тестированияYandex
 
сервис нагрузочного тестирования Ddosme.ru, иван самсонов
сервис нагрузочного тестирования Ddosme.ru, иван самсоновсервис нагрузочного тестирования Ddosme.ru, иван самсонов
сервис нагрузочного тестирования Ddosme.ru, иван самсоновOntico
 
Scaling services with apache mesos (and docker)
Scaling services with apache mesos (and docker)Scaling services with apache mesos (and docker)
Scaling services with apache mesos (and docker)Ivan Kudryavtsev
 
Олесь Писаренко "Открываем Яндекс.Танк"
Олесь Писаренко "Открываем Яндекс.Танк"Олесь Писаренко "Открываем Яндекс.Танк"
Олесь Писаренко "Открываем Яндекс.Танк"Yandex
 

Tendances (20)

Релиз инжиниринг Mail.ru, взгляд изнутри / Максим Глеков (Mail.Ru Group)
Релиз инжиниринг Mail.ru, взгляд изнутри / Максим Глеков (Mail.Ru Group)Релиз инжиниринг Mail.ru, взгляд изнутри / Максим Глеков (Mail.Ru Group)
Релиз инжиниринг Mail.ru, взгляд изнутри / Максим Глеков (Mail.Ru Group)
 
Нагрузочное тестирование с помощью Яндекс.Танк - Алексей Лавренюк, PyCon RU 2...
Нагрузочное тестирование с помощью Яндекс.Танк - Алексей Лавренюк, PyCon RU 2...Нагрузочное тестирование с помощью Яндекс.Танк - Алексей Лавренюк, PyCon RU 2...
Нагрузочное тестирование с помощью Яндекс.Танк - Алексей Лавренюк, PyCon RU 2...
 
2014.12.23 Александр Андреев, Parallels
2014.12.23 Александр Андреев, Parallels2014.12.23 Александр Андреев, Parallels
2014.12.23 Александр Андреев, Parallels
 
антон веснин Rails Application Servers
антон веснин Rails Application Serversантон веснин Rails Application Servers
антон веснин Rails Application Servers
 
Константин Осипов
Константин ОсиповКонстантин Осипов
Константин Осипов
 
Flask как хорошее решение для веб проекта
Flask как хорошее решение для веб проектаFlask как хорошее решение для веб проекта
Flask как хорошее решение для веб проекта
 
Нагрузочное тестирование с помощью Яндекс.Танка
Нагрузочное тестирование с помощью Яндекс.ТанкаНагрузочное тестирование с помощью Яндекс.Танка
Нагрузочное тестирование с помощью Яндекс.Танка
 
Кит на службе у человека microPaaS Deis / Алексей Медведчиков (2ГИС)
Кит на службе у человека microPaaS Deis / Алексей Медведчиков (2ГИС)Кит на службе у человека microPaaS Deis / Алексей Медведчиков (2ГИС)
Кит на службе у человека microPaaS Deis / Алексей Медведчиков (2ГИС)
 
Legacy в коробочке. Dev-среда на базе Kubernetes / Илья Сауленко (Avito)
Legacy в коробочке. Dev-среда на базе Kubernetes / Илья Сауленко (Avito)Legacy в коробочке. Dev-среда на базе Kubernetes / Илья Сауленко (Avito)
Legacy в коробочке. Dev-среда на базе Kubernetes / Илья Сауленко (Avito)
 
Пряморукий DNS: делаем правильно / Лев Николаев (Макснет)
Пряморукий DNS: делаем правильно / Лев Николаев (Макснет)Пряморукий DNS: делаем правильно / Лев Николаев (Макснет)
Пряморукий DNS: делаем правильно / Лев Николаев (Макснет)
 
системы сборок проектов
системы сборок проектовсистемы сборок проектов
системы сборок проектов
 
Мой маленький уютный PaaS / Илья Беда (bro.agency)
Мой маленький уютный PaaS / Илья Беда (bro.agency)Мой маленький уютный PaaS / Илья Беда (bro.agency)
Мой маленький уютный PaaS / Илья Беда (bro.agency)
 
Автоматизация тестирования клиентской производительности / Николай Лавлинский...
Автоматизация тестирования клиентской производительности / Николай Лавлинский...Автоматизация тестирования клиентской производительности / Николай Лавлинский...
Автоматизация тестирования клиентской производительности / Николай Лавлинский...
 
Formal verification of operating system kernels
Formal verification of operating system kernelsFormal verification of operating system kernels
Formal verification of operating system kernels
 
Веб-сервер Phantom
Веб-сервер PhantomВеб-сервер Phantom
Веб-сервер Phantom
 
Инструменты тестирования ядра Linux
Инструменты тестирования ядра LinuxИнструменты тестирования ядра Linux
Инструменты тестирования ядра Linux
 
Григорий Липин: Автоматизация нагрузочного тестирования
Григорий Липин: Автоматизация нагрузочного тестированияГригорий Липин: Автоматизация нагрузочного тестирования
Григорий Липин: Автоматизация нагрузочного тестирования
 
сервис нагрузочного тестирования Ddosme.ru, иван самсонов
сервис нагрузочного тестирования Ddosme.ru, иван самсоновсервис нагрузочного тестирования Ddosme.ru, иван самсонов
сервис нагрузочного тестирования Ddosme.ru, иван самсонов
 
Scaling services with apache mesos (and docker)
Scaling services with apache mesos (and docker)Scaling services with apache mesos (and docker)
Scaling services with apache mesos (and docker)
 
Олесь Писаренко "Открываем Яндекс.Танк"
Олесь Писаренко "Открываем Яндекс.Танк"Олесь Писаренко "Открываем Яндекс.Танк"
Олесь Писаренко "Открываем Яндекс.Танк"
 

En vedette

Open Source and Serious Business
Open Source and Serious BusinessOpen Source and Serious Business
Open Source and Serious BusinessAndrew Pantyukhin
 
Linux против windows
Linux против windowsLinux против windows
Linux против windowsnjuMarker
 
звук.высота и громкость звука
звук.высота и громкость звуказвук.высота и громкость звука
звук.высота и громкость звукаKuzLoz86
 
Як взяти участь у вебінарі
Як взяти участь у вебінаріЯк взяти участь у вебінарі
Як взяти участь у вебінаріgalanet82
 
Тема 1 Устройство ПК
Тема 1 Устройство ПКТема 1 Устройство ПК
Тема 1 Устройство ПКicod
 
устройство компьютера
устройство компьютераустройство компьютера
устройство компьютераShelty2011
 
Презентация на тему: Устройство компьютера
Презентация на тему: Устройство компьютераПрезентация на тему: Устройство компьютера
Презентация на тему: Устройство компьютера2berkas
 
компьютер
компьютеркомпьютер
компьютерNatashk
 
Урок образотворчого мистецтва
Урок образотворчого мистецтваУрок образотворчого мистецтва
Урок образотворчого мистецтваЮрій Генкузен
 
Презентация на тему: Устройство персонального компьютера
Презентация на тему: Устройство персонального компьютераПрезентация на тему: Устройство персонального компьютера
Презентация на тему: Устройство персонального компьютера2berkas
 
15 принцип работы и классификация эвм
15 принцип работы и классификация эвм15 принцип работы и классификация эвм
15 принцип работы и классификация эвмSergey Lomakin
 
18 устройства ввода информации лекция
18 устройства ввода информации лекция18 устройства ввода информации лекция
18 устройства ввода информации лекцияSergey Lomakin
 
УниСОД - Унифицированная Система Описания Должностей
УниСОД - Унифицированная Система Описания Должностей УниСОД - Унифицированная Система Описания Должностей
УниСОД - Унифицированная Система Описания Должностей molga-ru
 
“Основы Вашего сайта: домен и хостинг”
“Основы Вашего сайта: домен и хостинг” “Основы Вашего сайта: домен и хостинг”
“Основы Вашего сайта: домен и хостинг” Cybermarketing, Moscow
 
Техническое обслуживание персонального компьютера
Техническое обслуживание персонального компьютераТехническое обслуживание персонального компьютера
Техническое обслуживание персонального компьютераAlexandr Konfidentsialno
 
робочий цикл чотиритактного дизеля
робочий цикл чотиритактного дизеляробочий цикл чотиритактного дизеля
робочий цикл чотиритактного дизеляvovan0967
 
Операционные системы и среды
Операционные системы и средыОперационные системы и среды
Операционные системы и средыAlexandr Konfidentsialno
 

En vedette (20)

Open Source and Serious Business
Open Source and Serious BusinessOpen Source and Serious Business
Open Source and Serious Business
 
Linux против windows
Linux против windowsLinux против windows
Linux против windows
 
звук.высота и громкость звука
звук.высота и громкость звуказвук.высота и громкость звука
звук.высота и громкость звука
 
Як взяти участь у вебінарі
Як взяти участь у вебінаріЯк взяти участь у вебінарі
Як взяти участь у вебінарі
 
Тема 1 Устройство ПК
Тема 1 Устройство ПКТема 1 Устройство ПК
Тема 1 Устройство ПК
 
EYEC2014 Program
EYEC2014 ProgramEYEC2014 Program
EYEC2014 Program
 
устройство компьютера
устройство компьютераустройство компьютера
устройство компьютера
 
Презентация на тему: Устройство компьютера
Презентация на тему: Устройство компьютераПрезентация на тему: Устройство компьютера
Презентация на тему: Устройство компьютера
 
Issuu1
Issuu1Issuu1
Issuu1
 
компьютер
компьютеркомпьютер
компьютер
 
Урок образотворчого мистецтва
Урок образотворчого мистецтваУрок образотворчого мистецтва
Урок образотворчого мистецтва
 
gtt
gttgtt
gtt
 
Презентация на тему: Устройство персонального компьютера
Презентация на тему: Устройство персонального компьютераПрезентация на тему: Устройство персонального компьютера
Презентация на тему: Устройство персонального компьютера
 
15 принцип работы и классификация эвм
15 принцип работы и классификация эвм15 принцип работы и классификация эвм
15 принцип работы и классификация эвм
 
18 устройства ввода информации лекция
18 устройства ввода информации лекция18 устройства ввода информации лекция
18 устройства ввода информации лекция
 
УниСОД - Унифицированная Система Описания Должностей
УниСОД - Унифицированная Система Описания Должностей УниСОД - Унифицированная Система Описания Должностей
УниСОД - Унифицированная Система Описания Должностей
 
“Основы Вашего сайта: домен и хостинг”
“Основы Вашего сайта: домен и хостинг” “Основы Вашего сайта: домен и хостинг”
“Основы Вашего сайта: домен и хостинг”
 
Техническое обслуживание персонального компьютера
Техническое обслуживание персонального компьютераТехническое обслуживание персонального компьютера
Техническое обслуживание персонального компьютера
 
робочий цикл чотиритактного дизеля
робочий цикл чотиритактного дизеляробочий цикл чотиритактного дизеля
робочий цикл чотиритактного дизеля
 
Операционные системы и среды
Операционные системы и средыОперационные системы и среды
Операционные системы и среды
 

Similaire à JavaOne Russia 2013: Опыт использования JDK и Glassfish с Raspberry Pi

Обзор Continuous integration инструментов
Обзор Continuous integration инструментовОбзор Continuous integration инструментов
Обзор Continuous integration инструментовVitalii Morvaniuk
 
Опенсорс-инструменты на страже безопасности бэкенда — Петр Волков
Опенсорс-инструменты на страже безопасности бэкенда — Петр ВолковОпенсорс-инструменты на страже безопасности бэкенда — Петр Волков
Опенсорс-инструменты на страже безопасности бэкенда — Петр ВолковYandex
 
Видеохостинг своими руками
Видеохостинг своими рукамиВидеохостинг своими руками
Видеохостинг своими рукамиStanislavMalkin
 
развертывание среды Rails (антон веснин, Locum Ru)
развертывание среды Rails (антон веснин, Locum Ru)развертывание среды Rails (антон веснин, Locum Ru)
развертывание среды Rails (антон веснин, Locum Ru)guest40e031
 
Containers in real world презентация
Containers in real world презентацияContainers in real world презентация
Containers in real world презентацияPavel Odintsov
 
Использование контейнеризации в среде массового хостинга
Использование контейнеризации в среде массового хостингаИспользование контейнеризации в среде массового хостинга
Использование контейнеризации в среде массового хостингаYandex
 
JavaScript-модули "из прошлого в будущее"
JavaScript-модули "из прошлого в будущее"JavaScript-модули "из прошлого в будущее"
JavaScript-модули "из прошлого в будущее"oelifantiev
 
СКБ-Банк. Игорь Клопотов. "Apache ServiceMix: опыт внедрения и эксплуатации"
СКБ-Банк. Игорь Клопотов. "Apache ServiceMix: опыт внедрения и эксплуатации"СКБ-Банк. Игорь Клопотов. "Apache ServiceMix: опыт внедрения и эксплуатации"
СКБ-Банк. Игорь Клопотов. "Apache ServiceMix: опыт внедрения и эксплуатации"Expolink
 
TMPA-2013 Sartakov: Genode
TMPA-2013 Sartakov: GenodeTMPA-2013 Sartakov: Genode
TMPA-2013 Sartakov: GenodeIosif Itkin
 
Построение и переход на новую аналитическую платформу. Цели, вызовы, решения....
Построение и переход на новую аналитическую платформу. Цели, вызовы, решения....Построение и переход на новую аналитическую платформу. Цели, вызовы, решения....
Построение и переход на новую аналитическую платформу. Цели, вызовы, решения....HOWWEDOIT
 
Платформа для консолидированного управления ресурсами ЦОД
Платформа для консолидированного управления ресурсами ЦОДПлатформа для консолидированного управления ресурсами ЦОД
Платформа для консолидированного управления ресурсами ЦОДARCCN
 
Знакомство с WebAssembly
Знакомство с WebAssemblyЗнакомство с WebAssembly
Знакомство с WebAssemblyNikita Zimin
 
Zero Downtime PHP Deployment with Envoyer And Forge
Zero Downtime PHP Deployment with Envoyer And ForgeZero Downtime PHP Deployment with Envoyer And Forge
Zero Downtime PHP Deployment with Envoyer And ForgeYehor Herasymchuk
 
VMUG Moscow 2014 Проблемы с дисками?
VMUG Moscow 2014 Проблемы с дисками?VMUG Moscow 2014 Проблемы с дисками?
VMUG Moscow 2014 Проблемы с дисками?Anton Zhbankov
 
Solaris OS
Solaris OSSolaris OS
Solaris OSSSA KPI
 
Java Platform Performance BoF
Java Platform Performance BoFJava Platform Performance BoF
Java Platform Performance BoFDmitry Buzdin
 
Использование Open Source инструментов для автоматизации тестирования
Использование Open Source инструментов для автоматизации тестированияИспользование Open Source инструментов для автоматизации тестирования
Использование Open Source инструментов для автоматизации тестированияSQALab
 
Безопасность без антивирусов 4
Безопасность без антивирусов 4Безопасность без антивирусов 4
Безопасность без антивирусов 4Positive Hack Days
 
Релиз-инжениринг Mail.ru. Взгляд изнутри. Максим Глеков, Mail.Ru Group, Москва
 Релиз-инжениринг Mail.ru. Взгляд изнутри. Максим Глеков, Mail.Ru Group, Москва  Релиз-инжениринг Mail.ru. Взгляд изнутри. Максим Глеков, Mail.Ru Group, Москва
Релиз-инжениринг Mail.ru. Взгляд изнутри. Максим Глеков, Mail.Ru Group, Москва it-people
 
СХД DEPO Storage 4600 для консолидации данных в современной IT-инфраструктуре
СХД DEPO Storage 4600 для консолидации данных в современной IT-инфраструктуреСХД DEPO Storage 4600 для консолидации данных в современной IT-инфраструктуре
СХД DEPO Storage 4600 для консолидации данных в современной IT-инфраструктуреDEPO Computers
 

Similaire à JavaOne Russia 2013: Опыт использования JDK и Glassfish с Raspberry Pi (20)

Обзор Continuous integration инструментов
Обзор Continuous integration инструментовОбзор Continuous integration инструментов
Обзор Continuous integration инструментов
 
Опенсорс-инструменты на страже безопасности бэкенда — Петр Волков
Опенсорс-инструменты на страже безопасности бэкенда — Петр ВолковОпенсорс-инструменты на страже безопасности бэкенда — Петр Волков
Опенсорс-инструменты на страже безопасности бэкенда — Петр Волков
 
Видеохостинг своими руками
Видеохостинг своими рукамиВидеохостинг своими руками
Видеохостинг своими руками
 
развертывание среды Rails (антон веснин, Locum Ru)
развертывание среды Rails (антон веснин, Locum Ru)развертывание среды Rails (антон веснин, Locum Ru)
развертывание среды Rails (антон веснин, Locum Ru)
 
Containers in real world презентация
Containers in real world презентацияContainers in real world презентация
Containers in real world презентация
 
Использование контейнеризации в среде массового хостинга
Использование контейнеризации в среде массового хостингаИспользование контейнеризации в среде массового хостинга
Использование контейнеризации в среде массового хостинга
 
JavaScript-модули "из прошлого в будущее"
JavaScript-модули "из прошлого в будущее"JavaScript-модули "из прошлого в будущее"
JavaScript-модули "из прошлого в будущее"
 
СКБ-Банк. Игорь Клопотов. "Apache ServiceMix: опыт внедрения и эксплуатации"
СКБ-Банк. Игорь Клопотов. "Apache ServiceMix: опыт внедрения и эксплуатации"СКБ-Банк. Игорь Клопотов. "Apache ServiceMix: опыт внедрения и эксплуатации"
СКБ-Банк. Игорь Клопотов. "Apache ServiceMix: опыт внедрения и эксплуатации"
 
TMPA-2013 Sartakov: Genode
TMPA-2013 Sartakov: GenodeTMPA-2013 Sartakov: Genode
TMPA-2013 Sartakov: Genode
 
Построение и переход на новую аналитическую платформу. Цели, вызовы, решения....
Построение и переход на новую аналитическую платформу. Цели, вызовы, решения....Построение и переход на новую аналитическую платформу. Цели, вызовы, решения....
Построение и переход на новую аналитическую платформу. Цели, вызовы, решения....
 
Платформа для консолидированного управления ресурсами ЦОД
Платформа для консолидированного управления ресурсами ЦОДПлатформа для консолидированного управления ресурсами ЦОД
Платформа для консолидированного управления ресурсами ЦОД
 
Знакомство с WebAssembly
Знакомство с WebAssemblyЗнакомство с WebAssembly
Знакомство с WebAssembly
 
Zero Downtime PHP Deployment with Envoyer And Forge
Zero Downtime PHP Deployment with Envoyer And ForgeZero Downtime PHP Deployment with Envoyer And Forge
Zero Downtime PHP Deployment with Envoyer And Forge
 
VMUG Moscow 2014 Проблемы с дисками?
VMUG Moscow 2014 Проблемы с дисками?VMUG Moscow 2014 Проблемы с дисками?
VMUG Moscow 2014 Проблемы с дисками?
 
Solaris OS
Solaris OSSolaris OS
Solaris OS
 
Java Platform Performance BoF
Java Platform Performance BoFJava Platform Performance BoF
Java Platform Performance BoF
 
Использование Open Source инструментов для автоматизации тестирования
Использование Open Source инструментов для автоматизации тестированияИспользование Open Source инструментов для автоматизации тестирования
Использование Open Source инструментов для автоматизации тестирования
 
Безопасность без антивирусов 4
Безопасность без антивирусов 4Безопасность без антивирусов 4
Безопасность без антивирусов 4
 
Релиз-инжениринг Mail.ru. Взгляд изнутри. Максим Глеков, Mail.Ru Group, Москва
 Релиз-инжениринг Mail.ru. Взгляд изнутри. Максим Глеков, Mail.Ru Group, Москва  Релиз-инжениринг Mail.ru. Взгляд изнутри. Максим Глеков, Mail.Ru Group, Москва
Релиз-инжениринг Mail.ru. Взгляд изнутри. Максим Глеков, Mail.Ru Group, Москва
 
СХД DEPO Storage 4600 для консолидации данных в современной IT-инфраструктуре
СХД DEPO Storage 4600 для консолидации данных в современной IT-инфраструктуреСХД DEPO Storage 4600 для консолидации данных в современной IT-инфраструктуре
СХД 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
  • 3. План • Девайс • Зачем • Специфика ОС и JDK • Опыт с Glassfish 4 • Пробуем Wednesday, April 24, 13
  • 5. Raspberry Pi Подробная инженерная информация: http://www.element14.com/community/docs/DOC-42993/l/raspberry-pi-single-board- computer Wednesday, April 24, 13
  • 6. Полет фантазии с PI http://pingbin.com/2012/12/30-cool-ideas-raspberry-pi-project/ Wednesday, April 24, 13
  • 7. Типичный кластер из Raspberry Pi raspberrycolocation.com - бесплатный colocation вашего Pi Wednesday, April 24, 13
  • 8. Raspberry Pi в стоечном исполнении:) Wednesday, April 24, 13
  • 9. Кто из вас пробовал программировать на JAVA для Raspberry PI? Wednesday, April 24, 13
  • 10. Кто из вас использовал Raspberry PI или ARM аналог с JAVA для каких-то производственных задач? 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
  • 19. Какую ОС поставить? Какую Java выбрать? 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
  • 23. Однако чтобы использовать сейчас, надо подшаманить:) 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
  • 26. raspi-config Важно сделать expand_rootfs, иначе дальнейшие обновления просто не влезут на карту. 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
  • 37. Пробуем простое приложение modules.js на Glassfish 4 (Javascript + REST) Wednesday, April 24, 13
  • 38. Youtrack на Raspberry PI Wednesday, April 24, 13
  • 39. Спасибо за внимание! Юрий Трухин, SDE, Researcher (CNIP GIS LLC) yuri@trukhin.com twitter.com/trukhinyuri Wednesday, April 24, 13