Bug1024

Bugs are eveyrwhere

突然想到

莫名其妙的想法

毕业参加工作已有3年半时间了,活到现在一路过来都是波澜不惊。每当听到周围的人讲述那些不幸时,我总是发自肺腑地感觉到上天对我实在是太眷顾了。 我还是很喜欢程序员这份工作的,因为需要不断地学习,而我本身也是一个喜爱学习的人,学习总是容易让人获得一种满足感。 个体差异总是那么大,而需要做的就是承认这个差异,不与别人比,只和自己比,不要给自己徒增压力。 自律的生活,需要强大的意志力。我一向喜欢...

Linux性能调优工具

Linux常见性能排查命令

监控指标 load 特定事时间间隔内运行队列中的平均线程数 user time CPU执行用户进程所占用的时间 system time CPU在内核所花费的时间 nice time 系统在调整进程优先级的时候所花费的时间 idle time 系统空闲等待进程运行的时间 waiting time CPU在等待IO操作所花费的时间 hard irq time 系统处...

Java类加载

Java类加载机制

虚拟机把描述类的数据从Class文件加载到内存,并对数据进行校验、转换解析和初始化,最终形成可以被虚拟机直接使用的Java类型,这便是虚拟机的类加载机制。 加载 Loading 通过一个类的全限定名来获取定义此类的二进制字节流 将字节流所代表静态存储结果转化为方法区运行时数据结构 在内存中生成一个代表这个类的java.lang.Class对象作为方法区...

jstat

jstat命令

垃圾回收堆的行为统计 # 每隔2000ms输出pid为1234的gc情况,一共输出20次 jstat -gc 1234 2000 20 # 同-gc,不过还会输出Java堆各区域使用到的最大、最小空间 jstat -gccapacity 1234 # 同-gc,不过输出的是已使用空间占总空间的百分比 jstat -gcutil 1234 ...

Java线程池

Java线程池设计思想

Java 线程池关键属性 corePoolSize 到 maximumPoolSize 之间的线程会被回收,当然 corePoolSize 的线程也可以通过设置而得到回收(allowCoreThreadTimeOut(true))。 workQueue 用于存放任务,添加任务的时候,如果当前线程数超过了 corePoolSize,那么往该队列中插入任务,线程池中的线程会负责到队列中...

负载均衡

负载均衡策略

负载均衡分类 二层负载均衡 对外依然提供一个VIP,集群中不同的机器采用相同IP地址,但是机器的MAC地址不一样。当负载均衡服务器接受到请求之后,通过改写报文的目标MAC地址的方式将请求转发到目标机器实现负载均衡。 三层负载均衡 对外提供一个VIP,但是集群中不同的机器采用不同的IP地址。当负载均衡服务器接受到请求之后,根据不同的负载均衡算法,通过IP将请求转发至不同的真实服务器。 四层...

IO

文件I/O

文件I/O常用函数 open 打开或创建一个文件 create 创建一个新文件 read 从打开文件中读取数据 write 向打开文件中写入数据 lseek 显示设置文件的偏移量 close 关闭一个文件 文件描述符 对于内核而言,所有打开的文件都通过文件描述符引用,它是一个非负数,打开或新建文件时内核向进程返回一个文件描述符,当读写一个文件时,使用oepn或c...

Dubbo

Dubbo框架

简介 Dubbo 是一个分布式服务框架,致力于提供高性能和透明化的RPC远程服务调用方案,以及SOA服务治理方案。 其核心部分包含: 远程通讯: 提供对多种基于长连接的NIO框架抽象封装,包括多种线程模型,序列化,以及“请求-响应”模式的信息交换方式。 集群容错: 提供基于接口方法的透明远程过程调用,包括多协议支持,以及软负载均衡,失败容错,地址路由,动态配置等集群支持 自动发...

时间管理

工作中的时间规划

时间规划 工作中要注意做好时间规划,也要做好任务记录,遇到临时任务,先记录下来形成TodoList,并确定deadline,并非所有任务都要立刻跟进,以免打扰手工正在进行的工作,造成频繁切换任务,影响效率。每天早上来,花5分钟思考整理当天的工作计划。 事件优先级 通常一天中的黄金时间是早上,集中精力把最重要的工作,比如编码/bug修复花在早上10-12点和下午2-4点,这是编码的黄金时间,...

2017上半年总结

不是总结的总结

转眼半年就结束了,比想象中的要快很多。 编程 我向来是不喜欢Java的,万万没想到现在用的却是它。Java在我看来实在是太笨重了,一点都不是我像我的风格,我自认为骨子里是个放荡不羁的人。 不过学习Java拓宽了对编程语言的视野,对面向对象编程的理解更为深入,同时写代码的思路也更为严谨。 但是对Java底层原理的认识仍不够深入,排查定位问题的技巧仍有待提升。 在操作系统上花的时间仍旧不是很多...