1

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

Всякий раз, когда нам нужно попасть в эти машины и просеять вокруг, мы используем PuTTY.

Меня недавно попросили контролировать нашу JVM с помощью профилировщика памяти jvisualvm , который является богатым графическим инструментом, который использует множество графиков и диаграмм с красивыми цветами. Когда я спросил своего технического специалиста, как я могу просматривать такой инструмент с графическим интерфейсом поверх символьного командного инструмента, такого как PuTTY, он сказал мне использовать вместо этого что-то под названием Reflection X.

Это побудило меня ознакомиться с Reflection X и X Windows в целом (с которыми я никогда не сталкивался).

Теперь я понимаю, что "X" - это уровень аппаратной абстракции, так что вы можете писать GUI-ориентированный код и размещать его на любом оборудовании, на котором может работать X. Таким образом, он идентичен (по теме) виртуальной машине Java.

Чего я не понимаю, так это отношений между моим ПК с Windows, Reflection X, машиной CentOS, на которой выполняется приложение, которое мне нужно профилировать, и самим инструментом jvisualvm : кто чем занимается?

Работает ли Reflection X на моей машине или он установлен на сервере Linux? Что в Reflection X позволяет мне просматривать jvisualvm удаленно?

Заранее спасибо!

3 ответа3

2

Программа jvisualvm чаще всего запускается на вашем компьютере CentOS. В этом поле запущен хост X-сервера, а Reflection X - просто клиент X-сервера. Это означает, что вы, по сути, используете удаленно управляемый рабочий стол. Все, что делает ваша машина Windows с Reflection X, подключается к блоку CentOS, чтобы вы могли видеть и взаимодействовать с запущенными там приложениями.

1

X сильно отличается от Java. Это не виртуальная машина, уровень аппаратной абстракции или что-то в этом роде - это сетевой протокол, в настоящее время на версии X11, который программы используют для связи с сервером X11. Такие программы могут быть написаны практически на любом языке, если он имеет необходимые функции.

Сервер X11 обычно работает на вашем собственном компьютере и выполняет функцию отображения графики на экране и отправки событий клавиатуры и мыши обратно в программы. Программы (клиенты X11) подключаются к нему локально с помощью таких методов IPC (сокеты Unix) или по сети - с использованием прямого TCP/IP (редко) или туннелируются внутри соединения SSH (опция "Пересылка X11" в PuTTY).

Reflection X - это коммерческий сервер X11 для Windows. Альтернативы с открытым исходным кодом включают Cygwin/X (порт Xorg), а также Xming. Практически на каждом ПК с Linux или BSD работает Xorg в качестве основной графической системы.

Когда вы запускаете Reflection X на своем компьютере, он просто сидит и ждет подключения. Когда вы запускаете jvisualvm на компьютере CentOS, профилировщик подключается к серверу X11 (туннелируется по тому же SSH-соединению, которое использует PuTTY) и использует протокол X11, чтобы открыть окно и нарисовать внутри него.

0
  • Reflection X представляется X-сервером, работающим под MS Windows. Свободной альтернативой будет Xming
  • X-серверы обслуживают запросы клиентов с графическим интерфейсом и отображают их на хост-компьютере, на котором работает X-сервер.
  • На вашем компьютере с Linux вам нужно будет настроить DISPLAY так, чтобы он указывал на ваш X-сервер, когда он запущен и работает на вашем компьютере с Windows. Затем вы можете запустить приложение с графическим интерфейсом на сервере Linux, и оно будет отображаться на рабочем столе Windows.

Отличная а?

В качестве альтернативы, если Linux box - это VMware VM, вы можете установить инструменты VMware и использовать их приложение для единства, чтобы сделать что-то подобное.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .