Skip to content

HDDS-1116. Add java profiler servlet to the Ozone web servers #491

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Closed
wants to merge 1 commit into from

Conversation

elek
Copy link
Member

@elek elek commented Feb 15, 2019

Thanks to [~gopalv] we learned that [~prasanth_j] implemented a helper servlet in Hive to initialize new [async profiler|https://github.com/jvm-profiling-tools/async-profiler] sessions and provide the svg based flame graph over HTTP. (see HIVE-20202)

It seems to very useful as with this approach the profiling could be very easy.

This patch imports the servlet from the Hive code base to the Ozone code base with minor modification (to make it work with our servlet containers)

  • The two servlets are unified to one
  • Streaming the svg to the browser based on IOUtils.copy
  • Output message is improved

By default the profile servlet is turned off, but you can enable it with 'hdds.profiler.endpoint.enabled=true' ozone-site.xml settings. In that case you can access the /prof endpoint from scm,om,s3g.

You should upload the async profiler first (https://github.com/jvm-profiling-tools/async-profiler) and set the ASYNC_PROFILER_HOME environment variable to find it.

See: https://issues.apache.org/jira/browse/HDDS-1116

@elek elek added the ozone label Feb 15, 2019
@@ -18,6 +18,7 @@ version: "3"
services:
datanode:
image: apache/hadoop-runner
privileged: true #required by the profiler

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This can be avoided with initContainer running in privileged mode that updates the following

            sudo bash -c 'echo 1 > /proc/sys/kernel/perf_event_paranoid'
            sudo bash -c 'echo 0 > /proc/sys/kernel/kptr_restrict'

with this initContainer will apply the required changes and will complete. main container can still run in non-previleged mode.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Sorry, I missed the part that it is running using docker-compose and not k8s.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks the comment. I think we can assume that the kernel parameters are adjusted. I will test it without the privileged flag and remove those lines..

@elek elek closed this Feb 20, 2019
shanthoosh pushed a commit to shanthoosh/hadoop that referenced this pull request Oct 15, 2019
xinyuiscool ^^

Author: Bharath Kumarasubramanian <bkumaras@linkedin.com>

Reviewers: Prateek M <prateekm@apache.org>

Closes apache#491 from bharathkk/samza-1563
NyteKnight pushed a commit to NyteKnight/hadoop that referenced this pull request Jun 25, 2024
…-76130 (apache#491)

* Revert "[hadoop] LIHADOOP-76132 : Evolve the BundledTokenIdentifier to include SPIFFE tokens (apache#458)"

This reverts commit e3d76d0.

* Revert "[hadoop] LIHADOOP-76131 : Create the SPIFFE Delegation Token Identifier (apache#456)"

This reverts commit df81929.

* Revert "[hadoop] LIHADOOP-76130: Update BundledDelegationTokenIdentifier to have unambiguous serde (apache#457)"

This reverts commit 902ba08.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants