跳转至

所有文章

Pandas完全指南

前言

Pandas 是一个Python语言实现的,开源,易于使用的数据架构以及数据分析工具。在Pandas中主要有两种数据类型,可以简单的理解为:

  • Series:一维数组(列表)
  • DateFrame:二维数组(矩阵)

在线实验:Pandas完全指南.ipynb

学习资料:

导入pandas

import pandas as pd
import numpy as np
from IPython.display import Image

高并发情况下服务器调优

TCP内核参数调优

调整全连接队列长度

TCP 建立连接时要经过 3 次握手,在客户端向服务器发起连接时, 对于服务器而言,一个完整的连接建立过程,服务器会经历 2 种 TCP 状态:SYN_REVD, ESTABELLISHED。对应也会维护两个队列:

  1. 一个存放SYN的队列(半连接队列,也成SYN队列)
  2. 一个存放已经完成连接的队列(全连接队列, 也称Accept队列)

当一个连接的状态是 SYN RECEIVED 时,它会被放在 SYN 队列中。 当它的状态变为 ESTABLISHED 时,它会被转移到另一个队列。应用程序只从已完成的连接的队列中获取请求。

在Redis中使用Lua脚本

简介

Lua诞生于1993年,是一种脚本语言,用C语言编写,其设计目的是为了快捷、高效嵌入到程序应用,比如Nginx服务器脚本。Redis从2.6.0版本开始内置Lua解释器,支持使用Eval命令运行Lua脚本。

在Redis中使用Lua脚本有两大特性:

  1. 原子性

    Redis使用单个Lua解释器去运行所有脚本,当其在运行时,其他脚本或命令执行只能等待,这保证脚本已原子性方式运行。

  2. 高性能

    Lua脚本一次可以执行多个redis命令,可以减少网络开销。对于较大脚本可以先使用SCRIPT LOAD 命令将其加载缓存中,然后使用EVALSHA运行近一步减少网络开销

在Linux中如何使用logrotate管理日志

原文:How To Manage Log Files Using Logrotate In Linux

几天前,我们发布了一份指南,介绍了如何在CentOS系统上设置集中式Rsyslog服务。今天,在本指南中,我们将了解如何在Linux上使用日志轮换来管理日志文件。该实用程序简化了日志文件的管理,尤其适用于每天生成大量日志文件的系统。顾名思义,LogRotate以固定的时间间隔将日志完全从系统中轮转出来。它还允许日志文件的自动轮转、压缩、删除和传输。每个日志文件可以每天、每周、每月或在变得太大时处理。

Elasticsearch小技巧之版本号比较过滤筛选

安卓应用的版本信息分为版本名和版本号两部分。版本名是语义性版本,一般格式是主版本号.次版本号.修订版本号;版本号格式是数字。

应用新版本的版本号一定要旧版本要大,因为安卓系统在安装升级应用时候,会检查应用的版本号是否大于手机内已安装的该应用的版本号,若小于则直接拒绝升级此应用。

在开发需求中,有时候会需要根据应用的版本名进行筛选应用,比如筛选版本名大于7.33.1的Netflix应用,此时若直接把每个应用的版本名索引到es里面,然后根据版本名字段range范围查询,这是有问题的。比如12.8.1版本是高于7.31.1版本的,因为在es里面是按照字符串逐字比较的,导致出现相反结果。

Awk三十分钟入门到精通

简介

Awk是Linux系统中强大的文本处理命令工具。它名字来源于它的创始人 Alfred Aho 、Peter Weinberger 和 Brian Kernighan 姓氏的首个字母。Awk是一个工具,也是一种程序语言,类似c语言,但无需提前进行变量声明定义。一个Awk程序由一系列的模式(pattern)和动作(action)组成, 模式用于描述在输入的文本中搜索哪些数据, 当某一行文本搜索到(即匹配某个模式)之后,动作定义了如何操作该行文本。

程序格式

一个awk程序格式如下:

pattern { action }

awk的操作逻辑是扫描文本每一行, 搜索可以被模式(pattern)匹配的行, 若行能够匹配模式,则接着进行执行动作(action)。

在扫描每一行过程中,awk会自动把当前行分解为一个个的字段,默认是空格进行分割,\(0表示当前行内容,\)1为当前行的第一段,$2为当前行的第二段,以此类推。

《Nginx Cookbook 2019》中文版第三章流量管理

3.0 Introduction

NGINX and NGINX Plus are also classified as web traffic control‐ lers. You can use NGINX to intellengently route traffic and control flow based on many attributes. This chapter covers NGINX’s ability to split client requests based on percentages, utilize geographical location of the clients, and control the flow of traffic in the form of rate, connection, and bandwidth limiting. As you read through this chapter, keep in mind that you can mix and match these features to enable countless possibilities.

《Nginx Cookbook 2019》中文版第二章高性能负载均衡

2.0 Introduction-简介

Today’s internet user experience demands performance and uptime. To achieve this, multiple copies of the same system are run, and the load is distributed over them. As the load increases, another copy of the system can be brought online. This architecture technique is called horizontal scaling. Software-based infrastructure is increasing in popularity because of its flexibility, opening up a vast world of possibilities. Whether the use case is as small as a set of two for high availability or as large as thousands around the globe, there’s a need for a load-balancing solution that is as dynamic as the infrastructure. NGINX fills this need in a number of ways, such as HTTP, TCP, and UDP load balancing, which we cover in this chapter.

当今的互联网用户体验要求性能和时时在线。为了达到这个目的,同一个系统的多个副本需同时运行,并且将负载分布在这些副本上。随着负载的增加,系统的另一个副本可以联机。这种架构技术被称为水平拓展。基于软件的基础设施因其灵活性而越来越受欢迎,开辟了一个广阔的无限可能的世界。对于高可用性而言,用例小到两个,还是在全球范围内成千上万个,都需要一个与基础架构一样动态的负载均衡解决方案。NGINX以多种方式满足这一需求,我们在本章中将讨论超文本传输协议(HTTP)、TCP和UDP的负载平衡。

《Nginx Cookbook 2019》中文版第一章基础知识

0.0 最前面话

最近看了一本关于NGINX的电子书,编排形式比较新颖,通过一问一答的方式来告诉读者如何快速上手NGINX,以及处理真实项目中的需求。书的内容简练概括,但涉及面较多,内容有4层和7层负载均衡,A/B测试,自动化部署,认证,Http2,debug和调优等,有些示例可以拿来直接用。由于原书暂无中文译本,姑且尝试翻译一下,90%机器翻译,10%人工修正。原书信息如下:

1.0 Introduction-简介

To get started with NGINX Open Source or NGINX Plus, you first need to install it on a system and learn some basics. In this chapter you will learn how to install NGINX, where the main configuration files are, and commands for administration. You will also learn how to verify your installation and make requests to the default server.

要开始使用开源版NGINX或NGINX Plus,你首先需要将在操作系统里面安装上并学习一些相关的基础知识。在本章中,你将学习如何安装nginx,其主要配置文件所在位置,以及管理命令。你还将学习如何验你的安装并向默认服务器发送请求。

Ansible如何通过跳板机连接目标机器

Ansible是配置管理工具,能够自动化部署,管理服务器。在实际工作中,我会用ansible来进行项目依赖的服务部署,比如nginx服务器,redis等部署。

在生产环境下,多台服务器往往部署在一个局域网内,没有公网ip,也不会对外暴露端口,这就导致本地不能通过ssh直接连接生产服务器。它需要连接到跳板机后然后再进行生产服务器操作。通过跳板机操作一来更安全,二来可以更好的监控和权限控制,但如果想要本地使用ansible对服务器进行操作,就被限制住了。此时我们可以更改ssh配置进行处理,已达到本地机器"直接"连接远程生产机器的目的。