Home >
  • 【工作】无网环境下使用pip离线安装Python包

    【写在前面】: 对于有些线上服务器是无法连接外网的,而安装一些python包所需依赖太多,如果无法在线安装会被依赖搞到死...,所以记录下离线安装python包的方法。 【文章内容】 主要涉及的思路: 1.在可以上网的服务器下载所有的安装依赖包 2.将下载好的依赖包上传到目标服务器使用pip离线安装 操作步骤: 1.首先需要保证两个服务器上面都安装了pip,安装方法如下:   方法一:在线安装 # yum install pip   方法二:离线安装 (1).安装setuptools 从setuptools官网 https://pypi.python.org/pypi/setuptools下载...
    阅读全文 →
  • 【理论】Linux bond 网卡绑定配置和模式详解

    【文章内容】 将多个Linux网络端口绑定为一个,可以提升网络的性能,比如对于备份服务器,需要在一个晚上备份几个T的数据,如果使用单个的千兆网口将会是很严重的瓶颈。其它的应用,比如ftp服务器,高负载的下载网站, 都有类似的问题。因此使用Linux teaming或bond来绑定多个网卡作为一个逻辑网口,配置单个的IP地址,会大幅提升服务器的网络吞吐(I/O)。 Linux的多网卡绑定功能使用的是内核中的"bonding"模块,关于此模块可以参考Linux Ethernet Bonding Driver文档, 但是目前发布各个Linux版本内核均已包含了此...
    阅读全文 →
  • 【案例】荔枝FM架构师刘耀华:异地多活IDC机房架构

    多机房架构存在的原因 单机房一旦死机,断电、维护根本无法挽回整个数据,想离线读取等都不行。当一个机房不可用,所有的业务就都不可用。荔枝 FM 要求业务离用户最近,南方的用户连南方的机房,北方的用户连北方的机房,国外的用户连国外的机房。大陆的网络和国外的网络有一定的隔离性,如果没有做多机房的连通性,数据的传输和实时性就会有问题。 跨机房的作用是为了备份,一个机房的数据放在另一个机房是异地多活。上面是数据容灾,下面的是业务容灾,第三个是让服务离用户最近。这是荔枝 FM 做跨机房的原因...
    阅读全文 →
  • 【分享】线上环境到底要不要开启query cache

    【文章内容】 Query Cache(查询缓存,以下简称QC)存储SELECT语句及其产生的数据结果,特别适用于:频繁提交同一个语句,并且该表数据变化不是很频繁的场景,例如一些静态页面,或者页面中的某块不经常发生变化的信息。QC有可能会从InnoDB Buffer Pool或者MyISAM key buffer里读取结果。 由于QC需要缓存最新数据结果,因此表数据发生任何变化(INSERT、UPDATE、DELETE或其他可能产生数据变化的操作),都会导致QC被刷新。 根据MySQL官方的测试,QC的优劣分别是: 1、如果对一个表执行简单的查询,但每次查询都不...
    阅读全文 →
  • 【理论】Ansible常用模块汇总详解

    二手攻城狮  /
     / 自动运维
    【写在前面】 文章内容是我很早之前搜集网上的资料归纳总结的Ansible常用的一些模块介绍,原文那些地址忘记了,权当记录查询使用,今后有新的模块资料也会记录到这篇文章中。 【文章内容】 (1)、fetch模块: 作用: 文件拉取模块,主要是将远程主机中的文件拷贝到本机中,和copy模块的作用刚刚相反,并且在保存的时候使用hostname来进行保存,当文件不存在的时候,会出现错误,除非设置了选项fail_on_missing为yes 参数说明: Dest :用来存放文件的目录,例如存放目录为backup,源文件名称为/etc/profile在主机py...
    阅读全文 →
  • 【案例】nice公司服务端架构重构与演进

    作者简介: 雷果国,2014 年 11 月加入 nice,负责服务端在线业务,擅长 PHP,曾自发翻译过《Extending and Embedding PHP》一书及PHP官方手册部分模块。喜欢利用所学构建自己的工具链,思考系统和架构设计方面的问题。 文章内容: nice 是一款图片社交 App,目标是让人们发现生活的美好。产品的核心体验是基于生活方式的社交。 我们期望通过图片、直播、标签、潮牌新品等方式,让用户表达自己的生活方式,以这些内容作为基础,为用户提供社交场景。产品方面,目前我们仍然在积极探索怎样更好的为用户提供这种价值...
    阅读全文 →
  • 【分享】NFS原理和搭建详解

    从头开始  /
     / 应用服务
    一、NFS介绍 1)什么是NFS 它的主要功能是通过网络让不同的机器系统之间可以彼此共享文件和目录。NFS服务器可以允许NFS客户端将远端NFS服务器端的共享目录挂载到本地的NFS客户端中。在本地的NFS客户端的机器看来,NFS服务器端共享的目录就好像自己的磁盘分区和目录一样。一般客户端挂载到本地目录的名字可以随便,但为方便管理,我们要和服务器端一样比较好。 NFS一般用来存储共享视频,图片等静态数据。 《什么是NFS》 就是通过网络共享目录,让网络上的其他服务器能够挂载访问共享目录内的数据。(一般共享视频...
    阅读全文 →
  • 【工作】KVM启动虚拟机报错:error: Unable to read from monitor: Connection reset by peer

    报错现象: 线上有台虚拟机关闭很久没用了,重新启用的时候发现无法启动,报错现象如下:   # virsh start win2008 error: Failed to start domain win2008 error: Unable to read from monitor: Connection reset by peer   解决过程: 根据网上的说法是执行下面的命令即可:   # virsh managedsave-remove  win2008   但是我执行后启动还是报错,最后经过排查发现,是服务器内存不足导致无法启动,cache里面有大量的缓存占用,如果是非生产环境可以重启服务器,但是生产环境则不行,可以按照下面的方法释放内存...
    阅读全文 →
  • 【分享】NGINX访问https跳转到http的解决方法

    问题: 浏览器打开https://www.ttlsa.com/aaa.html,然后跳转到http://www.ttlsa.com/aaa.html 网站架构:用户--https--->nginx代理---http---->tomcat/nginx+php nginx转发给后端的请求是http协议,后端程序跳转获取到的协议是http,返回一个redirect(http header中带Location:http://www.ttlsa.com/aaa.html),浏览器收到location,跳转到了location指定的地方。 解决方法 解决方法1: 在nginx代理中增加一个header,标志用户请求是http还是https,后端获取header决定跳转到http/https页面。这个方法需...
    阅读全文 →
  • 【工作】Linux使用非root用户启动Apache、Nginx等服务的方法

    【写在前面】 对于Linux系统而言,普通用户只能使用1024以上的端口启动服务,而1024以内的端口只能由root用户使用,而通常像apache或者Nginx等服务,使用最多的是80和443端口,如果通过其他非root用户启动,就会报错如下: (13)Permission denied: make_sock: could not bind to address [::]:80 (13)Permission denied: make_sock: could not bind to address 0.0.0.0:80 no listening sockets available, shutting down 一般情况下,线上的web服务都会使用root用户来启动,但是有时候为了安全或者是某些特殊...
    阅读全文 →
  • 【理论】详解tcp的半连接与完全连接队列

    二手攻城狮  /
     / 基础知识
    【写在前面】 前面转了一篇关于TCP全连接和半连接介绍的文章,感觉还是理解的不够深刻,网上又搜索了一篇,整篇文章都是详细解释这个知识点的,感觉不错,转载记录下。 【文章正文】 队列及参数 server端的半连接队列(syn队列) 在三次握手协议中,服务器维护一个半连接队列,该队列为每个客户端的SYN包开设一个条目(服务端在接收到SYN包的时候,就已经创建了request_sock结构,存储在半连接队列中),该条目表明服务器已收到SYN包,并向客户发出确认,正在等待客户的确认包(会进行第二次握手发送SYN+ACK 的包加...
    阅读全文 →
  • 【理论】关于TCP 半连接队列(syns)和全连接队列(accpet)

    阿里中间件团队博客  /
     / 基础知识
    【写在前面】 文章转载自阿里中间件团队博客,前半部分先介绍了一起由于tcp连接队列参数配置不当,导致的client端连接异常问题的解决过程,后半着重分析了TCP 半连接队列和全连接队列原理,文章写的不错,值得推荐。 【文章内容】 最近碰到一个client端连接异常问题,然后定位分析并查阅各种资料文章,对TCP连接队列有个深入的理解 查资料过程中发现没有文章把这两个队列以及怎么观察他们的指标说清楚,希望通过这篇文章能把他们说清楚一点 问题描述 JAVA的client和server,使用socket通信。server使用NIO。 1.间...
    阅读全文 →
  • 【工作】Nginx使用stream模块实现TCP负载均衡(TCP协议转发、Socket转发)

    二手攻城狮  /
     / 工作记录
    【写在前面】 线上新项目,研发想实现使用Nginx做socket转发做负载均衡,其实说白了就是想实现基于TCP协议的后端业务的高可用。一般来说Nginx可以做http协议转发,并不支持tcp协议,但是从1.9.0版本开始增了“ngx_stream_core_module”模块,可以用于TCP协议的代理和负载均衡功能实现。 【模块介绍】 ngx_stream_core_module模块默认是没有编译的,需要编译安装Nginx时添加"--with-stream"配置参数。下面是官方网站上的一个示例:地址:http://nginx.org/en/docs/stream/ngx_stream_core_module.html   worker_proce...
    阅读全文 →
  • 【工作】Centos上使用命令行形式安装启动Juniper客户端

    二手攻城狮  /
     / 工作记录
    【写在前面】 公司有个新项目是跟浙商银行合作,研发需要连接到浙商银行内网去获取数据并开发。 现在情况是行方要求走专线或者vpn形式,由于专线申请需要一定的时间,所以前期采取vpn方式,而银行方提供的vpn为 Juniper Network Connect,需要在window环境下登录web端,安装软件登陆,现在研发想实现在linux系统下连接登录并开发,由于银行方也不清楚Juniper 在linux下的安装方式,所以将安装成功方法记录下。 【安装过程】 1、安装软件运行的依赖库 说明:目前基本线上的服务器都适用的64位系统,而客户端软件需要3...
    阅读全文 →
  • 【案例】魅族实时消息推送架构

    作者简介: 于小波,2011年加入魅族,现在在移动互联网部门,负责服务器后台架构和开发工作。 系统介绍 这个系统数据情况是这样的,实时在线的用户是2500万左右,下面有一个趋势图,从今年1到10月份的都列出来了,这个系统一天PV量是50亿左右,这个系统推送速度可以达到600万条/分钟。 系统架构设计 系统架构逻辑上划分,划分为四层,最下面的一个是提供魅族手机的接入。第二层是消息分发服务,主要的作用就是提供上行消息的路由和用户下行消息的路,这边有一个用户路由表。第三层是订阅信息,第四层是存储,包括...
    阅读全文 →
  • 【案例】美团在Redis上踩过的一些坑

    Java我人生  /
     / 企业案例
    【写在前面】 网上很不错的一篇介绍美团redis在实际线上应用中遇到的问题和解决办法,文章的初始来源是哪个博客不确定,只知道是作者参加了360组织的互联网技术训练营第三期,总结了美团网的DBA负责人侯军伟给大家介绍的美团网在redis上踩得一些坑,讲的都是干货和坑,很具有参考学习价值,转载记录。 【文章内容】 分为5个部分: 一、周期性出现connect timeout 二、redis bgrewriteaof问题 三、redis内存占用飙升 四、redis内存使用优化 五、redis cluster遇到的一些问题 一、周期性出现connect timeout...
    阅读全文 →
  • 【分享】Redis性能问题排查解决思路

    写在前面: 网上看到的一篇关于 Redis性能问题排查的文章,感觉受益匪浅,文章是作者翻译的一个英文电子书其中一篇,推荐有需要了解Redis方面知识的人看下,尤其是Redis方面的运维工程师。 阅读目录: 性能相关的数据指标 内存使用率used_memory 命令处理总数total_commands_processed 延迟时间 内存碎片率 回收key 总结 性能相关的数据指标 通过Redis-cli命令行界面访问到Redis服务器,然后使用info命令获取所有与Redis服务相关的信息。通过这些信息来分析文章后面提到的一些性能指标。 info命令输出的数据可...
    阅读全文 →
  • 【工作】解决Python导入ssl模块报错:ImportError: No module named _ssl

    报错现象: python导入ssl模块报错: ImportError: No module named _ssl   更新:如果报如下错误,也是同样的原因和解决办法 ImportError: cannot import name 'HTTPSHandler' 报错原因和解决办法: 网上很多博客都是说系统没有安装openss和openssl-devel软件,需要安装两个软件,重新编译安装python即可。   但是我的服务器上已经安装了openssl和openssl-devel软件,编译安装python后还是无法正常导入ssl模块,还有很多博客说是让编辑python源码包的根目录下的”Setup”文件或者是源码包Modules目录下的“Setup”文...
    阅读全文 →