OpenJDK

麒麟Kylin系统适配gStore图数据库系统

大憨熊 提交于 2020-07-28 08:26:11
麒麟Kylin系统适配gStore图数据库系统 作者: 梁剑明 日期: 2020年07月17日 适配系统版本 :Kylin 4.0 内核版本 :aarch64 gStore版本 :V0.8 1.环境要求 适配gStore图数据库系统V0.8版本,环境需求如下: 项目 需求 操作系统 Linux, 例如CentOS, Ubuntu、Kylin等 架构 x86_64 磁盘容量 根据数据集的大小 内存大小 根据数据集的大小 glibc 必须安装 version >= 2.14 gcc 必须安装 version >= 4.8 g++ 必须安装 version >= 4.8 make 必须安装 boost 必须安装 version >= 1.54 readline 必须安装 readline-devel 必须安装 libcurl-devel 必须安装 openjdk 如果使用Java api,则需要 openjdk-devel 如果使用Java api,则需要 requests 如果使用Python http api,则需要 node 如果使用Nodejs http api则需要 version >=10.9.0 curl-devel 如果使用php http api,则需要 pthreads 如果使用php http api,则需要 realpath 如果使用gconsole,则需要

深度探索JFR

偶尔善良 提交于 2020-07-27 13:53:21
本文基于 OpenJDK 11 3. 虚拟机相关 Event 3.3. JIT即时编译相关 JIT 即时编译可能会遇到编译后的代码缓存占满,或者因为空间有限或者代码设计问题,导致某些关键方法需要重编译导致性能问题,以及因为代码块过大导致编译失败从而性能有问题,这些问题我们可以通过 JFR 中相关的 Event 进行查询。 JFR 对于 Java 开发可以完全替换 JVM 编译日志 。 额外讲解:JIT 相关的知识 首先,这里简单介绍下 JIT 相关的知识(这里我推荐看 O'Rerilly 上面的 Java Performance 第二版的第四章: Working with the JIT Compiler ): 首先什么是 JIT: 当 Java 被编译为字节码形式的 class 文件之后,他可以在任意的 JVM 运行。这里说的编译,主要是指 前端编译器 。但是 class 文件里面的字节码并不能直接运行,而是要通过 后端编译器 在程序运行期间,将字节码转变成机器码,这样电脑才能执行你的代码。 Java Code Cache 是啥: 如果 Java 每次都需要即时编译成机器码,再执行,效率太慢了。那么是不是对于某些热点代码,编译后的机器码,缓存起来,这样下次就不用重新即时编译了,多快乐。Java Code Cache 就是用来干这个的。但是编译后的机器码太大了,Java Code

Docker 定制ssh、java等基础服务镜像

点点圈 提交于 2020-07-27 05:58:55
1、启动一个基于centos镜像的容器 # docker run –p 10022:22 - ti centos bash [root@f743588bbeef /]# -p: 本地端口映射容器22端口,是为了后面启动ssh后测试能否正常登陆 2、在容器中安装openssh-server、java等 [root@f743588bbeef /]# yum install -y -q openssh-server java-1.7.0-openjdk net-tools 3、修改sshd_config配置文件 [root@f743588bbeef /]# ssh-keygen -q -t rsa -b 2048 -f /etc/ ssh /ssh_host_rsa_key -N '' [root@f743588bbeef /]# ssh-keygen -q -t ecdsa -f /etc/ ssh /ssh_host_ecdsa_key -N '' [root@f743588bbeef /]# ssh-keygen -t dsa -f /etc/ ssh /ssh_host_ed25519_key -N '' [root@f743588bbeef /]# sed -i " s/UsePrivilegeSeparation.*/UsePrivilegeSeparation no/g "

一个导致JVM物理内存消耗大的Bug

大憨熊 提交于 2020-07-27 01:20:18
本文来自: PerfMa技术社区 PerfMa(笨马网络)官网 概述 最近我们公司在帮一个客户查一个JVM的问题(JDK1.8.0_191-b12),发现一个系统老是被OS Kill掉,是内存泄露导致的。在查的过程中,阴差阳错地发现了JVM另外的一个Bug。这个Bug可能会导致大量物理内存被使用,我们已经反馈给了社区,并得到快速反馈,预计在OpenJDK8最新版中发布(JDK11中也存在这个问题)。 PS:用户的那个问题最终也解决了,定位下来算是C2的一个设计缺陷导致大量内存被使用,安全性上没有得到保障。 找出消耗大内存的线程 接下来主要分享下这个BUG的发现过程,先要客户实时跟踪进程的情况,当内存使用明显上升的时候,通过/proc/<pid>/smaps,看到了不少64MB的内存分配,Rss也基本消耗完了。 7fd690000000-7fd693f23000 rw-p 00000000 00:00 0 Size: 64652 kB Rss: 64652 kB Pss: 64652 kB Shared_Clean: 0 kB Shared_Dirty: 0 kB Private_Clean: 0 kB Private_Dirty: 64652 kB Referenced: 64652 kB Anonymous: 64652 kB AnonHugePages: 0 kB Swap:

【JVM之内存与垃圾回收篇】堆

六月ゝ 毕业季﹏ 提交于 2020-07-27 00:54:27
堆 堆的核心概念 堆针对一个 JVM 进程来说是唯一的,也就是一个进程只有一个 JVM,但是进程包含多个线程,他们是共享同一堆空间的。 一个 JVM 实例只存在一个堆内存,堆也是 Java 内存管理的核心区域。 Java 堆区在 JVM 启动的时候即被创建,其空间大小也就确定了。是 JVM 管理的最大一块内存空间。 堆内存的大小是可以调节的。 《Java 虚拟机规范》规定,堆可以处于 物理上不连续 的内存空间中,但在 逻辑上 它应该被视为 连续的 。 所有的线程共享 Java 堆,在这里还可以划分线程私有的缓冲区(Thread Local Allocation Buffer,TLAB)。 -Xms10m:最小堆内存 -Xmx10m:最大堆内存 理解: ms:memory size mx:memory max size 下图就是使用:Java VisualVM 查看堆空间的内容,通过 jdk bin 提供的插件 《Java 虚拟机规范》中对 Java 堆的描述是:所有的对象实例以及数组都应当在运行时分配在堆上。(The heap is the run-time data area from which memory for all class instances and arrays is allocated) 我要说的是:“几乎”所有的对象实例都在这里分配内存。—从实际使用角度看的

linux服务器Tomcat 搭建

[亡魂溺海] 提交于 2020-07-26 09:48:53
如果的服务器ip:192.168.163.108 #java -version ( openjdk version "1.8.0_102" 如果发现大于1.6 就可以不用安装jdk) #yum install java-1.8.0-openjdk.i686 -y #rz apache-tomcat-7.0.82.tar.gz #tar zxf apache-tomcat-7.0.82.tar.gz #mv apache-tomcat-7.0.82 tomcat #ll #cd tomcat/ #ll #cd bin/ #ls #sh startup.sh #netstat -anplt|grep 8080 可以去到网页 192.168.163.108:8080 来源: oschina 链接: https://my.oschina.net/u/4399347/blog/4407125

安装和使用ArchLiunx超详细教程

僤鯓⒐⒋嵵緔 提交于 2020-07-25 13:05:07
效果图 安装系统 一、下载介质 https://www.archlinux.org/download/ 二、启动 ISO 到Live 环境 此步骤由很多种方式: 制作ISO为U盘启动工具,可以使用 Ultra ISO 或 大白菜 有Linux/Unix系统的,可以硬盘写入Grub,制作启动项 三、安装前的准备 启动 iso到 live 环境,登录后,在 /root, ArchLinux 贴心地 放置了 install.txt 文件供参考。 验证启动模式 如果以在 UEFI 主板上启用 UEFI 模式,Arch iso 将会使用 systemd-boot 来 启动 Arch Linux。 ls /sys/firmware/efi/efivars 如果目录不存在,系统可能以 BIOS 或 CSM 模式启动 连接到互联网 确保系统已经启用了 网络接口,用 ip-link(8) 检查: ip link 连接到网络,连接网线或无线网络. https://wiki.archlinux.org/index.php/Network_configuration_(简体中文)/Wireless_(简体中文) 如果采用无线联网 # netctl 打开wifi wifi-menu 如果采用ADSL 宽带连接 pppoe-setup # 或者 systemctl start adsl ping 检查网络连接

怎样更改Linux中默认的openjdk为自己安装的JDK

你说的曾经没有我的故事 提交于 2020-07-24 13:03:11
系统自带jdk [root@oldboy ~]# java -version java version "1.5.0" gij (GNU libgcj) version 4.4.7 20120313 (Red Hat 4.4.7-23) Copyright (C) 2007 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 修改jdk alternatives --install /usr/bin/java java /usr/java/jdk1.8.0_60/bin/java 300 [root@oldboy ~]# alternatives --config java There are 4 programs which provide 'java'. Selection Command ----------------------------------------------- *+ 1 /usr/lib/jvm/jre-1.5.0-gcj/bin/java 2

JVM crashes with problematic frame [libjvm.so+0x7f582e] PerfLongVariant::sample()+0x1e

寵の児 提交于 2020-06-27 15:24:26
问题 The application is basically a Servlet on top of Apaches Tomcat 8 and crashes every 3 to n days. The most interesting part is, that the last 3 crashes happened at 1.30 PM + 3 to 4 seconds. Every other crash happens at 15, 30, 45 or the full hour. The same application worked for months on Windows 7 with Java 7 something. I found this report so I checked the available space at /tmp and I have plenty of space here. However, the next time I ran the VM with: -XX:-UsePerfData -XX:

Does OpenJDK 1.8 support JFR?

≡放荡痞女 提交于 2020-05-15 01:14:02
问题 I'm not sure if OpenJDK 1.8 supports JFR (java flight recorder). I know it was requested on the OpenJDK bugs forum. Using OpenJDK on Linux and executing the following from a terminal: jcmd `<pid>` JFR.start returns java.lang.IllegalArgumentException: Unknown diagnostic command 回答1: The OpenJDK 8 source code does not include the Java Flight Recorder implementation. That feature has been targeted to become part of OpenJDK source code with JDK 11, per http://openjdk.java.net/projects/jdk/11/ .