`
文章列表
原创转载请注明出处:https://agilestyle.iteye.com/blog/2442428   vmstat是一款指定采样周期和次数的功能性监测工具,可以使用它监控进程上下文切换的情况。 Note:  vmstat 1 10 命令行代表每秒收集一次性能指标,总共获取10次。以下为上图中各个性能指标的注释:   procs r:等待运行的进程数 b:处于非中断睡眠状态的进程数 memory swpd:虚拟内存使用情况 free:空闲的内存 buff:用来作为缓冲的内存数 cache:缓存大小 swap si:从磁盘交换到内存的交换页数量 so:从内存 ...

线程饥饿

Reference: https://time.geekbang.org/column/article/85702   饥饿:线程因无法访问所需资源而无法执行下去的情况。 “不患寡,而患不均”,如果线程优先级“不均”,在CPU繁忙的情况下,优先级低的线程得到执行的机会很小,就可能发生线程“饥饿”;持有锁的线程,如果执行的时间过长,也可能导致“饥饿”问题。   解决“饥饿”问题的方案很简单,有三种方案:一是保证资源充足,二是公平地分配资源,三就是避免持有锁的线程长时间执行。这三个方案中,方案一和方案三的适用场景比较有限,因为很多场景下,资源的稀缺性是没办法解决的,持有锁的线程执行的时 ...

线程活锁

Reference: https://time.geekbang.org/column/article/85702   活锁:有时线程虽然没有发生阻塞,但仍然会存在执行不下去的情况。 可以类比现实世界里的例子,路人甲从左手边出门,路人乙从右手边进门,两人为了不相撞,互相谦让,路人甲让路走右手边,路人乙也让路走左手边,结果是两人又相撞了。这种情况,基本上谦让几次就解决了,因为人会交流啊。可是如果这种情况发生在编程世界了,就有可能会一直没完没了地“谦让”下去,成为没有发生阻塞但依然执行不下去的“活锁”。   解决“活锁”的方案很简单,谦让时,尝试等待一个随机的时间就可以了。例如上面的那个 ...

MySQL UNSIGNED

 
原创转载请注明出处:https://agilestyle.iteye.com/blog/2442165   UNSIGNED属性就是将数字类型无符号化,与C、C++这些程序语言中的unsigned含义相同。 例如,INT的类型范围是-2 147 483 648 ~ 2 147 483 647, INT UNSIGNED的范围类型就是0 ~ 4 294 967 295。   在MYSQL中整型范围: 类型    大小 范围(有符号 范围(无符号) TINYINT  1 字节 (-128,127)   (0,255) SMALLINT  2 字节 (- ...

Docker常规操作

原创转载请注明出处:https://agilestyle.iteye.com/blog/2441670   Docker 常⽤命令 镜像相关 • docker pull <image> • docker search <image> 容器相关 • docker run • docker start/stop <容器名> • docker ps <容器名> • docker logs <容器名>   docker run 的常⽤选项 docker run [OPTIONS] IMAGE [COMMAND] [ ...

线程死锁

原创转载请注明出处:https://agilestyle.iteye.com/blog/2440433   死锁:一组互相竞争资源的线程因互相等待,导致“永久”阻塞的现象。  解决死锁,要么重启,要么规避 那如何避免死锁呢?要避免死锁就需要分析死锁发生的条件,只有以下这四个条件都发生时才会出现死锁:   1.互斥,共享资源 X 和 Y 只能被一个线程占用; 2.占有且等待,线程 T1 已经取得共享资源 X,在等待共享资源 Y 的时候,不释放共享资源 X; 3.不可抢占,其他线程不能强行抢占线程 T1 占有的资源; 4.循环等待,线程 T1 等待线程 T2 占有的资源,线程 ...
原创转载请注明出处:https://agilestyle.iteye.com/blog/2440384   使用如下指令查看当前Server的TCP状态 netstat -n | awk '/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}'   常用的三个状态 ESTABLISHED 表示正在通信 TIME_WAIT 表示主动关闭 CLOSE_WAIT 表示被动关闭   主动关闭的一方发出 FIN 包,被动关闭的一方响应 ACK 包,此时,被动关闭的一方就进入了 CLOSE_WAIT 状态。 如果一切正常,稍后被动关闭的 ...

文件页和匿名页

    博客分类:
  • JVM
Reference:https://time.geekbang.org/column/article/75797   文件页 内存回收,也就是系统释放掉可以回收的内存,比如缓存和缓冲区,就属于可回收内存。它们在内存管理中,通常被叫做文件页(File-backed Page)。大部分文件页,都可以直接回收,以后有需要时,再从磁盘重新读取就可以了。   脏页 那些被应用程序修改过,并且暂时还没写入磁盘的数据(也就是脏页),就得先写入磁盘,然后才能进行内存释放。 这些脏页,一般可以通过两种方式写入磁盘。可以在应用程序中,通过系统调用 fsync ,把脏页同步到磁盘中;也可以交给系统, ...
原创转载请注明出处:https://agilestyle.iteye.com/blog/2440026   Minor GC 清理年轻代 Minor GC指新生代GC,即发生在新生代(包括Eden区和Survivor区)的垃圾回收操作,当新生代无法为新生对象分配内存空间的时候,会触发Minor GC。因为新 ...

磁盘和文件

Reference:https://time.geekbang.org/column/article/74633   磁盘和文件 磁盘是一个块设备,可以划分为不同的分区;在分区之上再创建文件系统,挂载到某个目录,之后才可以在这个目录中读写文件。   其实 Linux 中“一切皆文件”,而提到的“文件”是普通文件,磁盘是块设备文件,可以执行 "ls -l <路径>" 查看它们的区别(输出的含义如果不懂请 man ls 查询)。   在读写普通文件时,会经过文件系统,由文件系统负责与磁盘交互;而读写磁盘或者分区时,就会跳过文件系统,也就是所谓的“裸I/ ...

jmap使用

    博客分类:
  • JVM
原创转载请注明出处:https://agilestyle.iteye.com/blog/2439738   使用 -heap 查看heap空间概要 jmap -heap 41565 > ~/jmap.txt  Console Output Attaching to process ID 41565, please wait... Debugger attached successfully. Server compiler detected. JVM version is 25.131-b11 ...

jstack使用

    博客分类:
  • JVM
原创转载请注明出处:https://agilestyle.iteye.com/blog/2439724   1.查看当前应用占用的PID,比如41565 ps -ef | grep ${application_name}   2. 查看进程内部线程占用情况 top -H -p 41565   3. 找出占用CPU最多的线程ID,比如41575,打印出对应的16进制号,比如:a267 printf "%x\n" 41575   4. 通过jstack打出当前JVM线程快照信息 jstack 41565 > ~/jstack.txt   5. ...

jstat使用

    博客分类:
  • JVM
原创转载请注明出处:https://agilestyle.iteye.com/blog/2439722   -gc -gcutil Demo jstat -gc 41565 2000   jstat -gcutil 41565 2000   jstat reference https://docs.oracle.com/javase/8/docs/technotes/tools/unix/jstat.html https://www.cnblogs.com/yjd_hycf_space/p/7755633.html
原创转载请注明出处:https://agilestyle.iteye.com/blog/2439168    设计模式分类: 创建型模式 结构型模式 行为型模式  

Lombok Test

原创转载请注明出处:https://agilestyle.iteye.com/blog/2439069   Maven Dependency <dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <version>1.16.22</version> </dependency>   src Person.java package org.fool ...
Global site tag (gtag.js) - Google Analytics