Go学习系列-MPG 一,MPG名词解析G:Goroutine,即我们在 Go 程序中使用go关键字创建的执行体--任务 M:Machine,或 worker thread,即传统意义上进程的线程--执行单元 P:Processor,即一种人为抽象的、用于执行 Go 代码被要求局部资源。只有当 M 与一个 P 关联后才能执行 Go 代码。除非 M 发生阻塞或在进行系统调用时间过长时,没有与之关联的 P--调度器二,...
Go学习系列 一,Go 内存分析之-逃逸分析Go 程序会在 2 个地方为变量分配内存,一个是全局的堆(heap)空间用来动态分配内存,另一个是每个 goroutine 的栈(stack)空间,这里就引出了堆(heap)与栈(stack)内存分配到栈空间上,随着goroutine的生命周期结束自动释放,而分配在全局堆中就会借助GC了。Go采用标记清除的方式,同时引入三色标记算法和写屏障技术(STW)标记清除收集器是跟踪式垃圾收集器,其执行过程可以分成标记(Mark)和清除(Sweep)两个阶段:...
gitlab解决permission deny问题 问题来源:在clone 代码时提示:git@gitlab.com: Permission denied (publickey,keyboard-interactive).原因可能是因为你有多个git账户导致一,已经生成完了你的rsa*ssh-keygen -t rsa -C "your email"git config --global user.name'your name'git config --global user.email'your email'##查找是否已存在agent
后端技术阶段性学习总结 只是为了做笔记!!!一,tcp/ip 协议 tcp工作在传输层,传输包数据 TCP三手握手: 1,客户端发送一个初始序列号和syn=1请求标志 2,服务端收到后返回一个syn请求标志,同时发送一个确认标志ack,自己的seq,客户端的ack+1 3,客户端收到ack后,发送一个ack,自己的seq对方的ack 三次是为了确保双方都知道自己接收发送正常 四手挥手: 1,客户端发出...
mysql自带诊断工具 一,最近在学习mysql深分页优化时,学到了一个新的工具,Mysql自带的诊断工具,话不多说展开介绍set profiling = 1; ##开启sql诊断show profiles; ##查看所有正在或刚刚结束的查询show profile for query Number; ##查看编号为几的查询语句的深度分析Example:耗时最多的为 Sending data...
swoole打开文件句柄数过多 最近在业务中,由于用到了基于swoole写的hyperf,在打开文件句柄过多时会报错,too many open files解决思路:1,ps aux | grep 'xxx'2,ulimit -a3,cat /proc/101077/limits4,lsof -p 101077 | wc -l当前打开的最大的连接数5,找到问题,解决,修改supervisord.conf6, 重启服务supervisorctl reload...
PHP-FPM参数配置 一,众所周知,fpm管理着php进程那么在实际生产过程中,fpm连接数大小的配置就关系着服务的性能和响应时间fpm在配置最大连接数有几个关键参数pm = static; The number of child processes to be created when pm is set to 'static' and the; maximum number of child processes when pm is set to 'dynamic' or 'ondemand'.; Th
ELK接入笔记 1,获取filebeat源wget 10.19.68.93:9999/filebeat-7.7.1.tar.gz2,修改配置1,filebeat.yml2, filebeat.servicevim filebeat.yml:filebeat.inputs:- type: log enabled: true paths: - /home/work/log/app/test/* fields: source: test-log###分割线s.
MYSQL底层原理 写在前面:本文转载自别人拜读了这位老哥的博客,写得很详细,我只写上链接,不copy原文,有兴趣的朋友可以去原文看看里面详细得介绍了1,INNODB与MYISAM的区别原理,底层实现2,B+TREE在两种不同引掣上实现的差异3,磁盘存取的流程4,为什么选择用B+TREE,而不是B-TREE,二叉,红黑,或者HASH文章干货很多,深入浅出,而不是常见文章中的,INNO...
mac下面安装php56 brew update##执行如下命令brew install php56--without-snmp--without-apache--with-debug--with-fpm --with-intl --with-homebrew-curl --with-homebrew-libxslt --with-homebrew-openssl --with-imap --with-mysql -...
proto输出PHP文件 不同端的主流通信方式是用rpc,但是,不同语言之前的通信也会用到grpc在项目开发过程中,就遇到了这样一个案例,架构组的同事用java开发,给了我一个.proto的文件,需要将这个文件转成对应的PHP文件,进行内部调用 需求分析完毕,开始上步骤 一,将.proto文件上传到一个装有protoc 源包的机器上,进行编译操作,在最开始进行编译的时候,踩了很多坑,还咨询了之前用过的同事,结...
mac下面集成phpunit 因为工作需要进行单元测试,所以自己小小的研究了一下在mac下面如何集成phpunit 首先下载phpunit与Php对应支持的版本 我下载的是phpunit4的最后一个版本,因为支持5.5链接是:https://phar.phpunit.de/下载完成后,将其放在/usr/local/bin命令如下:cp phpunit-4.8.9.phar /usr/local/bin/增加执行权限sud...
centos 7 下面重装mysql5.6 今天由于自己忘了mysql的密码,而且怎么也进入不了安全模式,于是就决定重装mysql,也算是复习一下,当然在真正的开发生产环境中不建议这种做法。 首先查找系统中mysql的位置,因为我之前也是编译安装的,所以是用的: find / -name 'mysql' | xargs rm -rf 建议先进行查看再用这条命令进行删除操作另外,如果你是用的rpm的形式安装的,就需要用到rpm remov...
redis -- 学习笔记 一,原理 redis是一个k/v(键值对)的内存存储系统,类似于memcached,redis支持多种的数据类型 基础的有:1),基础的有:1,string:字符串,在redis中可以用一个动态的字符串型的抽象类型(len.free,buf),O(1)去获取字符串,而C的string类型需要O(n)的时间复杂度,因为需要遍历2,hash:哈希表,在redis中使用了hashm...
数据结构与算法(学习笔记)一 前几天一直在不停的面试,发现,大公司特别喜欢考到数据结构与算法,小公司喜欢问你会不会这啊那啊的工具,但是,不能被带跑偏了,造轮子的工具要会用,但是,工具的是什么做成的,这些底层原理还是要掌握。自己在这块儿的知识还有一些薄弱,所以打算写BLOG记录自己的学习过程,一是为了记录,二是为了监督自己stack 栈,先进后出的原则heap 堆,最优排列或称为完全二叉树,有最大堆和最小堆两种类型lis...
在centos7安装docker遇到了无法启动的问题 cetnos 7下面安装docker 要求系统为64位、系统内核版本为 3.10 以上unmae -r 查看第一种方法: 一键安装yum -y install docker (自己采用)第二种方法:采用网络命令行去抓取curl -fsSL https://get.docker.com/ | sh启动systemctl start docker.service 查看状态systemctl sta...
mac下ssh连接linux服务器设置免密登陆 这是自己的第一篇blog首先,因为自己工作需要经常会在mac电脑上连接服务器,以前一直使用的第三方的ssh连接工具但是,由于第三方的发的工具有的是英文的,有的是收费的,汉化的又有些功能不太完整,直到后面在网上查了一下,可以用终端设置到系统配置文件里,让你的登陆指令变成系统命令,实现免密登陆自己也是为了方便总结和记录,遂写下这篇博客好了费话不多说,开始第一步:生成rsa公钥和秘钥,ssh-keyge...