1. 查看是否配置JAVA_HOME
1. windows
計算機->屬性->高級系統設置->環境變量->系統變量
1. 變量名:JAVA_HOME
變量值:jdk路徑
2. 變量名:PATH
變量值:%JAVA_HOME%/bin;XXXX其他環境變量路徑
2. linux
vi ~/.bash_profile
export JAVA_HOME=/usr/java/jdk1.8.0_121
export CLASSPATH=.:$JAVA_HOME/jre/lib/rt.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
PATH=$JAVA_HOME/bin:$PATH
source ~/.bash_profile
2. 檢查tomcat是否配置JVM內存
1. windows: tomcat/bin/catalina.bat 在第109行添加
set "JAVA_OPTS=-server -Xms2048m -Xmx2048m -Xss1024K -XX:+UseConcMarkSweepGC -XX:+PrintGCTimeStamps -XX:+PrintGCDetails -Xloggc:gc.log"
2. Linux: tomcat/bin/catalina.sh在第99行cygwin=false之前添加
JAVA_OPTS="-server -Xms2048m -Xmx2048m -Xss1024K -XX:+UseConcMarkSweepGC -XX:+PrintGCTimeStamps -XX:+PrintGCDetails -Xloggc:gc.log"
3. 檢查tomcat併發連接數
修改tomcat/conf/server.xml>server>connnector>threads=2000
3. 查看日誌級別
log4j.properties:info
logback.xml:info
4. 查看CPU使用率
1. windows
任務管理器->性能->cpu使用記錄
2. linux
其中cpu:ur表示用戶cpu% cpu:sy表示系統cpu% cpu:id表示空閒cpu%
[hadoop@slave1 ~]$ vmstat 1
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 43052 1723428 142032 642716 0 0 64 138 8 42 1 0 98 0 0
0 0 43052 1723296 142032 642716 0 0 0 16 236 444 0 0 100 0 0
0 0 43052 1723288 142032 642716 0 0 0 0 154 326 0 0 100 0 0
1 0 43052 1723288 142032 642716 0 0 0 0 148 326 0 0 100 0 0
0 0 43052 1723288 142032 642716 0 0 0 0 171 383 0 0 100 0 0
0 0 43052 1723288 142032 642716 0 0 0 0 184 381 0 0 100 0 0
5. 查看cpu就緒隊列長度
1. windows
typeperf -si 5 "\System\Processor Queue Length"
2. linux
其中r表示就緒隊列長度
[hadoop@slave1 ~]$ vmstat 1
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 43052 1723428 142032 642716 0 0 64 138 8 42 1 0 98 0 0
0 0 43052 1723296 142032 642716 0 0 0 16 236 444 0 0 100 0 0
0 0 43052 1723288 142032 642716 0 0 0 0 154 326 0 0 100 0 0
1 0 43052 1723288 142032 642716 0 0 0 0 148 326 0 0 100 0 0
0 0 43052 1723288 142032 642716 0 0 0 0 171 383 0 0 100 0 0
0 0 43052 1723288 142032 642716 0 0 0 0 184 381 0 0 100 0 0
6. 查看內存使用率
1. windows
任務管理器->性能->物理內存MB->總數|可用|空閒
保證物理內存使用率<75%
2. linux
查看物理內存
free -m
[hadoop@slave1 ~]$ free -m
total used free shared buffers cached
Mem: 3651 1968 1682 0 138 627
-/+ buffers/cache: 1201 2449
Swap: 4095 42 4053
[hadoop@slave1 ~]$
查看利用率:memory:free表示可用物理內存,swap:si 表示頁換入 swap:so:表示頁換出
保證swap:si=0 swap:so=0 memory:free有足夠剩餘
[hadoop@slave1 ~]$ vmstat 1
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 43052 1723428 142032 642716 0 0 64 138 8 42 1 0 98 0 0
0 0 43052 1723296 142032 642716 0 0 0 16 236 444 0 0 100 0 0
0 0 43052 1723288 142032 642716 0 0 0 0 154 326 0 0 100 0 0
1 0 43052 1723288 142032 642716 0 0 0 0 148 326 0 0 100 0 0
0 0 43052 1723288 142032 642716 0 0 0 0 171 383 0 0 100 0 0
0 0 43052 1723288 142032 642716 0 0 0 0 184 381 0 0 100 0 0
7. 查看磁盤
1. windows
任務管理器->性能->資源監視器->磁盤
保證磁盤使用率<90%
2. linux
%util:表示磁盤使用率 avgqu-sz:表示磁盤隊列長度
對於數據庫服務器,可以考慮對磁盤電梯算法使用deadline
[hadoop@slave1 ~]$ iostat -kx 1
Linux 2.6.32-431.el6.x86_64 (slave1) 09/21/2017 _x86_64_ (4 CPU)
avg-cpu: %user %nice %system %iowait %steal %idle
1.03 0.00 0.26 0.35 0.00 98.36
Device: rrqm/s wrqm/s r/s w/s rkB/s wkB/s avgrq-sz avgqu-sz await svctm %util
sda 0.12 135.79 0.92 1.74 256.06 550.19 605.56 0.64 241.24 5.61 1.49
avg-cpu: %user %nice %system %iowait %steal %idle
0.50 0.00 0.25 0.00 0.00 99.25
Device: rrqm/s wrqm/s r/s w/s rkB/s wkB/s avgrq-sz avgqu-sz await svctm %util
sda 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
8. 查看網絡
1. windows
任務管理器->性能->資源監視器->網絡
確定帶寬是否佔滿,是否可以將百兆網口換爲千兆網口
2. linux
rxkb/s:表示每秒接收KB txkb/s:表示每秒發送KB
[hadoop@slave1 ~]$ sar -n DEV 1
Linux 2.6.32-431.el6.x86_64 (slave1) 09/21/2017 _x86_64_ (4 CPU)
11:20:18 AM IFACE rxpck/s txpck/s rxkB/s txkB/s rxcmp/s txcmp/s rxmcst/s
11:20:19 AM lo 0.00 0.00 0.00 0.00 0.00 0.00 0.00
11:20:19 AM eth0 9.90 6.93 0.99 0.85 0.00 0.00 0.00
11:20:19 AM pan0 0.00 0.00 0.00 0.00 0.00 0.00 0.00
9. 查看SQL
hibernate:打印sql
spring:
<prop key="hibernate.show_sql">false</prop>
<prop key="hibernate.format_sql">true</prop>
<prop key="hibernate.use_sql_comments">true</prop>
log4j:
### direct log messages to stdout ###
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.Target=System.out
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d{ABSOLUTE} %5p %c{1}:%L - %m%n
log4j.logger.org.hibernate=debug
log4j.logger.org.hibernate.hql.ast.AST=debug
log4j.logger.org.hibernate.SQL=trace
log4j.logger.org.hibernate.type=trace
#above two configs
log4j.logger.org.hibernate.tool.hbm2ddl=debug
log4j.logger.org.hibernate.hql=debug
log4j.logger.org.hibernate.cache=debug
log4j.logger.org.hibernate.transaction=debug
log4j.logger.org.hibernate.jdbc=debug
log4j.logger.org.hibernate.connection.DriverManagerConnectionProvider=trace
log4j.rootLogger=INFO, stdout
log4j.logger.org.hibernate.type.descriptor.sql.BasicBinder=TRACE
logback:
<logger name="org.hibernate.type.descriptor.sql.BasicBinder" level="TRACE"/>
<logger name="org.hibernate.type.descriptor.sql.BasicExtractor" level="TRACE"/>
<logger name="org.hibernate.SQL" level="DEBUG"/>
<logger name="org.hibernate.engine.QueryParameters" level="DEBUG"/>
<logger name="org.hibernate.engine.query.HQLQueryPlan" level="DEBUG"/>
10. 數據庫
1. mysql
檢查innodb內存與慢查詢日誌
[mysqld]
skip-name-resolve
default_storage_engine=InnoDB
#innodb
innodb_buffer_pool_size=7G
innodb_log_file_size=2G
innodb_file_per_table=1
innodb_flush_method=O_DIRECT
#慢查詢 2秒
long_query_time = 2
log-slow-queries = /usr/local/mysql/mysql-slow.log
2. oracle
使用awr
cd $ORACLE_HOME
sqlplus / as sysdba
SQL> @?/rdbms/admin/awrrpt.sql
格式:html
選擇起始與結束快照號即可
查看最耗時的top5 sql語句進行優化
3. SQL優化
4. 查看執行計劃
5. 建立合適索引