网页访问缓慢的问题

本文提供了一套全面的系统调优方案,涵盖了JAVA_HOME配置、JVM内存调整、Tomcat并发连接数优化、日志级别设置、CPU及内存使用率监控、磁盘与网络性能检查、SQL查询优化以及数据库参数调整等关键环节。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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. 建立合适索引
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值