??CPU ??????????????system mode?????????????????????ó??????μ????????
??????I/O ????????????CPU ??????????????????
????ps:????JAVA????CPU??????????jprofiler??????
????????????
????1.????????(free)
????used:???????
????free:?????ж????
????Shared:????????????????
????Buffers/cached:?????????С??
????2.?????????swap????(po??pi??so??si)??????IO(vmstat)
????si: ?????????д???????С
????so: ???д????????????С
????page in :???(Page)???????????????????????Page-In
????page out : ???(Page)д??????????????Page-Out
????????????????????????????????IO?????????bi??bo
????Bo ???????????浽????????豸?????
????Bi ?????????????????豸?????????
????3.page fault(pidstat -r??sar -B )
????minflt/s: ?????????????(minor page faults)???????????????????????????????????????????page fault????
????majflt/s: ??????????????(major page faults)??????????????????????????????????page??swap?У???????page fault?major page fault????????????y????????
????????sar -B??fault/s????????minflt??majflt????
?????????
???????????????????????????????????
????1.?????г??????????????ú?????????????memory caches(???:?????????)??disk caches????(???:??????????).
????2.??????????棬????????飬????ζ????????????Ч??.??????????д??swap device??disk.
????3.???????????棬swap device???????У?????ζ?????????????????????.
????zee??
?????????????????(buff)????????(Cache)????????治?????????????е????????(free)???????????????????е??????????????????????檔
??????????????????(swpd)?????????????????????????潻??(si??so)??????????????????????????????????????????????潻?????????????
??????????????????????????????????????????????????????е??????????????????????????????
????ps:????java?????????????????heap dump?????mat????
?????????????
????iostat??IO???????? %util ??? ???????????I/O???????I/O????????????????????????????
??????????????iowait??????iowait ?????ζ??????????????????в??????svctm?????Ρ?
???????swap ??????????????virtual memory?????????I/O ?????.
????ps:??????????????pidstat -d ??λ????
????2.??????CPU????楨????????
??????Щ?????????????????????????????
????1.??????????????????????????е?????????????????CPU???????д??????????????????
????2.????治????????????????(page)??????swap?????????????????IO??po??so?????????棬pi??si?????????????á???????????????????cpu??? (?????ù???)
????3.??????IO????????????????swap??????????????virtual memory?????????I/O ?????????????????????iowait ?????????CPU????????????????????IO?????CPU Bound???????????????(????IO????)
????3.??????paging in / paging out ?
??????Linux???????У?????????“???Paging”??“????Swapping”??????????????????????????????н???????????滻??????????????汣????????й???????á????????????????????????????????棬????????????????
???????(Page)д??????????????Page-Out?????(Page)???????????????????????Page-In?????????????????????????????????????????(????????Page-Out??)?????????????????(Page Fault)??
?????????????????????????????????Page-Out????????????????檔????Page-Out????????????????????Page-out????????????????????????????????????г????????????Ч???????????????????????з????????????????????????????thrashing(???)??
???????????vmstat -s ?? paged in/out ????
????4.??μ?????????????(???????????????????)
????(????????????????????????????????????)
????CPU????top(??????)?? uptime(???ж?????)?? vmstat(???????л???)?? jprofile(???????cpu??????)
?????????:top?? free(??????)?? vmstat(page??swap????)?? pidstat -r??sar -B(page fault)?? jmap -heap(??dump)?? mat??jprofiler(??????)
???????????iostat(%util)?? top(iowait%)?? pidstat -d
???????????netstat(??????)?? nethogs(????)?? wireshark??tcpdump(???)
????JVM????jstat(gc)?? jmap(??dump)?? jstack(???dump)?? jprofiler??visualvm(????????)
????nmon(???????????????)
????5.????????????????????(???????????????????)
????????
????6.?????????????л?(context switch)?(???????????????????)
???????CPU(????CPU?????????)????????????????????Linux???????????????????????????????????????????????????????IO??????????????????????Linux???л???е????????л????洢?????????????????????е?????????????????????????л???????java???????????????????IO??????????IO????????????????sleep???????????????????????????????????????????л??????????л??????????????ù????CPU??????????????????????