操屁眼的视频在线免费看,日本在线综合一区二区,久久在线观看免费视频,欧美日韩精品久久综

新聞資訊

    為Oracle數(shù)據(jù)庫默認的端口是8080,這也是tomcat服務器的默認端口.

    為了避免端口沖突,我們通常會修改掉其中一個.

    這里我們選擇修改Oracle數(shù)據(jù)庫的端口.

    第一步:以管理員身份運行cmd窗口(按win鍵+X)

    第2步:輸入 sqlplus sys as sysdba;

    第3步:輸入你的Oracle數(shù)據(jù)庫的sys帳號的登錄密碼

    注:默認輸入密碼狀態(tài)不可見,輸入完直接回車就可以

    第四步:以修改端口為8090為例,輸入以下指令 exec dbms_xdb.sethttpport(8090);

    修改成功,恭喜!

    調優(yōu)準備

    調優(yōu)是需要做好準備工作的,畢竟每一個應用的業(yè)務目標都不盡相同,性能瓶頸也不會總在同一個點上。在業(yè)務應用層面,我們需要:

    • 需要了解系統(tǒng)的總體架構,明確壓力方向。比如系統(tǒng)的哪一個接口、模塊是使用率最高的,面臨高并發(fā)的挑戰(zhàn)。
    • 需要構建測試環(huán)境來測試應用的性能,使用ab、loadrunner、jmeter、faban都可以。
    • 對關鍵業(yè)務數(shù)據(jù)量進行分析,這里主要指的是對一些數(shù)據(jù)的量化分析,如數(shù)據(jù)庫一天的數(shù)據(jù)量有多少、緩存的數(shù)據(jù)量有多大等。
    • 了解系統(tǒng)的響應速度、吞吐量、TPS、QPS等指標需求,比如秒殺系統(tǒng)的相應速度和QPS是要求非常高的。
    • 了解系統(tǒng)相關軟件的版本、模式和參數(shù)等,有時候限于應用依賴服務的版本、模式等,性能也會受到一定的影響。

    此外,還需要掌握以下知識和技能:

    1. 了解Java內存管理相關知識。
    2. 對Java代碼進行基準性能測試:可以使用JMH來進行,其是一個微基準測試框架,使用其進行性能測試,能夠去除JIT熱點代碼編譯對性能的影響。
    3. 了解HotSpot虛擬機體系結構。
    4. 對系統(tǒng)性能進行調優(yōu)。
    5. 掌握常用系統(tǒng)常用診斷工具和JDK診斷工具的使用。

    一、 HotSpot虛擬機

    HotSpot虛擬機是Java開發(fā)用的最多的JVM,了解其體系結構,才能夠從原理層面更好的理解性能問題,也才能更好地對Java應用進行調優(yōu)。

    1. HotSpot VM主要由垃圾回收器、JIT編譯器以Runtime組成。

    1. HotSpot VM的運行時架構包括類加載器、執(zhí)行引擎以及運行時數(shù)據(jù)區(qū)。

    1. 如圖,Java源碼被編譯器編譯為JVM字節(jié)碼后進入JVM, 由類加載器進行加載,并交給執(zhí)行引擎執(zhí)行,期間的數(shù)據(jù)都放入運行時數(shù)據(jù)區(qū)。
    2. 這里需要注意的是,JIT編譯器是執(zhí)行引擎中非常影響應用性能的組件,它會把熱點代碼直接編譯為本地機器碼,從而提高運行時的性能。此外,垃圾回收器執(zhí)行GC的時機、效率對應用性能的影響也非常關鍵。

    HotSpot VM內部有一些線程進行JVM的管理、監(jiān)控、垃圾回收工作。主要包括:

    • VM thread:這個線程是JVM里面的線程母體,是一個單例的對象(最原始的線程)會產(chǎn)生或觸發(fā)所有其他的線程,這個單個的VM線程是會被其他線程所使用來做一些VM操作(如,清掃垃圾等)。
    • Periodic task thread:該線程是JVM周期性任務調度的線程,它由WatcherThread創(chuàng)建,是一個單例對象。
    • Garbage collection threads: 進行垃圾回收的線程。
    • JIT compiler threads: 進行JIT編譯的線程。
    • Signal dispatcher thread: 當外部jvm命令接收成功后,會交給signal dispather線程去進行分發(fā)到各個不同的模塊處理命令,并且返回處理結果。

    這些線程的運行有時候會影響業(yè)務線程的運行,是影響應用性能的關鍵因素。

    二、 系統(tǒng)性能調優(yōu)

    后端應用都是需要部署在服務器上的,因此在對Java應用調優(yōu)之前務必先將系統(tǒng)的性能調整到一個相對較好的水平。

    一般來說,目前后端系統(tǒng)都是部署在Linux主機上的。所以拋開Win系列不談,對于Linux系統(tǒng)來說一般有以下配置關系著系統(tǒng)的性能。

    • 文件描述符數(shù)限制:Linux中所有東西都是文件,一個socket就對應著一個文件描述符,因此系統(tǒng)配置的最大打開文件數(shù)以及單個進程能夠打開的最大文件數(shù)就決定了socket的數(shù)目上限。
    • 進程/線程數(shù)限制: 對于Apache使用的prefork等多進程模式,其負載能力由進程數(shù)目所限制。對Tomcat多線程模式則由線程數(shù)所限制。
    • TCP內核參數(shù):網(wǎng)絡應用的底層自然離不開TCP/IP,Linux內核有一些與此相關的配置也決定了系統(tǒng)的負載能力。

    文件描述符數(shù)限制

    • 系統(tǒng)最大打開文件描述符數(shù):/proc/sys/fs/file-max中保存了這個數(shù)目,可修改此值。
     臨時性
     echo 1000000 > /proc/sys/fs/file-max
     永久性:在/etc/sysctl.conf中設置
     fs.file-max=1000000
    
    • 進程最大打開文件描述符數(shù):這個是配置單個進程能夠打開的最大文件數(shù)目。可以通過ulimit -n查看和修改。如果想要永久修改,則需要修改/etc/security/limits.conf中的nofile選項。

    通過讀取/proc/sys/fs/file-nr可以看到當前使用的文件描述符總數(shù)。另外,對于文件描述符的配置,需要注意以下幾點:

    • 所有進程打開的文件描述符數(shù)不能超過/proc/sys/fs/file-max。
    • 單個進程打開的文件描述符數(shù)不能超過user limit中nofile的soft limit。
    • nofile的soft limit不能超過其hard limit。
    • nofile的hard limit不能超過/proc/sys/fs/nr_open。

    進程/線程數(shù)限制

    • 進程數(shù)限制:ulimit -u可以查看/修改單個用戶能夠打開的最大進程數(shù)。/etc/security/limits.conf中的noproc則是系統(tǒng)的最大進程數(shù)。
    • 線程數(shù)限制:
    • 可以通過/proc/sys/kernel/threads-max查看系統(tǒng)總共可以打開的最大線程數(shù)。
    • 單個進程的最大線程數(shù)和PTHREAD_THREADS_MAX有關,此限制可以在/usr/include/bits/local_lim.h中查看,但是如果想要修改的話,需要重新編譯Linux系統(tǒng)。
    • Linux內核2.4的線程實現(xiàn)方式為Linux threads,是輕量級進程,會首先創(chuàng)建一個管理線程,線程數(shù)目的大小是受PTHREAD_THREADS_MAX影響的。Linux2.6內核的線程實現(xiàn)方式變?yōu)镹PTL,是一個改進的LWP實現(xiàn),與Linux thread最大的區(qū)別就是其線程公用進程的pid(tgid),線程數(shù)目大小只受制于資源。
    • 線程數(shù)的大小還受線程棧大小的制約:使用ulimit -s可以查看/修改線程棧的大小,即每開啟一個新的線程需要分配給此線程的一部分內存。減小此值可以增加可以打開的線程數(shù)目。

    TCP內核參數(shù)

    在一臺服務器CPU和內存資源有限的情況下,最大的壓榨服務器的性能,是最終的目的。在節(jié)省成本的情況下,可以考慮修改Linux的內核TCP/IP參數(shù),來最大的壓榨服務器的性能。如果通過修改內核參數(shù)也無法解決的負載問題,也只能考慮升級服務器。

    netstat -n | awk '/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}'
    

    使用上面的命令,可以得到當前系統(tǒng)的各個狀態(tài)的網(wǎng)絡連接的數(shù)目。如下:

    LAST_ACK 13
    SYN_RECV 468
    ESTABLISHED 90
    FIN_WAIT1 259
    FIN_WAIT2 40
    CLOSING 34
    TIME_WAIT 28322
    

    這里,TIME_WAIT的連接數(shù)是需要注意的一點。此值過高會占用大量連接,影響系統(tǒng)的負載能力。需要調整參數(shù),以盡快的釋放TIME_WAIT連接。

    一般TCP相關的內核參數(shù)在/etc/sysctl.conf文件中。為了能夠盡快釋放TIME_WAIT狀態(tài)的連接,可以做以下配置:

    • net.ipv4.tcp_syncookies=1,表示開啟SYN Cookies。當出現(xiàn)SYN等待隊列溢出時,啟用Cookies來處理,可防范少量SYN攻擊,默認為0,表示關閉。
    • net.ipv4.tcp_tw_reuse=1,表示開啟重用。允許將TIME-WAIT sockets重新用于新的TCP連接,默認為0,表示關閉。
    • net.ipv4.tcp_tw_recycle=1,表示開啟TCP連接中TIME-WAIT sockets的快速回收,默認為0,表示關閉;
    • net.ipv4.tcp_fin_timeout=30,修改系統(tǒng)默認的 TIMEOUT 時間。

    這里需要注意的一點就是當打開了tcp_tw_recycle,就會檢查時間戳,移動環(huán)境下的發(fā)來的包的時間戳有些時候是亂跳的,會把帶了“倒退”的時間戳的包當作是“recycle的tw連接的重傳數(shù)據(jù),不是新的請求”,于是丟掉不回包,造成大量丟包。另外,當前面有LVS,并且采用的是NAT機制時,開啟tcp_tw_recycle也會造成一些異常。如果這種情況下仍然需要開啟此選項,那么可以考慮設置net.ipv4.tcp_timestamps=0,忽略掉報文的時間戳即可。

    此外,還可以通過優(yōu)化tcp/ip的可使用端口的范圍,進一步提升負載能力。如下:

    • net.ipv4.tcp_keepalive_time=1200,表示當keepalive啟用的時候,TCP發(fā)送keepalive消息的頻度。缺省是2小時,改為20分鐘。
    • net.ipv4.ip_local_port_range=10000 65000,表示用于向外連接的端口范圍。缺省情況下很小:32768到61000,改為10000到65000。這里需要注意不要將最低值設的太低,否則可能會占用掉正常的端口。
    • net.ipv4.tcp_max_syn_backlog=8192,表示SYN隊列的長度,默認為1024,加大隊列長度為8192,可以容納更多等待連接的網(wǎng)絡連接數(shù)。
    • net.ipv4.tcp_max_tw_buckets=5000,表示系統(tǒng)同時保持TIME_WAIT的最大數(shù)量,如果超過這個數(shù)字,TIME_WAIT將立刻被清除并打印警告信息。默認為180000,改為5000,可以很好地減少TIME_WAIT套接字數(shù)量。

    三、 系統(tǒng)常用診斷工具

    當應用運行情況、響應情況異常時,會直接表現(xiàn)為系統(tǒng)的指標異常。而指標需要通過相關的系統(tǒng)命令來獲取。Linux系統(tǒng)(CentOS 6.5)下常用的診斷工具如下:

    1. uptime
    2. 使用uptime可以快速查看服務器的負載情況。
    00:40:16 up 116 days, 5:28, 1 user, load average: 0.36, 0.32, 0.32
    
    1. 此命令返回的是系統(tǒng)的平均負荷,包括1分鐘、5分鐘、15分鐘內可以運行的任務平均數(shù)量,包括正在運行的任務以及雖然可以運行但正在等待某個處理器空閑的任務。當然,這個值是和CPU核數(shù)有關的,雙核的機器,load只要小于2也是正常的狀況。CPU的情況可以通過查看/proc/cpuinfo來獲得。
    2. 如果1分鐘平均負載很高,而15分鐘平均負載很低,說明服務器正在命令高負載情況,需要進一步排查CPU資源都消耗在了哪里。反之,如果15分鐘平均負載很高,1分鐘平均負載較低,則有可能是CPU資源緊張時刻已經(jīng)過去。
    3. 這里需要注意的是在Linux下平均負載除了包括等待CPU和正在使用CPU的進程的數(shù)量以外,還包括阻塞在不可中斷休眠狀態(tài)的進程(進程狀態(tài)為D,通常是在等待IO)的數(shù)量。因此當負載變高的時候,并不一定是可運行的進程數(shù)太多,也有可能是IO瓶頸導致不可中斷IO的進程數(shù)過多造成的。
    4. dmesg丨tail
    e1000: eth0 NIC Link is Up 1000 Mbps Full Duplex, Flow Control: None
    ADDRCONF(NETDEV_UP): eth0: link is not ready
    ADDRCONF(NETDEV_CHANGE): eth0: link becomes ready
    e1000: eth1 NIC Link is Up 1000 Mbps Full Duplex, Flow Control: None
    eth0: no IPv6 routers present
    eth1: no IPv6 routers present
    e1000: eth0 NIC Link is Up 1000 Mbps Full Duplex, Flow Control: None
    e1000: eth1 NIC Link is Up 1000 Mbps Full Duplex, Flow Control: None
    eth0: no IPv6 routers present
    eth1: no IPv6 routers present
    
    1. 該命令會輸出系統(tǒng)日志的最后10行。常見的OOM kill和TCP丟包在這里都會有記錄。
    2. vmstat 1
    3. vmstat是一個實時性能檢測工具,可以展現(xiàn)給定時間間隔的服務器的狀態(tài)值,包括服務器的CPU使用率、內存使用、虛擬內存交換情況、IO讀寫情況等系統(tǒng)核心指標。其輸出結果如下:
    4. procs -----------memory---------- ---swap-- -----io---- --system-- -----cpu------ r b swpd free buff cache si so bi bo in cs us sy id wa st 0 0 0 7887984 1320604 6288252 0 0 0 2 0 1 0 0 100 0 0 一般主要關注輸出的CPU使用情況,其中id + us + sy=100,id是空閑CPU使用率,us 是用戶CPU使用率,sy是系統(tǒng)CPU使用率。如果用戶時間和系統(tǒng)時間相加非常大,說明CPU正忙于執(zhí)行指令。而如果IO等待時間很長,那么系統(tǒng)的瓶頸可能在磁盤IO。當然,這里輸出的IO信息、上下文切換信息也很有用。
    5. 在計算CPU利用率的時候,建議多獲取幾次,尤其是在腳本里獲取時,一般只獲取一次是不準確的,建議在腳本里取兩次以上并排除掉第一次的數(shù)據(jù)。而如果是排查最近耗費CPU最多的進程,使用Top的數(shù)據(jù)比較合理。
    6. free -m
    7. 該命令可以查看系統(tǒng)內存的使用情況,-m參數(shù)表示按照兆字節(jié)展示。如果可用內存非常少,系統(tǒng)可能會動用交換區(qū)(swap),會增加IO開銷(可以在iostat命令中體現(xiàn)),降低系統(tǒng)性能。
     total used free shared buffers cached
    Mem: 16051 15879 171 0 672 4763
    -/+ buffers/cache: 10444 5607
    Swap: 8001 0 8000
    
    1. 這里需要注意的是第一行的信息是針對整個系統(tǒng)來說的,因此Buffer和Cache都被計算在了used里面,其實這兩部分內存是可以被很快拿來供應用程序使用的。因此,真正反映內存使用狀況的是第二行。
    2. netstat -tanp
    3. 查看TCP網(wǎng)絡連接狀況。netstat屬于net-tools工具集,已經(jīng)很久不更新,可以使用iproute工具集中的ss、ip替代netstat。
    Active Internet connections (servers and established)
    Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
    tcp 0 0 0.0.0.0:8080 0.0.0.0:* LISTEN 7102/java
    tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN -
    tcp 0 0 10.9.117.63:80 10.10.251.117:46335 SYN_RECV -
    tcp 0 0 0.0.0.0:8081 0.0.0.0:* LISTEN 11225/java
    tcp 0 0 10.9.117.63:8080 10.9.90.198:4238 ESTABLISHED 7102/java
    tcp 0 0 10.9.117.63:51502 10.42.27.223:3306 ESTABLISHED 11225/java
    tcp 0 0 10.9.117.63:80 10.10.251.196:11934 TIME_WAIT -
    tcp 0 0 10.9.117.63:80 10.10.251.196:31371 TIME_WAIT -
    
    1. mpstat -P ALL 1
    2. 屬于sysstat軟件套件。該命令用來顯示每個CPU的使用情況。如果有一個CPU占用率特別高,說明有可能是一個單線程應用程序引起的。
    12:54:59 AM CPU %user %nice %sys %iowait %irq %soft %steal %idle intr/s
    12:55:00 AM all 4.74 0.00 1.37 0.00 0.25 1.25 0.00 92.39 3593.07
    12:55:00 AM 0 2.97 0.00 0.99 0.00 0.00 0.00 0.00 96.04 992.08
    12:55:00 AM 1 0.00 0.00 0.00 0.00 0.00 0.00 0.00 100.00 0.00
    12:55:00 AM 2 1.96 0.00 0.98 0.00 0.00 0.98 0.00 96.08 0.00
    12:55:00 AM 3 2.00 0.00 1.00 0.00 0.00 0.00 0.00 97.00 0.00
    12:55:00 AM 4 2.00 0.00 0.00 0.00 0.00 0.00 0.00 98.00 0.00
    12:55:00 AM 5 2.02 0.00 1.01 0.00 0.00 0.00 0.00 96.97 0.99
    12:55:00 AM 6 4.00 0.00 0.00 0.00 0.00 0.00 0.00 96.00 0.00
    12:55:00 AM 7 23.00 0.00 7.00 0.00 3.00 9.00 0.00 58.00 2599.01
    
    1. sar -n DEV 1
    2. 屬于sysstat軟件套件。sar命令主要用來查看網(wǎng)絡設備的吞吐率。可以通過網(wǎng)絡設備的吞吐量,判斷網(wǎng)絡設備是否已經(jīng)飽和。
    11:48:34 AM IFACE rxpck/s txpck/s rxkB/s txkB/s rxcmp/s txcmp/s rxmcst/s
    11:48:35 AM lo 176.29 176.29 69.45 69.45 0.00 0.00 0.00
    11:48:35 AM eth0 15513.40 15292.78 2677.08 2648.08 0.00 0.00 0.00
    
    1. sar -n TCP,ETCP 1
    2. 查看TCP連接狀態(tài)。active/s,每秒主動發(fā)起的連接數(shù)目(connect);passive/s,每秒被動發(fā)起的連接數(shù)目(accept);retrans/s,每秒重傳的數(shù)量,能夠反映網(wǎng)絡狀況和是否發(fā)生了丟包。
    11:39:54 AM active/s passive/s iseg/s oseg/s
    11:39:55 AM 13.40 454.64 16029.90 16083.51
    11:39:54 AM atmptf/s estres/s retrans/s isegerr/s orsts/s
    11:39:55 AM 6.19 1.03 0.00 0.00 3.09
    
    1. iostat -xz 1
    2. 屬于sysstat軟件套件。查看機器磁盤IO情況。await(ms),IO操作的平均等待時間,是應用程序在和磁盤交互時,需要消耗的時間,包括IO等待和實際操作的耗時;svctm,IO操作的服務時間,此值一般小于await;avgqu-s,向設備發(fā)出的平均請求數(shù)量;%util,設備利用率。
    avg-cpu: %user %nice %system %iowait %steal %idle
     9.01 0.00 3.61 0.01 0.00 87.36
    Device: rrqm/s wrqm/s r/s w/s rsec/s wsec/s avgrq-sz avgqu-sz await svctm %util
    vda 0.02 1.56 0.12 1.12 3.62 21.45 20.21 0.00 2.20 0.80 0.10
    vdb 0.01 37.75 0.57 1.67 82.30 315.68 177.35 0.01 5.88 0.55 0.12
    
    1. 可以從以下幾個方面判斷磁盤性能可能出現(xiàn)問題:
    • 當r/s, w/s, rkB/s, wkB/s等指標過大,可能會引起性能問題。
    • await過大,可能是硬件設備遇到了瓶頸或者出現(xiàn)故障。一次IO操作一般超過20ms就說明磁盤壓力過大。
    • avgqu-sz大于1,可能是硬件設備已經(jīng)飽和。但此值是按照單位時間的平均值,不能反映瞬間的IO洪水。
    • %util越大表示磁盤越繁忙,100%表示已經(jīng)飽和。
    1. 此外,這里面的%iowait在Linux下的計算方式是CPU空閑、并且有仍未完成的IO請求的時間占總時間的比例。因此,%iowait升高并不一定代表IO設備有瓶頸,有可能是CPU沒有可以運行的進程造成的。需要結合await、svctm等其他指標來判斷。如下如所示:

    1. top
    2. top命令包含了系統(tǒng)全局的很多指標信息,包括系統(tǒng)負載情況、系統(tǒng)內存使用情況、系統(tǒng)CPU使用情況等等,基本涵蓋了上述幾條命令的功能。
    top - 01:02:04 up 116 days, 5:50, 1 user, load average: 1.20, 0.46, 0.29
    Tasks: 152 total, 2 running, 150 sleeping, 0 stopped, 0 zombie
    Cpu(s): 2.7%us, 0.5%sy, 0.0%ni, 96.3%id, 0.0%wa, 0.1%hi, 0.4%si, 0.0%st
    Mem: 16436664k total, 16302392k used, 134272k free, 688420k buffers
    Swap: 8193140k total, 132k used, 8193008k free, 4878348k cached
     PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
    27852 root 20 0 180m 36m 548 R 56.5 0.2 0:00.29 python
     4259 root 18 0 2396m 815m 13m S 25.3 5.1 7988:19 java
    14128 root 18 0 4603m 1.9g 15m S 3.9 12.4 572:23.01 java
    14785 root 24 0 5554m 2.1g 25m S 1.9 13.2 36:42.81 java
    27851 root 15 0 12744 1048 748 R 1.9 0.0 0:00.02 top
     1 root 15 0 10356 684 576 S 0.0 0.0 0:06.18 init
     2 root RT -5 0 0 0 S 0.0 0.0 0:08.14 migration/0
     3 root 34 19 0 0 0 S 0.0 0.0 0:00.17 ksoftirqd/0
     4 root RT -5 0 0 0 S 0.0 0.0 0:08.73 migration/1
     5 root 34 19 0 0 0 S 0.0 0.0 0:00.17 ksoftirqd/1
    
    1. 通過此命令,可以相對全面的查看系統(tǒng)負載的來源。同時,top命令支持排序,可以按照不同的列排序,方便查找出諸如內存占用最多的進程、CPU占用率最高的進程等。但top命令是一個瞬時輸出的值,最好是通過定時存儲到文件來進行對比診斷。需要注意的是,對于每一個進程的%CPU這一列,其默認是Irix Mode,此值在多處理器環(huán)境下,為占的所有CPU的使用率之和,最大值為100% * CPU核數(shù)。可以使用I指令切換模式為Solaris Mode,為將所有CPU看做一個整體的單CPU衡量的一個值,最大值為100%,一般情況下其值等于Irix模式下的%CPU/CPU核數(shù)。
    2. 還需要注意的是,使用ps命令也能夠拿到某個進程的CPU使用率,但是其是從進程創(chuàng)建開始就計算,為該進程處于Running狀態(tài)的時間占進程總時間的百分比,可以看做平均CPU使用率。而top的%CPU是不斷刷新計算的(數(shù)據(jù)來源于/proc/[pid]/stat),可以認為是實時的。

    四、 JDK常用診斷工具

    在對Java程序進行問題排查、性能調優(yōu)時,如果沒有合適的工具,很多時候會事倍功半,甚至無法繼續(xù)進行下去。JDK自身已經(jīng)提供了很多強大的工具供我們使用。

    筆者的開發(fā)環(huán)境是:OS X EI Captian 10.11.6

    JDK版本:

    java version "1.8.0_92"
    Java(TM) SE Runtime Environment (build 1.8.0_92b14)
    Java HotSpot(TM) 64Bit Server VM (build 25.92b14, mixed mode)
    

    JAVA_HOME/bin下的工具截圖如下:

    和性能分析相關的工具如下表所示:

    javap

    Java反編譯工具,主要用于根據(jù)Java字節(jié)碼文件反匯編為Java源代碼文件。

    jcmd

    Java 命令行(Java Command),用于向正在運行的JVM發(fā)送診斷命令請求。

    jconsole

    圖形化用戶界面的監(jiān)測工具,主要用于監(jiān)測并顯示運行于Java平臺上的應用程序的性能和資源占用等信息。jdeps用于分析Java class的依賴關系。

    jdb

    Java調試工具(Java Debugger),主要用于對Java應用進行斷點調試。

    jhat

    Java堆分析工具(Java Heap Analysis Tool),用于分析Java堆內存中的對象信息。

    jinfo

    Java配置信息工具(Java Configuration Information),用于打印指定Java進程、核心文件或遠程調試服務器的配置信息。

    jmap

    Java內存映射工具(Java Memory Map),主要用于打印指定Java進程、核心文件或遠程調試服務器的共享對象內存映射或堆內存細節(jié)。

    jmc

    Java任務控制工具(Java Mission Control),主要用于HotSpot JVM的生產(chǎn)時間監(jiān)測、分析、診斷。開發(fā)者可以使用jmc命令來創(chuàng)建JMC工具。

    jps

    JVM進程狀態(tài)工具(JVM Process Status Tool),用于顯示目標系統(tǒng)上的HotSpot JVM的Java進程信息。

    jrunscript

    Java命令行腳本外殼工具(command line script shell),主要用于解釋執(zhí)行javascript、groovy、ruby等腳本語言。

    jstack

    Java堆棧跟蹤工具,主要用于打印指定Java進程、核心文件或遠程調試服務器的Java線程的堆棧跟蹤信息。

    jstat

    JVM統(tǒng)計監(jiān)測工具(JVM Statistics Monitoring Tool),主要用于監(jiān)測并顯示JVM的性能統(tǒng)計信息,包括gc統(tǒng)計信息。

    jstatd

    jstatd(VM jstatd Daemon)工具是一個RMI服務器應用,用于監(jiān)測HotSpot JVM的創(chuàng)建和終止,并提供一個接口,允許遠程監(jiān)測工具附加到運行于本地主機的JVM上。

    jvisualvm

    JVM監(jiān)測、故障排除、分析工具,主要以圖形化界面的方式提供運行于指定虛擬機的Java應用程序的詳細信息。

網(wǎng)站首頁   |    關于我們   |    公司新聞   |    產(chǎn)品方案   |    用戶案例   |    售后服務   |    合作伙伴   |    人才招聘   |   

友情鏈接: 餐飲加盟

地址:北京市海淀區(qū)    電話:010-     郵箱:@126.com

備案號:冀ICP備2024067069號-3 北京科技有限公司版權所有