Skip to main content

Posts

Showing posts from March, 2015

优化MySQL的21个建议

作者:吴炳锡 来源:http://www.mysqlsupport.cn/ 联系方式: wubingxi#gmail.com 转载请注明作/译者和出处,并且不能用于商业用途,违者必究. 今天一个朋友向我咨询怎么去优化 MySQL,我按着思维整理了一下,大概粗的可以分为21个方向。 还有一些细节东西(table cache, 表设计,索引设计,程序端缓存之类的)先不列了,对一个系统,初期能把下面做完也是一个不错的系统。 1. 要确保有足够的内存 数据库能够高效的运行,最关建的因素需要内存足更大了,能缓存住数据,更新也可以在内存先完成。但不同的业务对内存需要强度不一样,一推荐内存要占到数据的15-25%的比例,特别的热的数据,内存基本要达到数据库的80%大小。 2. 需要更多更快的CPU MySQL 5.6可以利用到64个核,而MySQL每个query只能运行在一个CPU上,所以要求更多的CPU,更快的CPU会更有利于并发。 3. 要选择合适的操作系统 在官方建议估计最推荐的是Solaris, 从实际生产中看CentOS, REHL都是不错的选择,推荐使用CentOS, REHL 版本为6以后的,当然Oracle Linux也是一个不错的选择。虽然从MySQL 5.5后对Windows做了优化,但也不推荐在高并发环境中使用windows. 4. 合理的优化系统的参数 更改文件句柄  ulimit –n 默认1024 太小 进程数限制  ulimit –u   不同版本不一样 禁掉NUMA  numctl –interleave=all 5. 选择合适的内存分配算法 默认的内存分配就是c的malloc 现在也出现许多优化的内存分配算法: jemalloc and tcmalloc 从MySQL 5.5后支持声明内存储方法。 [mysqld_safe] malloc-lib = tcmalloc 或是直接指到so文件 [mysqld_safe] malloc-lib=/usr/local/lib/libtcmalloc_minimal.so 6. 使用更快的存储设备ssd或是固态卡 存储介质十分影响MySQL的随机读取,写入更新速度。新一代存储设备固态ssd及固态卡的出现也让M

Useful and influential Java libraries / frameworks

Web framework: Grails, Play, Tapestry, Primefaces, Vaadin Utility: Guava, Joda, Quartz, H2, Camel Backend: Spring, Spring Security, Hibernate, MyBatis, Jooq Unit testing: Mockito, PowerMock, Junit, TestNG, Spock You can check more at http://devrates.com/project/list?query=%5Bjava%5D Original Link: http://www.quora.com/What-are-top-10-most-useful-and-influential-Java-libraries-frameworks

Word count program for Hadoop 2.x 2.6

You can run the program as    bin/hadoop jar WordCount.jar com.xyz.WordCount input output-wordcount where (1) com.xyz is the package name for WordCount class (2) WordCount.jar is the jar file name (3) input is the input directory which contains the files (4) output is the output directory You can check the result as bin/hadoop dfs -ls output-wordcount check output file (part-r-00000) content  bin/hadoop dfs -cat output-wordcount/part-r-00000 | less WordMapper.java ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 import java.io.IOException; import java.util.StringTokenizer;   import org.apache.hadoop.io.IntWritable; import org.apache.hadoop.io.Text; import org.apache.hadoop.mapreduce.Mapper; public class WordMapper extends Mapper<Object, Text, Text, IntWritable> {   private Text word = new Text();   private final static IntWritable one = new I