其他

详细了解 synchronized 锁升级过程

前言 首先,synchronized 是什么?我们需要明确的给个定义——同步锁,没错,它就是把锁。 可以用来干嘛?锁,当然当然是用于线程间的同步,以及保护临界区内的资源。我们知道,锁是个非常笼统的概念,像生活中有指纹锁、密码锁等等多个种类,那 synchronized 代表的锁具体是把什么锁呢? 答案是—— Java 内置锁。在 Java 中,每个对象中都隐藏着一把锁,而 synchronized 关键字就是激活这把隐式锁的把手(开关)。 先来简单了解一下 synchronized,我们知道其共有 3 种使用方式: 修饰静态方法:锁住当前 class,作用于该 class 的所有实例 修饰非静…

MySQL 表数据多久刷一次盘?

前言 事情是这样的,在某乎的邀请回答中看到了这个问题: – 然后当时我没多想就啪一下写下来这样的答案: 这个其实要通过 MySQL 后台线程来刷的,在 Buffer Pool 中被修改的过的 Page(页)都会被标记成脏页,放到一个链表(Flush 链表)里。 然后 MySQL 通过启动后台线程,在满足条件时将 Flush 链表中的脏页刷入磁盘。 满足的条件是:脏页的数量达到了 Buffer Pool 中页数量的 **10%,当然 10% 这个值是可变的,通过配置项 innodb_max_dirty_pages_pct_lwm 来配置的,其默认值为 10%,并且这个值...

简单了解 TiDB 架构

一、前言 大家如果看过我之前发过的文章就知道,我写过很多篇关于 MySQL 的文章,从我的 Github 汇总仓库 中可以看出来: 可能还不是很全,算是对 MySQL 有一个浅显但较为全面的理解。之前跟朋友聊天也会聊到,基于现有的微服务架构,绝大多数的性能瓶颈都不在服务,因为我们的服务是可以横向扩展的。 在很多的 case 下,这个瓶颈就是「数据库」。例如,我们为了减轻 MySQL 的负担,会引入消息队列来对流量进行削峰;再例如会引入 Redis 来缓存一些不太常变的数据,来减少对 MySQL 的请求。 另一方面,如果业务往 MySQL 中灌入了海量的数据,不做优化的话,会影响 MySQL 的…

关闭Mac的Microsoft AutoUpdate

关闭Mac的Microsoft AutoUpdate 最近使用Office 发现AutoUpdate一直会启动。我也不需要里面的更新。每次还要把它推出。 网上看到有两种方法,一种是暴力删除,另一种是通过权限限制。 暴力可不是我喜欢的方式,所以选择后者。 方法: 打开终端 两行命令后,输入密码就可以了。

iperf/LANSpeedTest网络传输速度测试工具

最近公司测试限速,搜集软件发现两款,iperf,LANSpeedTest. iperf,多平台. LANSpeedTest,读写显示,操作简单. 局域网测试传输,优先考虑UDP. iperf Iperf可以报告带宽,延迟抖动和数据包丢失. 官方文档 安装不写了.跳过 iperf常用参数介绍 UDP测试 TCP测试 测试结果 结果中可以看到: 30秒(-t)的测试,传递数据 70+ (-b参数), 监...

SwitchHosts管理编辑hosts工具

管理Hosts工具 SwitchHosts 地址: SwitchHosts 开发工程中,针对不同项目设置不同的域名. 办法很多,例如直接编辑hosts文件,通过环境工具提供的功能设置等. 现在要安利一款便捷实用的工具. SwitchHosts!! 为什么,首先这工具是多平台支持的,我们可以在不同系统中使用.如果之前是靠编辑hosts文件的话,那不同的hosts位置还需要记忆一下,当然这也算不了什么难事. 他的有点不在于能简单编辑hosts文件,也有之前的记录,还可以通过url来读取云端的hosts信息.导入导出功能等. 总之又可以偷懒了. 主界面: 我们可以编辑不同host 分组,使用时打开开…

windows10家庭版启用组策略gpedit.msc

启用组策略gpedit.msc 家庭版很多功能不能使用,凑巧用的就是家庭版. 还想使用gpedit.msc来关闭windows10的更新. 找到一个可行的方法. 需要创建一个脚本. 如果你没有编辑器,那么可以创建一个文本文档. 复制下面一段到本文中. 如果编辑器直接复制一个文档另存到XX.cmd 即可. 如果是文本文档那么就是把后缀的.txt改成.cmd. 管理员身份运行这个脚本.等他走完会退出,win+r 即可使用gpedit.msc了. 美滋滋!~ 禁用windows10更新 win+r 输入gp...

Grafana中文汉化

可视化图表 Grafana是一个通用的可视化工具。通过Grafana可以管理用户权限,数据分析,查看,导出,设置告警等。 仪表盘Dashboard 通过数据源定义好可视化的数据来源之后,对于用户而言最重要的事情就是实现数据的可视化。 面板 Panel Panel是Grafana中最基本的可视化单元。每一种类型的面板都提供了相应的查询编辑器(Query Editor),让用户可以从不同的数据源(如Prometheus)中查询出相应的监控数据,并且以可视化的方式展现。 Grafana中所有的面板均以插件的形式进行使用,当前内置了5种类型的面板,分别是:Graph,Singlestat,Heatma…

Grafana插件Plugin中文汉化

示例Github地址 汉化三方插件 前面说过汉化Grafana的工作。目前在7.2.1上面,大部分已经完成。细节继续完善。 今天考虑在第三方插件上做一些汉化。点到插件一看全是英文感觉很突出。领导看到了也不爽啊-.-!。 找个软的捏 饼图在展示方面比较直观。Grafana上有一个插件Pie Chart 。这个现象比较少,同时在一些模版上使用中。就拿这个热热身。 具体步骤 下载项目 项目地址:piechart-panel 文件结构: 我直接把项目clone到grafana存放插件的位置,我的grafana...

Prometheus+Grafana安装搭建

介绍 Prometheus是由SoundCloud开发的开源监控报警系统和时序列数据库(TSDB)。Prometheus使用Go语言开发,是Google BorgMon监控系统的开源版本。 2016年由Google发起Linux基金会旗下的原生云基金会(Cloud Native Computing Foundation), 将Prometheus纳入其下第二大开源项目。Prometheus目前在开源社区相当活跃。 Prometheus和Heapster(Heapster是K8S的一个子项目,用于获取集群的性能数据。)相比功能更完善、更全面。Prometheus性能也足够支撑上万台规模的集群。 …

小米手环表盘自定义

前阵子媳妇给买了个手环。小米手环5NFC,价格还可以。 定义表盘 手环就不做评价了,我感觉续航不错。屏幕划痕太容了吧。 吐槽完了说下能玩的也就表盘了吧。 出小米运动能同步的那些之外,总想搞点与众不同的。 请访问->AW 不仅是小米5,6都有了。 我们根据自己的设备来选择。 可以看到有面上方有个分类,语言筛选。 这个还是很有用的,如果你只希望看到中文表盘,那就选择中文。 但是中文可能相对较少,我建议所有,然后看喜欢的界面吧。毕竟表盘上也没几个字。 当我们点中某一个表盘,他会进到详情页。 点击下载,可以弹出来具体的表盘文件。 可以看到不同的文件有一些描述,比如语言,以及其他的一...