Ugschool性能测试调优笔记.docx
- 文档编号:18555080
- 上传时间:2023-08-19
- 格式:DOCX
- 页数:15
- 大小:23.08KB
Ugschool性能测试调优笔记.docx
《Ugschool性能测试调优笔记.docx》由会员分享,可在线阅读,更多相关《Ugschool性能测试调优笔记.docx(15页珍藏版)》请在冰点文库上搜索。
Ugschool性能测试调优笔记
Ugschool性能测试调优笔记
(一):
代码部分调优:
优化信息发送模块,去除gc模块。
(二):
应用服务器调优
1:
调整jvm使用的内存参数
如果是在linux系统,打开bin/run.conf
找到JAVA_OPTS='-Xms256m-Xmx512m',其中-Xms256m表示jvm初始化堆的大小,-Xmx512m表示jvm堆的最大值。
一般jvm堆的最大值设置成可用内存的70%,在本系统的性能测试中,-Xmx1024m
如果是在windows系统,打开bin/run.bat,找到setJAVA_OPTS=%JAVA_OPTS%-Xms128m-Xmx1024m-XX:
MaxPermSize=256m,其中–Xms是jvm初始化堆的大小,-Xmx是jvm堆的最大值
1:
jboss调优
打开D:
\jboss50\server\default\deploy\jbossweb.sar\server.xml,找到
--AHTTP/1.1Connectoronport8080-->
redirectPort="8443"acceptCount="100"/> 改成 --AHTTP/1.1Connectoronport8080--> connectionTimeout="20000"redirectPort="8443"maxThreads="2500"maxProcessors="1000"minProcessors="5"acceptCount="100"/> 其中8888是jboss的web服务所使用的端口号,maxThreads是jboss 打开D: \jboss50\server\default\conf\jboss-service.xml --AThreadpoolservice--> name="jboss.system: service=ThreadPool"> --HowlongathreadwilllivewithoutanytasksinMS--> --Themaxnumberofthreadsinthepool--> --Themaxnumberoftasksbeforethequeueisfull--> 改成 --AThreadpoolservice--> name="jboss.system: service=ThreadPool"> --HowlongathreadwilllivewithoutanytasksinMS--> --Themaxnumberofthreadsinthepool--> --Themaxnumberoftasksbeforethequeueisfull--> (三): 数据库调优 1: mysql调优 Mysql的一些属性说明 1.back_log 指定MySQL可能的连接数量。 当MySQL主线程在很短的时间内得到非常多的连接请求,该参数就起作用,之后主线程花些时间(尽管很短)检查连接并且启动一个新线程。 back_log参数的值指出在MySQL暂时停止响应新请求之前的短时间内多少个请求可以被存在堆栈中。 如果系统在一个短时间内有很多连接,则需要增大该参数的值,该参数值指定到来的TCP/IP连接的侦听队列的大小。 不同的操作系统在这个队列大小上有它自己的限制。 试图设定back_log高于你的操作系统的限制将是无效的。 当观察MySQL进程列表,发现大量264084|unauthenticateduser|xxx.xxx.xxx.xxx|NULL|Connect|NULL|login|NULL的待连接进程时,就要加大back_log的值。 back_log默认值为50。 2.basedir MySQL主程序所在路径,即: --basedir参数的值。 3.bdb_cache_size 分配给BDB类型数据表的缓存索引和行排列的缓冲区大小,如果不使用DBD类型数据表,则应该在启动MySQL时加载--skip-bdb参数以避免内存浪费。 4.bdb_log_buffer_size 分配给BDB类型数据表的缓存索引和行排列的缓冲区大小,如果不使用DBD类型数据表,则应该将该参数值设置为0,或者在启动MySQL时加载--skip-bdb参数以避免内存浪费。 5.bdb_home 参见--bdb-home选项。 6.bdb_max_lock 指定最大的锁表进程数量(默认为10000),如果使用BDB类型数据表,则可以使用该参数。 如果在执行大型事物处理或者查询时发现bdb: LocktableisoutofavailablelocksorGoterror12from...错误,则应该加大该参数值。 7.bdb_logdir 指定使用BDB类型数据表提供服务时的日志存放位置。 即为--bdb-logdir的值。 8.bdb_shared_data 如果使用--bdb-shared-data选项则该参数值为On。 9.bdb_tmpdir BDB类型数据表的临时文件目录。 即为--bdb-tmpdir的值。 10.binlog_cache_size 为binarylog指定在查询请求处理过程中SQL查询语句使用的缓存大小。 如果频繁应用于大量、复杂的SQL表达式处理,则应该加大该参数值以获得性能提升。 11.bulk_insert_buffer_size 指定MyISAM类型数据表表使用特殊的树形结构的缓存。 使用整块方式(bulk)能够加快插入操作(INSERT...SELECT,INSERT...VALUES(...),(...),...,和LOADDATAINFILE)的速度和效率。 该参数限制每个线程使用的树形结构缓存大小,如果设置为0则禁用该加速缓存功能。 注意: 该参数对应的缓存操作只能用户向非空数据表中执行插入操作! 默认值为8MB。 12.character_set MySQL的默认字符集。 13.character_sets MySQL所能提供支持的字符集。 14.concurrent_inserts 如果开启该参数,MySQL则允许在执行SELECT操作的同时进行INSERT操作。 如果要关闭该参数,可以在启动mysqld时加载--safe选项,或者使用--skip-new选项。 默认为On。 15.connect_timeout 指定MySQL服务等待应答一个连接报文的最大秒数,超出该时间,MySQL向客户端返回badhandshake。 16.datadir 指定数据库路径。 即为--datadir选项的值。 17.delay_key_write 该参数只对MyISAM类型数据表有效。 有如下的取值种类: off: 如果在建表语句中使用CREATETABLE...DELAYED_KEY_WRITES,则全部忽略 DELAYED_KEY_WRITES; on: 如果在建表语句中使用CREATETABLE...DELAYED_KEY_WRITES,则使用该选项(默认); all: 所有打开的数据表都将按照DELAYED_KEY_WRITES处理。 如果DELAYED_KEY_WRITES开启,对于已经打开的数据表而言,在每次索引更新时都不刷新带有 DELAYED_KEY_WRITES选项的数据表的keybuffer,除非该数据表关闭。 该参数会大幅提升写入键值的速 度。 如果使用该参数,则应该检查所有数据表: myisamchk--fast--force。 18.delayed_insert_limit 在插入delayed_insert_limit行后,INSERTDELAYED处理模块将检查是否有未执行的SELECT语句。 如果有,在继续处理前执行允许这些语句。 19.delayed_insert_timeout 一个INSERTDELAYED线程应该在终止之前等待INSERT语句的时间。 20.delayed_queue_size 为处理INSERTDELAYED分配的队列大小(以行为单位)。 如果排队满了,任何进行INSERTDELAYED的客户必须等待队列空间释放后才能继续。 21.flush 在启动MySQL时加载--flush参数打开该功能。 22.flush_time 如果该设置为非0值,那么每flush_time秒,所有打开的表将被关,以释放资源和sync到磁盘。 注意: 只建议在使用Windows9x/Me或者当前操作系统资源严重不足时才使用该参数! 23.ft_boolean_syntax 搜索引擎维护员希望更改允许用于逻辑全文搜索的操作符。 这些则由变量ft_boolean_syntax控制。 24.ft_min_word_len 指定被索引的关键词的最小长度。 注意: 在更改该参数值后,索引必须重建! 25.ft_max_word_len 指定被索引的关键词的最大长度。 注意: 在更改该参数值后,索引必须重建! 26.ft_max_word_len_for_sort 指定在使用REPAIR,CREATEINDEX,orALTERTABLE等方法进行快速全文索引重建过程中所能使用的关键词的最大长度。 超出该长度限制的关键词将使用低速方式进行插入。 加大该参数的值,MySQL将会建立更大的临时文件(这会减轻CPU负载,但效率将取决于磁盘I/O效率),并且在一个排序取内存放更少的键值。 27.ft_stopword_file 从ft_stopword_file变量指定的文件中读取列表。 在修改了stopword列表后,必须重建FULLTEXT索引。 28.have_innodb YES: MySQL支持InnoDB类型数据表;DISABLE: 使用--skip-innodb关闭对InnoDB类型数据表的支持。 29.have_bdb YES: MySQL支持伯克利类型数据表;DISABLE: 使用--skip-bdb关闭对伯克利类型数据表的支持。 30.have_raid YES: 使MySQL支持RAID功能。 31.have_openssl YES: 使MySQL支持SSL加密协议。 32.init_file 指定一个包含SQL查询语句的文件,该文件在MySQL启动时将被加载,文件中的SQL语句也会被执行。 33.interactive_timeout 服务器在关上它前在一个交互连接上等待行动的秒数。 一个交互的客户被定义为对mysql_real_connect()使用CLIENT_INTERACTIVE选项的客户。 也可见wait_timeout。 34.join_buffer_size 用于全部联合(join)的缓冲区大小(不是用索引的联结)。 缓冲区对2个表间的每个全部联结分配一次缓冲区,当增加索引不可能时,增加该值可得到一个更快的全部联结。 (通常得到快速联结的最佳方法是增加索引。 ) 35.key_buffer_size 用于索引块的缓冲区大小,增加它可得到更好处理的索引(对所有读和多重写),到你能负担得起那样多。 如果你使它太大,系统将开始变慢慢。 必须为OS文件系统缓存留下一些空间。 为了在写入多个行时得到更多的速度。 36.language 用户输出报错信息的语言。 37.large_file_support 开启大文件支持。 38.locked_in_memory 使用--memlock将mysqld锁定在内存中。 39.log 记录所有查询操作。 40.log_update 开启updatelog。 41.log_bin 开启binarylog。 42.log_slave_updates 如果使用链状同步或者多台Slave之间进行同步则需要开启此参数。 43.long_query_time 如果一个查询所用时间超过该参数值,则该查询操作将被记录在Slow_queries中。 44.lower_case_table_names 1: MySQL总使用小写字母进行SQL操作; 0: 关闭该功能。 注意: 如果使用该参数,则应该在启用前将所有数据表转换为小写字母。 45.max_allowed_packet 一个查询语句包的最大尺寸。 消息缓冲区被初始化为net_buffer_length字节,但是可在需要时增加到max_allowed_packet个字节。 该值太小则会在处理大包时产生错误。 如果使用大的BLOB列,必须增加该值。 46.net_buffer_length 通信缓冲区在查询期间被重置到该大小。 通常不要改变该参数值,但是如果内存不足,可以将它设置为查询期望的大小。 (即,客户发出的SQL语句期望的长度。 如果语句超过这个长度,缓冲区自动地被扩大,直到max_allowed_packet个字节。 ) 47.max_binlog_cache_size 指定binarylog缓存的最大容量,如果设置的过小,则在执行复杂查询语句时MySQL会出错。 48.max_binlog_size 指定binarylog文件的最大容量,默认为1GB。 49.max_connections 允许同时连接MySQL服务器的客户数量。 如果超出该值,MySQL会返回Toomanyconnections错误,但通常情况下,MySQL能够自行解决。 50.max_connect_errors 对于同一主机,如果有超出该参数值个数的中断错误连接,则该主机将被禁止连接。 如需对该主机进行解禁,执行: FLUSHHOST;。 51.max_delayed_threads 不要启动多于的这个数字的线程来处理INSERTDELAYED语句。 如果你试图在所有INSERTDELAYED线程在用后向一张新表插入数据,行将被插入,就像DELAYED属性没被指定那样。 52.max_heap_table_size 内存表所能使用的最大容量。 53.max_join_size 如果要查询多于max_join_size个记录的联合将返回一个错误。 如果要执行没有一个WHERE的语句并且耗费大量时间,且返回上百万行的联结,则需要加大该参数值。 54.max_sort_length 在排序BLOB或TEXT值时使用的字节数(每个值仅头max_sort_length个字节被使用;其余的被忽略)。 55.max_user_connections 指定来自同一用户的最多连接数。 设置为0则代表不限制。 56.max_tmp_tables (该参数目前还没有作用)。 一个客户能同时保持打开的临时表的最大数量。 57.max_write_lock_count 当出现max_write_lock_count个写入锁定数量后,开始允许一些被锁定的读操作开始执行。 避免写入锁定过多,读取操作处于长时间等待状态。 58.myisam_recover_options 即为--myisam-recover选项的值。 59: auto_increment_increment: 自增长的起始值 60: auto_increment_offset: 自增长的步长 61: autocommit: 自动提交 62: automatic_sp_privileges: 自动运行存储过程的权限 63: big_tables: 是否将临时表存储在硬盘上 64: bulk_insert_buffer_size: 指定MyIsAm类型的数据表所使用的特殊形式的缓存 65: concurrent_insert: 如果等于1;表示允许在select时执行Insert 66: connetc_timeout: 指定mysql应答一个连接报文的时间上限 67: error_count: select 68: innodb_additional_mem_pool_size参数这个参数用来设置InnoDB存储的数据目录信息和其它内部数据结构的内存池大小。 应用程序里的表越多,你需要在这里分配越多的内存。 对于一个相对稳定的应用,这个参数的大小也是相对稳定的,也没有必要预留非常大的值。 如果InnoDB用光了这个池内的内存,InnoDB开始从操作系统分配内存,并且往MySQL错误日志写警告信息。 默认值是1MB,当发现错误日志中已经有相关的警告信息时,就应该适当的增加该参数的大小。 69: innodb_autoextend_increment 当自动扩展表空间被填满之时,每次扩展空间的大小,默认值是8(单位MB)。 该参数可以动态修改: 70: innodb_buffer_pool_size 内存缓冲池大小,用于缓存表和索引数据等。 类似于Oracle的buffercache,如果可能,尽可能的设置大一点。 71: innodb_checksums InnoDB在所有对磁盘的页面读取上使用校验和验证以确保额外容错防止硬件损坏或数据文件。 尽管如此,在一些少见的情况下(比如运行标准检查之时)这个额外的安全特征是不必要的。 在这些情况下,这个选项(默认是允许的)可以用--skip-innodb-checksums来关闭。 72: 5.innodb_file_io_threads 此参数指定InnoDB表可用的文件I/O线程数,MySQL开发人员建议在非Windows平台中这个参数设置为4 73: innodb_table_locks InnoDB重视LOCKTABLES,直到所有其它线程已经释放他们所有对表的锁定,MySQL才从LOCKTABLE..WRITE返回。 默认值是1,这意为LOCKTABLES让InnoDB内部锁定一个表。 在使用AUTOCOMMIT=1的应用里,InnoDB的内部表锁定会导致死锁。 你可以在f文件(Windows上是my.ini文件)里设置innodb_table_locks=0来消除这个问题。 74: read_buffer_size 每个线程连续扫描时为扫描的每个表分配的缓冲区的大小(字节)。 如果进行多次连续扫描,可能需要增加该值,默认值为131072。 75: query_alloc_block_size 为查询分析和执行过程中创建的对象分配的内存大小。 如果内存分段中遇到问题,该变量增加一位会有所帮助 76: query_cache_limit 不要缓存大于该值的结果 77: query_cache_min_res_unit 查询缓存分配的块的大小 78: query_cache_size 为缓存查询结果分配的内存数量,默认值是0,既禁用查询缓存。 79: query_cache_type 查询缓存的类型 80: query_cache_wlock_invalidate 一般情况,当客户端对MyISAM表进行WRITE锁定时,如果查询结果位于查询缓存中,则其它客户端未被锁定,可以对该表进行查询。 将该变量设置为1,则可以对表进行WRITE锁定,使查询缓存内所有对该表进行的查询变得非法。 这样当锁定生效时,可以强制其它试图访问表的客户端来等待。 81 query_prealloc_size 用于查询分析和执行的固定缓冲区的大小。 在查询之间该缓冲区不释放。 如果你执行复杂查询,分配更大的query_prealloc_size值可以帮助提高性能,因为它可以降低查询过程中服务器分配内存的需求。 82 net_buffer_length TCP/IP和套接字通信缓冲区大小。 (默认值是16KB)。 83: net_read_timeout中断钱等待其它数据连接的秒数 84: net_retry_count: 如果某个端口的读操作中断了,在放弃之前会重复执行多次 85: net_write_timeout: 中断写之前等待块写入连接的秒数 86: optimizer_search_depth告诉优化程序"将来"的每次顺序调查不完全的方法是否需要扩充的更远的深度。 查询优化器进行搜索的最大深度。 如果值为零,系统将自动选择一个合理值 87: preload_buffer_size: 重载索引时分配的缓冲区大小 88: thread_cache_size 服务器应缓存多少线程以便重新使用。 当客户端断开连接时,如果线程少于thread_cache_size,则客户端的线程被放入缓存。 当请求线程时如果允许可以从缓存中重新利用线程,并且只有当缓存空了时才会创建新线程。 如果新连接很多,可以增加该变量以提高性能。 (一般情况,如果线程执行得很好,性能提高不明显)。 检查Connections和Threads_created状态变量的差(详见5.3.4节,“服务器状态变量”),你可以看见线程缓存的效率 89: thread_stack 每个线程的堆栈大
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Ugschool 性能 测试 笔记