最新

mysql字符集 小结

起因 公司的某个业务需要用到emoji编码,但是很早线上跑的mysql数据库是mysql 5.7.12 模拟 mysql root@127.0.0.1:test_yl_audit> show create table `1_text`; +--------+-------------------------------------------------------+ | Table | Create Table | +--------+-------------------------------------------------------+ | 1_text | CREATE TABLE `1_text` ( | | | `id` bigint(20) NOT NULL AUTO_INCREMENT, | | | `appid` varchar(255) NOT NU

By chainhelen

prometheus

prometheus 笔记

笔记 1. go语言创造,静态编译,无需安装太多依赖环境 2. 对于非法的路径,可以根据404返回头过滤成一类 others 3. 使用 record.rules 能够提前把数据组合好,直接访问处理后的数据,而不是实时去求表达式 4. 10分钟是个经验值,grafan 总是 能被 smoothed Counter // responseCounter Inc() 回复的总数 ,假设传入两个维度(默认还有其他维度) path 、method、status qps: sum(rate(requests_total[10m])) 按照维度分,可以保留下面grafa sum(rate(requests_total[10m])) by (endpoint, method, status) Histogram // 耗时responseLatency.

By chainhelen

text file busy

Text file busy 问题粗解

1. 问题起源 接手一个评论的项目,是用golang写的,采用了gin的web框架 发现里面并没有做热重启,尝试去了解了一下文档 推荐了一个endless的平滑重启库 当我尝试里面写的事例时候,会报错 文档里面提及的操作如下: Compile the example $ go build -o simple_server examples/simple.go Run it $ ./simple_server 2015/03/22 20:03:29 PID: 2710 localhost:4242 Make a request $ curl http://localhost:4242/hello WORLD! Change the handler - eg. replace

By chainhelen

内存泄漏

记一次定位js内存泄漏

来源 线上有个升级服务,隔一两个月时间内存会慢慢上涨到服务器内存80%以上,单进程内存到500M左右 原因一直不明确 heapdump 首先压测无果,初步猜测应该是压测量级或者特殊情况触发不够 就想着添加一下代码,等出现情况时,dump线上进程的内存 添加heapdump库,准备随时dump内存,但是由于内存过大,不能设置定时器,否则很可能影响性能 所以采用添加在路由里,等到情况复现时,手动触发 var heapdump = require('heapdump'); ... router.get('/profiler', function(req, res, next) { let query = req.query // 做token验证 if('xxxxxxxxxxxxx' === query.token) { heapdump.writeSnapshot(path.join(

By chainhelen

端口转发

记一次端口转发

问题 有个管理后台的php项目,我搭建了一个docker 容器,放在了公网ip 47 阿里云服务器上,作为调试环境比较麻烦 本地xdebug 通常的调试手段 本机IP 10.10.1.42 监听本地9000 服务器IP 10.0.1.2 连接是80端口 xdebug.remote_host=10.0.1.42 xdebug.remote_port=9000 也就是说xdebug是反向代理过来的 本机ip跳动 第二种其实是本机ip会乱动,远程不会乱动 在xdebug服务端有一个配置xdebug.remote_connect_back,设定为1则remote_host中值就会无效,xdebug服务端可以从http请求的头部$_SERVER['REMOTE_ADDR']获取远程客户端的IP地址

By chainhelen

nodejs 编译debug

下载源码 遇到问题 1.按照文章上来说,执行vsbuild.bat,set PYTHON=c:\python27\python.exe",但是没有任何反应,并且没有错误显示 注释掉 vsbuild.bat第一行 @echo off发现,错误是执行到run-python`,顺藤摸瓜脚本第550行,找到tools\msvs\find_python.cmd 2. 直接运行find_python.cmd,发现什么反应都没有,同样注释掉第一行 打印出"C:\Program Files\Python35\python.exe" -V 2>&1 | findstr /R

By chainhelen

mysql

奇怪的mysql慢查询

线上问题 目前还没有未知根本缘由,线上跑了一个月左右,数据库这张表,大约有80万数据 当发生order by 和 limit 同时作为条件时,查询速度下降到3秒以上 表基本信息 首先利用 pager cat /dev/null; nopager; pager 只影响单次链接 介绍一下表的情况,id 是 唯一索引, rid(下面没用到) 是主键索引,status 是普通字段 查看表索引,可见 mysql> show index from 10000_web \G; *************************** 1. row *************************** Table: 10000_web Non_unique: 0 Key_name: PRIMARY

By chainhelen

js

js 匿名函数 箭头函数

关于new 首先回顾一下new关键字 var ch = new Fa(); 等价于 var ch = {}; ch.__prototype__ = Fa.prototype; Fa.call(ch); 本质上call的第一个参数可以理解传入了一个this,改变了整个上下文 本文事例 运行环境 nodejs v7.7.2 拿一段观察者模式的代码来看 //js文件 function Event() { this.handlers = {}; } Event.prototype.on = function(type, cb) { //exception handler, need to code if("undefined" == typeof this.handlers[type]) { this.

By chainhelen