文档章节

MyCat性能优化

Mr-Bird-Lee
 Mr-Bird-Lee
发布于 2017/09/04 17:27
字数 3388
阅读 48
收藏 1
点赞 0
评论 0

    由于公司业务的快速发展导致数据库的数据量飞速增长,我们底层数据的存储,逐渐成为制约整个产品性能的核心部分。于是我们调研了各大数据库分库产品,如:hibernate5+对多租户的支持,当当ShardingJdbc,mysqlProxy,mycat等。最终考虑到国内目前各个产品的活跃度和成熟度,以及对现有业务的适配情况,最终选择了mycat作为分库分表的中间件产品。经过了几轮性能测试,发现mycat表现基本良好,性能损失率约为30%,在可接受的范围内。于是考虑在不分库分表的情况下,将mycat作为数据库代理,先在线上做个简单测试,没想到简单业务的服务没问题,但是核心服务在连接mycat时会出现请求响应缓慢的问题,一个通过主键查对象的SQL响应时间居然超过1秒钟。于是,赶紧下线mycat,重新连接mysql后,性能稳定下来。这没分库就表现这么差,分库了还了得。。。心有不甘,于是笔者踏上了mycat性能调优的汤坑之路。。

 一、日志对mycat性能的影响

1.log4j.xml配置成debug级别,mycat jvm参数:Xmx4G Xms4G XX:MaxDirectMemorySize=4G

a.GC情况:

S0      S1     E        O      P  YGC  YGCT FGC FGCT GCT 
88.69 0.00 77.57 5.05 � 2216 8.390 1      0.067 8.457
77.93 0.00 11.34 5.06 � 2218 8.399 1      0.067 8.466
0.00 76.96 46.41 5.06 � 2219 8.403 1      0.067 8.470
74.38 0.00 83.05 5.06 � 2220 8.408 1      0.067 8.475
60.70 0.00 18.26 5.07 � 2222 8.417 1      0.067 8.484
0.00 65.79 52.49 5.07 � 2223 8.421 1      0.067 8.488
73.44 0.00 87.12 5.07 � 2224 8.426 1      0.067 8.492
70.79 0.00 21.50 5.08 � 2226 8.435 1      0.067 8.501

每秒1~2次非常频繁

b.JVM CPU监控:

log4j占用CPU时间最长。

c.JVM MEM监控:

内存占用最多的是字符类型

d.2000个简单查询耗时统计

 

total costs(ms)

total costs(ms)

total costs(ms)

avg total costs(ms)

costs(ms)

costs(ms)

costs(ms)

avg costs(ms)

mysql 22935 24316 25853 24368 11 12 12 11.6
mycat 173680 171557 170718 171985 86 85 85 85.3

mysql耗时统计图:

mycat耗时统计图:

根据数据分析可得:mycat比mysql慢6.07倍

 

2.log4j.xml配置成error级别,mycat jvm参数:Xmx4G Xms4G XX:MaxDirectMemorySize=4G

a.GC情况:

S0      S1     E        O      P  YGC  YGCT FGC FGCT GCT 

84.81 0.00 70.54 1.24 � 94 2.451 1 0.064 2.515
84.81 0.00 80.04 1.24 � 94 2.451 1 0.064 2.515
84.81 0.00 85.36 1.24 � 94 2.451 1 0.064 2.515
84.81 0.00 87.42 1.24 � 94 2.451 1 0.064 2.515
84.81 0.00 89.46 1.24 � 94 2.451 1 0.064 2.515
84.81 0.00 91.69 1.24 � 94 2.451 1 0.064 2.515
84.81 0.00 93.53 1.24 � 94 2.451 1 0.064 2.515
84.81 0.00 96.10 1.24 � 94 2.451 1 0.064 2.515
84.81 0.00 97.97 1.24 � 94 2.451 1 0.064 2.515
84.81 0.00 98.69 1.24 � 94 2.451 1 0.064 2.515
0.00 92.86 13.14 1.25 � 95 2.472 1 0.064 2.536
0.00 92.86 49.48 1.25 � 95 2.472 1 0.064 2.536
0.00 92.86 68.61 1.25 � 95 2.472 1 0.064 2.536

每秒0.08次,看来日志输出是造成mycat GC频繁的元凶

b.JVM CPU监控:

log4j占用CPU的时间已经找不到了,最长的是mycat处理查询结果的线程。

c.JVM MEM监控:

调整日志级别后,int[] 对象占用的内存大大减少了

d.2000个简单查询耗时统计

 

total costs(ms)

total costs(ms)

total costs(ms)

avg total costs(ms)

costs(ms)

costs(ms)

costs(ms)

avg costs(ms)

mysql 37680 36239 36705 36874 18 18 18 18
mycat 40554 39345 40623 40174 20 19 20 19.6

mysql耗时统计图:

mycat耗时统计图:

根据数据分析可得:mycat比mysql慢0.08倍

疑问:mycat在调整日志,重新启动后,第一次测试时发生了性能抖动,之后平缓

mycat性能抖动图:

 

结论:日志需要开启error级别,否则将会造成mycat GC频繁,从而影响 响应时间

 二、DirectMemory对mycat性能的影响

1.log4j.xml配置成error级别,mycat jvm参数:Xmx4G Xms4G

a.GC对比

 

XX:MaxDirectMemorySize=4G

XX:MaxDirectMemorySize=3G

XX:MaxDirectMemorySize=2G

XX:MaxDirectMemorySize=1G

 GC

S0 S1 E O P YGC YGCT FGC FGCT GCT 
0.00 89.70 67.74 1.52 � 89 2.286 1 0.061 2.348
89.41 0.00 28.13 1.54 � 90 2.313 1 0.061 2.374
89.41 0.00 85.84 1.54 � 90 2.313 1 0.061 2.374
0.00 87.12 41.31 1.56 � 91 2.343 1 0.061 2.404
0.00 87.12 98.46 1.56 � 92 2.343 1 0.061 2.404
88.52 0.00 53.41 1.57 � 92 2.373 1 0.061 2.434
0.00 89.73 9.57 1.59 � 93 2.403 1 0.061 2.465
0.00 89.73 66.74 1.59 � 93 2.403 1 0.061 2.465
90.80 0.00 23.15 1.61 � 94 2.432 1 0.061 2.494
90.80 0.00 81.01 1.61 � 94 2.432 1 0.061 2.494
0.00 90.47 37.72 1.62 � 95 2.462 1 0.061 2.523
0.00 90.47 95.76 1.62 � 95 2.462 1 0.061 2.523
93.21 0.00 53.53 1.64 � 96 2.492 1 0.061 2.553
 

 S0 S1 E O P YGC YGCT FGC FGCT GCT

72.59 0.00 55.69 2.35 � 126 2.661 1 0.066 2.727
72.59 0.00 74.64 2.35 � 126 2.661 1 0.066 2.727
72.59 0.00 82.26 2.35 � 126 2.661 1 0.066 2.727
72.59 0.00 96.14 2.35 � 126 2.661 1 0.066 2.727
72.59 0.00 98.74 2.35 � 126 2.661 1 0.066 2.727
0.00 73.05 24.66 2.36 � 127 2.678 1 0.066 2.744
0.00 73.05 59.14 2.36 � 127 2.678 1 0.066 2.744
0.00 73.05 74.67 2.36 � 127 2.678 1 0.066 2.744
0.00 73.05 80.99 2.36 � 127 2.678 1 0.066 2.744
0.00 73.05 84.09 2.36 � 127 2.678 1 0.066 2.744
0.00 73.05 86.12 2.36 � 127 2.678 1 0.066 2.744
0.00 73.05 89.39 2.36 � 127 2.678 1 0.066 2.744
0.00 73.05 92.26 2.36 � 127 2.678 1 0.066 2.744
 

S0 S1 E O P YGC YGCT FGC FGCT GCT 
0.00 53.88 58.44 0.53 � 17 0.181 1 0.065 0.246
61.07 0.00 22.08 0.53 � 18 0.196 1 0.065 0.261
61.07 0.00 82.07 0.53 � 18 0.196 1 0.065 0.261
0.00 64.27 40.67 0.53 � 19 0.214 1 0.065 0.279
40.18 64.27 100.00 0.53 � 20 0.214 1 0.065 0.279
68.31 0.00 58.15 0.53 � 20 0.234 1 0.065 0.299
0.00 69.75 15.67 0.53 � 21 0.255 1 0.065 0.320
0.00 69.75 73.38 0.53 � 21 0.255 1 0.065 0.320
66.83 0.00 30.14 0.53 � 22 0.277 1 0.065 0.342
66.83 0.00 88.50 0.53 � 22 0.277 1 0.065 0.342
0.00 73.20 44.27 0.53 � 23 0.301 1 0.065 0.366
80.58 0.00 1.24 0.53 � 24 0.324 1 0.065 0.389
80.58 0.00 60.64 0.53 � 24 0.324 1 0.065 0.389
 

S0 S1 E O P YGC YGCT FGC FGCT GCT 
0.00 58.25 50.25 0.52 � 17 0.192 1 0.064 0.256
64.19 0.00 15.57 0.52 � 18 0.207 1 0.064 0.271
64.19 0.00 75.00 0.52 � 18 0.207 1 0.064 0.271
0.00 67.74 33.33 0.53 � 19 0.226 1 0.064 0.290
0.00 67.74 91.26 0.53 � 19 0.226 1 0.064 0.290
67.43 0.00 48.33 0.53 � 20 0.247 1 0.064 0.311
0.00 76.06 6.20 0.53 � 21 0.267 1 0.064 0.331
0.00 76.06 66.35 0.53 � 21 0.267 1 0.064 0.331
78.43 0.00 24.29 0.53 � 22 0.290 1 0.064 0.354
78.43 0.00 86.86 0.53 � 22 0.290 1 0.064 0.354
0.00 79.12 46.02 0.53 � 23 0.314 1 0.064 0.378
79.61 0.00 0.00 0.53 � 24 0.336 1 0.064 0.400
79.61 0.00 62.98 0.53 � 24 0.336 1 0.064 0.400

 gc有波动,稳定后差不多是0.33次/秒

 

b.DirectMemory对比

 

XX:MaxDirectMemorySize=4G

XX:MaxDirectMemorySize=3G

XX:MaxDirectMemorySize=2G

XX:MaxDirectMemorySize=1G

DirectMemory

c.2000个简单查询对比

 

XX:MaxDirectMemorySize=4G

costs(ms)

XX:MaxDirectMemorySize=3G

costs(ms)

XX:MaxDirectMemorySize=2G

costs(ms)

XX:MaxDirectMemorySize=1G

costs(ms)

mysql 18 18 17 15
mycat 19.6 22 22 21

 

结论:XX:MaxDirectMemorySize的调整对性能影响不大

 

 三、Xmx对mycat性能的影响

a.GC对比

 

Xmx4G

Xmx3G

Xmx2G

Xmx1G

 GC

S0 S1 E O P YGC YGCT FGC FGCT GCT 
0.00 82.58 39.14 0.99 � 55 1.395 1 0.066 1.460
33.46 82.58 100.00 1.01 � 56 1.395 1 0.066 1.460
82.04 0.00 59.80 1.01 � 56 1.425 1 0.066 1.491
0.00 86.30 14.58 1.02 � 57 1.459 1 0.066 1.524
0.00 86.30 71.13 1.02 � 57 1.459 1 0.066 1.524
86.53 0.00 23.09 1.04 � 58 1.493 1 0.066 1.558
86.53 0.00 76.25 1.04 � 58 1.493 1 0.066 1.558
0.00 86.30 39.70 1.06 � 59 1.520 1 0.066 1.585
0.00 86.30 96.79 1.06 � 59 1.520 1 0.066 1.585
79.55 0.00 53.02 1.08 � 60 1.561 1 0.066 1.626
0.00 83.33 8.07 1.10 � 61 1.594 1 0.066 1.660
0.00 83.33 61.35 1.10 � 61 1.594 1 0.066 1.660
80.26 0.00 17.64 1.12 � 62 1.627 1 0.066 1.693
 

S0 S1 E O P YGC YGCT FGC FGCT GCT 
0.00 84.61 4.00 2.44 � 127 2.706 1 0.062 2.768
0.00 84.61 97.48 2.44 � 127 2.706 1 0.062 2.768
84.78 0.00 11.81 2.46 � 128 2.723 1 0.062 2.785
84.78 0.00 90.06 2.46 � 128 2.723 1 0.062 2.785
84.78 0.00 98.42 2.46 � 128 2.723 1 0.062 2.785
0.00 76.83 22.84 2.48 � 129 2.739 1 0.062 2.802
0.00 76.83 76.87 2.48 � 129 2.739 1 0.062 2.802
0.00 76.83 98.82 2.48 � 129 2.739 1 0.062 2.802
84.51 0.00 3.76 2.50 � 130 2.757 1 0.062 2.819
84.51 0.00 86.22 2.50 � 130 2.757 1 0.062 2.819
84.51 0.00 98.31 2.50 � 130 2.757 1 0.062 2.819
0.00 76.49 20.33 2.52 � 131 2.773 1 0.062 2.835
0.00 76.49 75.03 2.52 � 131 2.773 1 0.062 2.835

S0 S1 E O P YGC YGCT FGC FGCT GCT 
91.65 0.00 27.10 6.25 � 292 4.636 1 0.064 4.700
0.00 90.26 50.93 6.26 � 293 4.651 1 0.064 4.715
82.54 0.00 67.42 6.28 � 294 4.667 1 0.064 4.731
0.00 86.86 81.88 6.30 � 295 4.685 1 0.064 4.749
86.29 0.00 97.60 6.33 � 296 4.700 1 0.064 4.765
87.07 0.00 14.29 6.37 � 298 4.733 1 0.064 4.798
0.00 88.58 29.21 6.38 � 299 4.750 1 0.064 4.814
89.10 0.00 45.92 6.40 � 300 4.767 1 0.064 4.831
0.00 80.04 61.14 6.42 � 301 4.783 1 0.064 4.847
84.42 0.00 77.88 6.44 � 302 4.800 1 0.064 4.865
0.00 84.94 91.44 6.45 � 303 4.818 1 0.064 4.882
0.00 84.83 1.98 6.49 � 305 4.853 1 0.064 4.917
77.33 0.00 17.87 6.51 � 306 4.868 1 0.064 4.933
 

S0 S1 E O P YGC YGCT FGC FGCT GCT 
81.73 0.00 49.91 11.93 � 200 0.706 1 0.059 0.764
66.63 0.00 70.87 11.99 � 202 0.712 1 0.059 0.770
81.48 0.00 75.88 12.05 � 204 0.719 1 0.059 0.778
82.85 0.00 81.89 12.11 � 206 0.726 1 0.059 0.785
99.97 0.00 95.65 12.17 � 209 0.733 1 0.059 0.795
0.00 55.60 8.26 12.28 � 211 0.743 1 0.059 0.801
0.00 81.97 18.77 12.37 � 213 0.750 1 0.059 0.808
0.00 80.48 18.83 12.46 � 215 0.757 1 0.059 0.816
0.00 79.10 19.45 12.51 � 217 0.764 1 0.059 0.822
0.00 88.47 25.51 12.59 � 219 0.771 1 0.059 0.829
0.00 73.85 32.49 12.68 � 221 0.778 1 0.059 0.837
0.00 71.48 42.69 12.76 � 223 0.785 1 0.059 0.844
0.00 72.61 53.90 12.83 � 225 0.793 1 0.059 0.852
 

随着内存减少,GC越来越快

b.内存使用情况

 

Xmx4G

Xmx3G

Xmx2G

Xmx1G

堆内存

 

 

c.2000个简单查询对比

 

Xmx4G

costs(ms)

Xmx3G

costs(ms)

Xmx2G

costs(ms)

Xmx1G

costs(ms)

mysql 18 15 21 19
mycat 21 18 26 24

 

 四、数据库大表对mycat性能的影响

a.400多列a_account表

 

1并发(ms)

10并发(ms)

 100并发(ms)

200并发(ms)

300并发(ms)

mysql 3.5 4.6 32 61 85
mycat 4.5 6.2 56 81 110

 

b.5列a_account表

 

1并发(ms)

10并发(ms)

 100并发(ms)

200并发(ms)

300并发(ms)

mysql 1.2  2.1  23  44  70
mycat 1.9  2.2   22  45  68

 

通过观察2组测试数据,可以发现:

1.400多列表的那组测试中,mycat各并发下,平均都比mysql慢30%左右,

2.5列表的那组测试中,mycat各并发下,与mysql持平

3.通过观察mycat的CPU、内存、线程发现,300列的大表,占用内存非常之高,光char[]类型就达到了700M,CPU保持在30%~40%,NIO读写线程占用CPU时间最长。

   而5列的小表,内存占用非常小,gc次数明显降低,CPU也稳定到了10%~20%的水平。

 

结论:

1.数据库表结构过大,会对mycat性能产生较大影响

2.由大表读写导致的网络流量对mycat性能影响很大,mycat宿主机需要多网卡支持

 五、大表的SELECT * 对mycat性能的影响

1.通过测试大表的SELECT 全字段,和SELECT * 对比发现,SELECT 全字段时,mycat大部分的CPU都被druid SQL解析占据,yong GC主要是由于mycat解析大SQL引起的,所以ORM框架的全字段改写SQL功能(包括读写)会降低mycat性能。

2.通过将程序的SELECT全字段改为SELECT * 后,mycat GC次数直线下降,CPU也减了下来,并且响应时间得到良好的改善,基本跟直连mysql持平。

3.性能测试时,适当减小路由缓存的参数值,可以很好的减少full gc的次数。

 六、调优过程遇到的坑

1.在整个调优过程中,首先出发点有可能是错误的,我们因为mycat在生产环境发生故障,而将服务的数据源切回mysql后,系统稳定下来,以此为依据断定mycat有性能问题,导致整个调优过程都将思路局限在mycat上,而忽略了自己程序的问题。

2.测试环境中,不同JVM进程会相互抢占CPU,而影响测试结果的稳定性。

3.网络带宽的大小,一度成为我们怀疑的目标,通过各种工具监控后,发现带宽不是瓶颈。

4.AWS ELB的带宽弹性功能,也是我们怀疑过的目标之一,后来通过测试,排除掉该可能性。

5.集群中多个节点同时连接mycat,导致SQL响应缓慢,让我们怀疑到了mycat客户端数量可能是性能瓶颈点。通过测试,发现连接数不是瓶颈,客户端数排除。

6.mycat内存管理有可能成为mycat响应缓慢的元凶,通过监控GC,发现yong gc次数较多,每2秒一次,Eden区很快会被填满,这让我们怀疑到可能是响应数据太大导致,从而将目标定位到数据库表结构上。

7.通过对比大表和小表在相同环境下的响应时间,可以发现小表的表现非常好,和mysql基本持平,从而断定是数据库表结构的问题。

8.由于业务已上线很长时间,不能轻易改动表结构,所以只好继续找mycat大表表现差的原因。受大表致使mycat性能下降观念先入为主的影响,调优很长时间没有思路。

9.偶然机会,同事使用JMeter来测试mycat和mysql的表现,居然发现两者性能差别不大,于是事情有了新的突破,我们开始关注为什么使用测试工具测试没事,我们用自己的服务压测就总有问题,从而将矛头对准了我们自己的底层dal程序。

10.通过使用原生的JDBC压测发现性能很好,于是将问题定位到hibernate。发现hibernate表现非常差,从而将问题锁定为hibernate。

11.通过查看hibernate的日志,发现其和JDBC直连唯一的差别在sql上,hibernate进行了sql改写,通过id查对象时,拼接了400多全列名,并且做了重命名,导致一个SQL的大小约为17K。而将这个大SQL使用JDBC直连执行时,问题得到了重现,从而定位到了性能问题的最终元凶,“hibernate改写后的长SQL”。

12.通过将hibernate通过id获取对象的hql语句改写为SELECT * FROM object后,性能表现良好,与mysql持平,自此,问题得到了解决。。

 

 七、调优过程用到的工具

1.Linux网络带宽监控工具: nload

2.JVM内存监控工具:jstat、jvisualvm、jmap、jstack、tprofiler、jprofiler

3.mycat集群搭建工具:haproxy

4.Linux CPU监控工具:top

5.绘图工具:gnuplot

6.性能压测工具:JMeter

7.内存分析工具:EclipseMAT

© 著作权归作者所有

共有 人打赏支持
Mr-Bird-Lee
粉丝 1
博文 20
码字总数 33438
作品 0
海淀
程序员
高性能Mysql中间组件Mycat安装配置

高性能Mysql中间组件Mycat安装配置 由于公司项目需要使用到读写分离,但是官方版本的Mysql-proxy读写分离组件太不稳定且有很多BUG,最终决定使用Mycat作为中间组件,其实读写分离只是Mycat中...

幸运券发放 ⋅ 05/02 ⋅ 0

使用mycat实现mysql读写分离

使用mycat实现mysql读写分离 mycat在数据层的作用和nginx在应用层很像,都是代理后面实际的服务。mycat实现了mysql协议,对外看起来就是一个mysql数据库,可以和使用普通mysql一样进行操作 ...

肥肥小浣熊 ⋅ 05/06 ⋅ 0

mycat实现mysql分库分表

1. mycat介绍 MyCat发展到目前的版本,已经不是一个单纯的MySQL代理了,它的后端可以支持MySQL、SQL Server、Oracle、DB2、PostgreSQL等主流数据库,也支持MongoDB这种新型NoSQL方式的存储,...

红隐 ⋅ 05/06 ⋅ 0

使用MyCAT实现MySQL的分库分表、读写分离、主从切换

MyCAT及MySQL实例部署情况: MyCAT: IP:10.20.8.57,Port:3310/3311 MySQL : db1-M1,IP:10.20.8.126,Port:3306 db1-M2,IP:10.20.8.126,Port:3307 db2-M1,IP:10.25.80.7,Port:......

橡皮高 ⋅ 05/08 ⋅ 0

Mycat连接数据库之后导致表名全小写的问题分析研究

初步研究:通过部署发现在Mycat中部署逻辑表表名大小写混合时,在Mycat连接后出现全变小。容易造成错误逻辑表(按混合表名创建物理表); 可能拯救的方法: 1、Linux下部署安装MySQL,默认不...

easonjim ⋅ 2017/08/25 ⋅ 0

Mycat读写分离笔记Windows

Mycat读写分离笔记Windows 自己搭了一个运用Mycat中间件搭建了一个读写分离的demo,昨晚还在奋战当中,因为连接mycat的时候老是报错:No Mycat DataBases selected.尝试了很多的方法,然后还...

推荐码发放 ⋅ 04/29 ⋅ 0

MyCAT PreparedStatement 重新入门

概述 相信很多同学在学习 JDBC 时,都碰到 和 。究竟该使用哪个呢?最终很可能是懵里懵懂的看了各种总结,使用 。那么本文,通过 MyCAT 对 的实现对大家能够重新理解下。 本文主要分成两部分...

wangchen1999 ⋅ 05/02 ⋅ 0

数据库中间件01-认识mycat

简述 Mycat是国产的一套免费开源的分布式数据库中间件。想必做开发或者运维的朋友对中间件这个词应该是比较熟悉了,我们见到过java中间件,消息中间件等等,这里又来了一个数据库中间件。那么...

细节探索者 ⋅ 05/11 ⋅ 0

MySQL多数据源笔记4-Mycat中间件实战

Mycat 是数据库中间件,就是介于数据库与应用之间,进行数据处理与交互的中间服 务。由于前面讲的对数据进行分片处理之后,从原有的一个库,被切分为多个分片数据库,所有的分片数据库集 群构...

狂小白 ⋅ 03/18 ⋅ 0

MySQL高可用读写分离集群视频课程 MyCat教程

课程大纲: 第1节MySQL源码编译安装(CentOS-6.6+MySQL-5.6)38分钟 第2节MySQL主从复制的配置(CentOS-6.6+MySQL-5.6)58分钟 第3节MyCat在MySQL主从复制基础上实现读写分离-0130分钟 第4节M...

15543647553 ⋅ 05/13 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

MySQL 数据库设计总结

规则1:一般情况可以选择MyISAM存储引擎,如果需要事务支持必须使用InnoDB存储引擎。 注意:MyISAM存储引擎 B-tree索引有一个很大的限制:参与一个索引的所有字段的长度之和不能超过1000字节...

OSC_cnhwTY ⋅ 41分钟前 ⋅ 0

多线程(四)

线程池和Exector框架 什么是线程池? 降低资源的消耗 提高响应速度,任务:T1创建线程时间,T2任务执行时间,T3线程销毁时间,线程池没有或者减少T1和T3 提高线程的可管理性。 线程池要做些什...

这很耳东先生 ⋅ 48分钟前 ⋅ 0

使用SpringMVC的@Validated注解验证

1、SpringMVC验证@Validated的使用 第一步:编写国际化消息资源文件 编写国际化消息资源ValidatedMessage.properties文件主要是用来显示错误的消息定制 [java] view plain copy edit.userna...

瑟青豆 ⋅ 今天 ⋅ 0

19.压缩工具gzip bzip2 xz

6月22日任务 6.1 压缩打包介绍 6.2 gzip压缩工具 6.3 bzip2压缩工具 6.4 xz压缩工具 6.1 压缩打包介绍: linux中常见的一些压缩文件 .zip .gz .bz2 .xz .tar .gz .tar .bz2 .tar.xz 建立一些文...

王鑫linux ⋅ 今天 ⋅ 0

6. Shell 函数 和 定向输出

Shell 常用函数 简洁:目前没怎么在Shell 脚本中使用过函数,哈哈,不过,以后可能会用。就像java8的函数式编程,以后获取会用吧,行吧,那咱们简单的看一下具体的使用 Shell函数格式 linux ...

AHUSKY ⋅ 今天 ⋅ 0

单片机软件定时器

之前写了一个软件定时器,发现不够优化,和友好,现在重写了 soft_timer.h #ifndef _SOFT_TIMER_H_#define _SOFT_TIMER_H_#include "sys.h"typedef void (*timer_callback_function)(vo...

猎人嘻嘻哈哈的 ⋅ 今天 ⋅ 0

好的资料搜说引擎

鸠摩搜书 简介:鸠摩搜书是一个电子书搜索引擎。它汇集了多个网盘和电子书平台的资源,真所谓大而全。而且它还支持筛选txt,pdf,mobi,epub、azw3格式文件。还显示来自不同网站的资源。对了,...

乔三爷 ⋅ 今天 ⋅ 0

Debian下安装PostgreSQL的表分区插件pg_pathman

先安装基础的编译环境 apt-get install build-essential libssl1.0-dev libkrb5-dev 将pg的bin目录加入环境变量,主要是要使用 pg_config export PATH=$PATH:/usr/lib/postgresql/10/bin 进......

玛雅牛 ⋅ 今天 ⋅ 0

inno安装

#define MyAppName "HoldChipEngin" #define MyAppVersion "1.0" #define MyAppPublisher "Hold Chip, Inc." #define MyAppURL "http://www.holdchip.com/" #define MyAppExeName "HoldChipE......

backtrackx ⋅ 今天 ⋅ 0

Linux(CentOS)下配置php运行环境及nginx解析php

【part1:搭建php环境】 1.选在自己需要安装的安装包版本,wget命令下载到服务器响应目录 http://php.net/releases/ 2.解压安装包 tar zxf php-x.x.x 3.cd到解压目录执行如下操作 cd ../php-...

硅谷课堂 ⋅ 今天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部