其他
奔跑的码农
热爱web开发,热爱生活!
展开
-
进入Docker容器的两种方法
常见的两种方法:docker exec -it 容器ID /bin/bashdocker attach 容器ID推荐使用第一种方式。原创 2020-05-19 14:54:18 · 1188 阅读 · 1 评论 -
Linux服务器问题排查思路及常用命令
文章来源:https://www.toutiao.com/i6812494040383095308/http://url.cn/5d9a0qf作为一名合格的开发人员,特别是做后端的同学,经常会遇到各种各样的问题。内存问题free命令用于查看内存的使用情况,在Linux上,很多人会用top显示系统内存,但是不够直观,top通常我们用于查看CPU的占用率。Linux下查看内容的专...转载 2020-04-06 15:29:46 · 1406 阅读 · 0 评论 -
开源监控系统Prometheus基本介绍及应用展示
Prometheus是一个Google开源的服务监控系统,它通过HTTP协议收集服务数据并存储在本地的时序数据库上。作为新一代的监控系统,Prometheus具有以下特点: 多维数据模型:时间序列由指标名称定义和键/值设置; PromSQL:一种灵活的查询语言,可以利用多维数据完成复杂的查询; 不依赖分布式存储,单节点即可运行; 基于HTTP的Pull...转载 2020-04-03 23:07:53 · 693 阅读 · 0 评论 -
2020年4月份DB-Engines数据库最新排名
2020年4月份最新的DB-Engines数据库排名出来了,截止目前,该网站实时统计了354种数据库的排名指数,其根据来源于Google,Bing 和Yandex搜索引擎及Stack Overflow、DBA Stack Exchange、LinkedIn、twitter等知名开发者社区和职场社交网络。前20名数据如下:变化趋势图:如果说里面的大部分都不...原创 2020-04-02 15:38:59 · 2079 阅读 · 0 评论 -
Linux进程上下文概念详解
一、上下文基本概念进程上下文和中断上下文是操作系统中很重要的两个概念,这两个概念在操作系统课程中不断被提及,是最经常接触、看上去很懂但又说不清楚到底怎么回事。造成这种局面的原因,可能是原来接触到的操作系统课程的教学总停留在一种浅层次的理论层面上,没有深入去研究。处理器总处于以下状态中的一种:1、内核态,运行于进程上下文,内核代表进程运行于内核空间;2、内核态,运行于中断上下文,内核代表硬...原创 2020-03-15 18:47:03 · 1651 阅读 · 0 评论 -
史上最好用的云盘 - OneDrive介绍(附带15G推荐链接)
非常重要:先注册账号,再继续往下看注册地址:点我注册使用教程Excel for Office 365Word for Office 365PowerPoint for Office 365Publisher for Office 365通过将文件保存到云,你可以从任何位置进行访问,且可轻松地与家人和朋友进行共享。 若要联机保存文档OneDrive,请登录Office。...原创 2019-10-31 10:56:00 · 8302 阅读 · 0 评论 -
TCP报文中的sackOK含义和作用
一般TCP的ACK过程 在TCP的交互过程中,除了第一个SYN请求报文的ACK标志未置1外,其他的报文的ACK标志都是置1的。当客户端与服务器在交互的过程中,某些数据报被丢弃时,其ACK确认和后续数据交互的过程如下图所示:在上图所示的交互过程中,我们可以清楚的发现,在交互中由于某些未知的不可控的原因导致包含data-2的数据报文丢失。虽然仅有包含data-2的报文丢失,客户端已经收到其...原创 2018-04-08 16:30:04 · 4866 阅读 · 0 评论 -
TCP/IP协议栈中的TimeStamp选项
TCP应该是以太网协议族中被应用最为广泛的协议之一,这里就聊一聊TCP协议中的TimeStamp选项。这个选项是由RFC 1323引入的,该C建议提交于1992年,到今天已经足足有20个年头。不过相信大部分程序猿对这个建议还是相当陌生。要理解为啥需要用TimeStamp选项,还需要从TCP协议的几个基本设计说起。TCP协议的几个设计初衷,以及引发的问题:1. 协议规定收端不需要响应每一个收到的数据...转载 2018-04-08 17:04:47 · 868 阅读 · 0 评论 -
Wireshark抓包分析一个耗时20秒的请求
这篇博文分享的是我们针对一个耗时20秒的请求,用Wireshark进行抓包分析的过程。请求的流程是这样的:客户端浏览器 -> SLB(负载均衡) -> ECS(云服务器) -> SLB -> 客户端浏览器。下面是分析的过程:1. 启动Wireshark,针对内网网卡进行抓包。2. 在IIS日志中找出要分析的请求(借助Log Parser Studio)通过c-ip(Clie...转载 2018-04-08 17:38:08 · 12653 阅读 · 1 评论 -
进程:linux用户态-内核态
用户态:Ring3运行于用户态的代码则要受到处理器的诸多检查,它们只能访问映射其地址空间的页表项中规定的在用户态下可访问页面的虚拟地址,且只能对任务状态段(TSS)中I/O许可位图(I/O Permission Bitmap)中规定的可访问端口进行直接访问。内核态:Ring0在处理器的存储保护中,核心态,或者特权态(与之相对应的是用户态),是操作系统内核所运行的模式。运行在该模式的代码,可以无限制...转载 2018-04-09 10:41:11 · 620 阅读 · 0 评论 -
Ajax跨域Cookie相关设置
在Web编程中我们经常会遇到跨域的问题。默认情况下,浏览器是不允许跨域访问的。所以说,在这里就有一个概念:CORS(Cross-Origin Resource Sharing)跨域资源共享。在HTML5标准出来之前,CORS是不被允许的。但是为了达到跨域访问资源的目的,出现了很多较麻烦的方式:jsonp、代理文件、地址栏hash等等。随着HTML5的出现,CORS为我们解决了一个大麻烦。CORS的...转载 2018-04-09 17:27:02 · 533 阅读 · 0 评论 -
socket编程实现简单的http server
在了解HTTP协议在应用层的一些通信规则后,我们可以开始写一个简单的http server,加深对socket的理解。为了简单起见,这里不对请求的方法等进行判定,默认为GET;也不请求特定资源。(一)TCP服务器简单起见,这里用简单的单线程迭代服务器,即在一个while循环里面不断接收请求处理请求。套接字函数这里的所有的套接字函数都是使用unp中的包裹函数:int Socket(int ,int,...原创 2018-03-28 17:55:45 · 6951 阅读 · 2 评论 -
浏览器渲染原理简介
看到这个标题大家一定会想到这篇神文《How Browsers Work》,这篇文章把浏览器的很多细节讲得很细,而且也被翻译成了中文。为什么我还想写一篇呢?因为两个原因,1)这篇文章太长了,阅读成本太大,不能一口气读完。2)花了大力气读了这篇文章后可以了解很多,但似乎对工作没什么帮助。所以,我准备写下这篇文章来解决上述两个问题。希望你能在上班途中,或是坐马桶时就能读完,并能从中学会一些能用在工作上的...原创 2018-03-29 11:37:36 · 227 阅读 · 0 评论 -
SCTP协议详解
SCTP (Stream Control Transmission Protocol)是一种传输协议,在TCP/IP协议栈中所处的位置和TCP、UDP类似,兼有TCP/UDP两者特征。SCTP是可以确保数据传输的,和TCP类似,也是通过确认机制来实现的。和TCP不同的是:1. TCP是以字节为单位传输的,SCTP是以数据块为单位传输的TCP接收端确认的是收到的字节数,SCTP接收端确认的是接收到的...转载 2018-03-29 15:35:38 · 57635 阅读 · 6 评论 -
Mac下使用vscode搭建python3开发环境
##Mac下使用vscode搭建python3开发环境1、 安装python插件、code runner插件;2、“Command + ,” 打开settings.json文件,添加以下配置:{ # 输出到终端 "code-runner.runInTerminal": true, # 更换编辑器解析器路径(换成你自己的) "python.pythonPath": "/usr/lo...原创 2019-07-29 18:03:49 · 6033 阅读 · 0 评论 -
wireshark抓包常见提示含义解析
原文转自:http://blog.sina.com.cn/s/blog_987e00020102wq60.html http://www.cnblogs.com/redsmith/p/5462547.html=========================================================================1.[Packet s...转载 2018-04-08 14:52:23 · 1113 阅读 · 0 评论 -
从文件 I/O 看 Linux 的虚拟文件系统
1 引言Linux 中允许众多不同的文件系统共存,如 ext2, ext3, vfat 等。通过使用同一套文件 I/O 系统调用即可对 Linux 中的任意文件进行操作而无需考虑其所在的具体文件系统格式;更进一步,对文件的操作可以跨文件系统而执行。如图 1 所示,我们可以使用 cp 命令从 vfat 文件系统格式的硬盘拷贝数据到 ext3 文件系统格式的硬盘;而这样的操作涉及到两个不同的文件系统。...转载 2018-03-30 10:53:37 · 421 阅读 · 0 评论 -
详解Nginx中HTTP的keepalive相关配置
这篇文章主要介绍了Nginx中HTTP的keepalive相关配置,以及Nginx的Httpd守护进程相关的keepalive timeout配置,需要的朋友可以参考下。http keepalive在http早期 ,每个http请求都要求打开一个tpc socket连接,并且使用一次之后就断开这个tcp连接。使用keep-alive可以改善这种状态,即在一次TCP连接中可以持续发送多份数据而不会 ...转载 2018-03-29 17:30:26 · 7958 阅读 · 0 评论 -
Git简要教程
Git是一个分布式的版本控制系统,最初由Linus Torvalds编写,用作Linux内核代码的管理。原创 2016-09-18 22:28:34 · 281 阅读 · 0 评论 -
CentOS搭建Git服务器
1、首先需要安装Git,可以使用yum源在线安装:[root@localhost Desktop]# yum install -y git2、创建一个git用户,用来运行git服务[root@localhost Desktop]# useradd -r -s /bin/sh -c 'git version control' -d /home/git git原创 2016-12-27 14:49:31 · 357 阅读 · 0 评论 -
Docker命令大全
Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口。原创 2017-01-20 15:09:56 · 647 阅读 · 0 评论 -
CentOS 添加环境变量
针对某个用户:在用户目录下的.bash_profile文件中增加变量用vi在用户目录下的.bash_profile文件中增加变量,改变量仅会对当前用户有效,并且是“永久的”。# vim /root/.bash_profile# .bash_profile# Get the aliases and functionsif [ -f ~/.bashrc ]; then原创 2017-06-02 16:13:54 · 5108 阅读 · 0 评论 -
SVN cleanup 失败的解决方法
使用SVN工具执行Cleanup操作时偶尔会出现Cleanup failed to process the following paths的错误:网上搜索了一下,找到了靠谱的方法:对于TortoiseSVN客户端1.7以前的版本加锁文件是一个lock后缀的文件,直接在报错目录的.svn(需打开隐藏目录)目录下删除即可。而TortoiseSVN客户端1.7版以后(含1原创 2017-06-28 20:15:32 · 1498 阅读 · 0 评论 -
Linux 查看端口占用
有时候关闭软件后,后台进程死掉,导致端口被占用。1.查找被占用的端口;2.查看端口属于哪个程序?端口被哪个进程占用;3.杀掉占用端口的进程 根据pid杀掉。原创 2017-04-17 20:35:09 · 5054 阅读 · 0 评论 -
浮点数的陷阱
来看一个常见的例子:<?php $a = 0.58; var_dump(intval($a * 100));?>上面代码会输出多少?答案是57。原因就是浮点数的精度问题。0.58的二进制表示为:0010100011110101110000101000111101011100001010001111所以0.58≈0.57999999999999996原创 2017-09-30 10:15:33 · 601 阅读 · 0 评论 -
压力测试工具Siege详解
简介Siege是一个多线程http负载测试和基准测试工具,可以根据配置对一个WEB站点进行多用户的并发访问,记录每个用户所有请求过程的相应时间,并在一定数量的并发访问下重复进行。安装直接到官网(http://www.joedog.org)下载最新安装包。wget -c http://download.joedog.org/siege/siege-latest.tar.g原创 2017-09-30 16:30:14 · 2067 阅读 · 0 评论 -
小白入门:Git简明教程
原文出处:架构之美Git的前世今生学过计算机的都应该知道,Linus在1991年创建了Linux操作系统,并从那时起开始不断壮大,逐渐成为全世界最大的服务器操作系统。那么,如此庞大的系统应该如何管理其代码呢?2002年之前,大神Linus本人以手工方式合并代码。再之后BitMover公司出于人道主义精神,授权Linux社区免费使用BitKeeper这个商业性的版本控制系统。再之转载 2017-12-26 15:17:35 · 870 阅读 · 0 评论 -
Python破解12306图片验证码
不知从何时起,12306的登录验证码竟然变成了按字找图,可以说是又提高了一个等次,竟然把图像识别都用上了。不过有些图片,不得不说有些变态,图片的清晰图就更别说了,明显是从网络上的图库中搬过来的。谁知没多久,网络就惊现破解12306图片验证码的Python代码了,作为一个爱玩爱刺激的网虫,当然要分享一份过来。代码大致流程:1、将验证码图片下载下来,然后切图;原创 2017-12-27 20:02:43 · 9450 阅读 · 6 评论 -
详解一致性哈希算法(consistent hashing)
一致性哈希算法在1997年由麻省理工学院提出的一种分布式哈希(DHT)实现算法,设计目标是为了解决因特网中的热点(Hot spot)问题,初衷和CARP十分类似。一致性哈希修正了CARP使用的简 单哈希算法带来的问题,使得分布式哈希(DHT)可以在P2P环境中真正得到应用。 一致性hash算法提出了在动态变化的Cache环境中,判定哈希算法好坏的四个定义:1转载 2017-12-28 11:41:19 · 890 阅读 · 0 评论 -
Linux系统中的进程间通信方式
同一主机上的进程通信方式UNIX进程间通信方式: 包括管道(PIPE), 有名管道(FIFO), 和信号(Signal)。管道(PIPE):管道是一种半双工的通信方式,数据只能单向流动,而且只能在具有亲缘关系(父子进程)的进程间使用。另外管道传送的是无格式的字节流,并且管道缓冲区的大小是有限的(管道缓冲区存在于内存中,在管道创建时,为缓冲区分配一个页面大小)。有名管道 (FIF原创 2017-12-28 14:36:10 · 666 阅读 · 0 评论 -
Linux tcpdump命令详解
简介用简单的话来定义tcpdump,就是:dump the traffic on a network,根据使用者的定义对网络上的数据包进行截获的包分析工具。 tcpdump可以将网络中传送的数据包的“头”完全截获下来提供分析。它支持针对网络层、协议、主机、网络或端口的过滤,并提供and、or、not等逻辑语句来帮助你去掉无用的信息。 实用命令实例默认启动tc转载 2018-01-04 17:34:46 · 552 阅读 · 0 评论 -
Markdown语法简介
Markdown 是一种轻量级标记语言,它允许人们使用易读易写的纯文本格式编写文档,然后转换成格式丰富的HTML页面。原创 2016-07-25 14:27:40 · 320 阅读 · 0 评论