自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(27)
  • 收藏
  • 关注

原创 samba实现与window共享文件夹

yum -y install samba* --skip-broken //配置共享目录 vim /etc/samba/smb.conf [data]     path = /data     browseable = yes     writable = yes     public = yes //增加samba用户 smbpasswd -a apache

2015-07-29 14:40:13 404

原创 shell变量赋值和引用

变量赋值: 变量名=值 注意: 给变量赋值的时候,不能在"="两边留空格 变量引用: 只需在变量名前面加一个$  有时候变量名可能会和其它文字混淆,需要在变量名之间加上花括号: num=2 echo "this is the ${num}nd" 需要注意shell的默认赋值是字符串赋值,例如: var=1 var=$var+1 echo $var /

2015-07-26 14:21:43 767

原创 输入、输出、错误输出

输入:指对一个应用程序 或命令的输入,无论是从键盘输入还是从别的文件输入 输出:指应用程序或命令产生的一些信息 错误输出:与标准输出分开,可以让一些高级的错误信息不干扰正常的输出 //将 ls 命令的结果输出重定向到 ls_result 文件ls > ls_result//将 ls 命令的结果追加重定向到 ls_result 文件 ls -l >> ls_result //将标

2015-07-26 13:42:57 1024

原创 shell基本介绍

#!/bin/bash # This is a very simple exampleecho echo “Hello World”#! 是说明 shell 这个文件的类型,有点类似于 Windows 系统下用不同文件后缀来表示不同文件类型的意思(但不相同)。Linux 系统根据 "#!" 及该字串后面的信息确定该文件的类型,关于这一问题可以通过 "man magic"命令 及 /usr/

2015-07-26 12:49:22 256

原创 replication复制集

replicattion set 多台服务器维护相同的数据副本,提高服务器的可用性 Replication set 设置全过程 0:创建目录  mkdir -p /data/r0 /data/r1 /data/r2 1:启动3个实例,且声明实例属于某复制集 ./bin/mongod --port 27017 --dbpath /data/r0 --smallfiles -

2015-07-20 23:48:37 356

原创 mongoDB备份与恢复

1: 导入/导出可以操作的是本地的mongodb服务器,也可以是远程的. 所以,都有如下通用选项: -h host   主机 --port port    端口 -u username 用户名 -p passwd   密码 2: mongoexport 导出json格式的文件 问: 导出哪个库,哪张表,哪几列,哪几行? -d  库名 -c  表名 -f  field1,

2015-07-19 22:26:13 311

原创 用户管理

注意: A)在mongodb中,有一个admin数据库, 牵涉到服务器配置层面的操作,需要先切换到admin数据. 即 use admin , -->相当于进入超级用户管理模式. B)mongo的用户是以数据库为单位来建立的, 每个数据库有自己的管理员. C) 在设置用户时,需要先在admin数据库下建立管理员---这个管理员登陆后,相当于超级管理员.

2015-07-19 19:44:21 346

原创 索引

1.索引提高查询速度,降低写入速度,权衡常用的查询字段,不必在太多列上建索引 2.在mongodb中,索引可以按字段升序/降序来创建,便于排序 3.默认是用btree来组织索引文件,2.4版本以后,也允许建立hash索引. 查看查询计划 db.find(query).explain(); "cursor" : "BasicCursor", ----说明没有索引发挥作用 "nsc

2015-07-19 14:32:16 299

原创 游标操作

通俗的说,游标不是查询结果,而是查询的返回资源,或者接口. 通过这个接口,可以逐条读取. 就像php中的fopen打开文件,得到一个资源一样, 通过资源,可以一行一行的读文件. 声明游标: var cursor =  db.collectioName.find(query,projection); Cursor.hasNext() ,判断游标是否已经取到尽头 Cursor. N

2015-07-19 14:23:01 375

原创 CURD操作详解

mongo入门命令 1.1: show dbs  查看当前的数据库 1.2 use databaseName 选库 1.2 show tables/collections 查看当前库下的collection 1.3 如何创建库? Mongodb的库是隐式创建,可以use 一个不存在的库 然后在该库下创建collection,即可创建库 1.4 db.createColle

2015-07-19 13:49:46 3382

原创 mongodb安装

mongodb的安装 1: 下载mongodb www.mongodb.org  下载最新的stable版 2: 解压文件 3: 不用编译,本身就是编译后的二进制可执行文件. 4: 启动mongod服务 ./bin/mongod --dbpath /path/to/database --logpath /path/to/log --fork --port 27017

2015-07-16 23:11:55 325

原创 性能分析命令详解

%user:表示CPU处在用户模式下的时间百分比。 %sys:表示CPU处在系统模式下的时间百分比。 %iowait:表示CPU等待输入输出完成时间的百分比。 swap in:即si,表示虚拟内存的页导入,即从SWAP DISK交换到RAM swap out:即so,表示虚拟内存的页导出,即从RAM交换到SWAP DISK。 系统性能分析工具常用命令: 1.vmstat、s

2015-07-14 20:29:37 440

原创 ulimit关于系统连接数的优化

linux 默认值 open files 和 max user processes 为 1024 #ulimit -n 1024 #ulimit –u 1024 问题描述: 说明 server 只允许同时打开 1024 个文件,处理 1024 个用户进程 使用ulimit -a 可以查看当前系统的所有限制值,使用ulimit -n 可以查看当前的最大打开文件数。 新装的l

2015-07-12 21:30:25 2167

原创 关于FastCGI的几个命令说明

fastcgi_cache_path /usr/local/nginx/fastcgi_cache levels=1:2 keys_zone=TEST:10minactive=5m; 这个指令为FastCGI 缓存指定一个路径,目录结构等级,关键字区域存储时间和非活动删除时间。 fastcgi_connect_timeout 300; 指定连接到后端FastCGI 的超时时间

2015-07-12 21:27:02 599

原创 nginx配置文件优化

1.worker_processes 8; nginx 进程数,建议按照cpu 数目来指定,一般为它的倍数 (如,2个四核的cpu计为8)。 2.worker_cpu_affinity 00000001 00000010 00000100 00001000 00010000 00100000 01000000 10000000; 为每个进程分配cpu,上例中将8 个进程分配到

2015-07-12 21:16:17 406

原创 nginx内核参数优化

内核参数的优化,主要是在Linux系统中针对Nginx应用而进行的系统内核参数优化,常见的优化参数值如下。 下面给出一个优化实例以供参考: net.ipv4.tcp_max_tw_buckets = 6000 net.ipv4.ip_local_port_range = 1024 65000 net.ipv4.tcp_tw_recycle = 1 net.ipv4.tcp_tw_

2015-07-12 21:10:09 480

原创 google-perftools安装以及其配置优化

利用TCMalloc优化Nginx的性能: TCMalloc的全称为Thread-Caching Malloc,是谷歌开发的开源工具“google-perftools”中的一个成员。与标准的glibc库的malloc相比,TCMalloc库在内存分配效率和速度上要高很多,这在很大程度上提高了服务器在高并发情况下的性能,从而降低系统负载。下面简单介绍如何为Nginx添加TCMalloc库支持。

2015-07-12 20:57:37 7007

原创 nginx编译安装过程优化

编译安装过程优化 在编译Nginx时,默认以debug模式进行,而在debug模式下会插入很多跟踪和ASSERT之类的信息,编译完成后,一个Nginx要有好几兆字节。在编译前取消Nginx的debug模式,编译完成后Nginx只有几百千字节,因此可以在编译之前,修改相关源码,取消debug模式,具体方法如下: 在Nginx源码文件被解压后,找到源码目录下的auto/cc/gcc文件,在其中找到如

2015-07-12 20:56:49 692

转载 nginx反向代理异步传输模式(原理)

sudone.com在nginx的反向代理介绍中,提到了异步传输模式并提到它可以减少后端连接数和压力,这是为何?下面就来讲解下传统的代理(apache/squid)的同步传输和nginx的异步传输的差异。 如图: squid同步传输:浏览器发起请求,而后请求会立刻被转到后台,于是在浏览器和后台之间就建立了一个通道。在请求发起直到请求完成,这条通道都是一直存在的。 nginx异

2015-07-11 14:39:06 2229

原创 缓存无底洞现象

缓存无底洞现象: facebook工作人员反应,facebook在2010年左右,memcached节点已经达到3000个,他们发现了一个问题:memcached连接频繁,导致效率下降,于是加memcached节点,添加后发现因为连接频繁导致的效率问题依然存在,这就被称为“无底洞现象”。 问题分析: 以用户为例:user-133-age,user-133-name,user-133-

2015-07-08 23:41:38 1398 1

原创 缓存雪崩现象

缓存雪崩现象以及真实案例: 一般是有某个节点失效,导致其他节点的缓存命中率下降,缓存中缺失的数据去数据库查询,短时间内,造成数据库服务器崩溃 重启DB,短时间又被压垮,但缓存数据也多了一些,DB反复多次启动,缓存重建完毕,DB才稳定运行 案例: 一个上千万PV的门户网站,缓存生命周期设置了6小时,当等到6小时缓存失效后,之前放到缓存的数据,都转到DB中查询,这时候,DB的压力急剧上

2015-07-08 23:09:11 2123

原创 分布式之取模算法的缺陷

分布式算法之取模算法的缺陷: 假设有8台服务器,运行中,突然down一台,则求余的底数变成7, 后果: key:0%8 = 0, key:0%7 = 0  hits .... key:6%8 = 6, key:6%7 = 6 hits key:9%8 = 1, key:9%7 = 2 miss .... key:55%8 = 7, key:55%7 = 6 miss 一般

2015-07-05 20:24:09 1313

原创 编译php-memcache扩展

PHP拓展编译的通用方法 以memcache拓展为例: 1.到软件的官网(pecl.php.net)去寻找拓展源码并下载解压 2.进入到path/memcache目录 3.根据当前的php版本动态的创建拓展的configure文件 /xx/path/php/bin/phpize --with-php-config=/xx/path/php/bin/php-config

2015-07-05 18:29:28 1339

原创 编译安装Apache+PHP

分别到官网下载二进制包 http://httpd.apache.org http://php.net apache编译安装: ./configure --prefix=/usr/local/httpd make && make install php编译安装: ./configure --prefix=/usr/local/php --with-apxs2=/us

2015-07-05 14:12:25 564

原创 编译安装memcached

首先使用yum安装gcc make、autoconf、libtool系列工具,这几个工具是编译所需要的 到libevent.org和memcached.org官网下载最新的stable版本 步骤一: 需要先安装libevent,因为安装memcached需要依赖libevent库 ./configure --prefix=/usr/local/libevent make && m

2015-07-05 11:28:39 270

原创 LRU删除机制

Memcached的过期数据删除机制 1.当某个值过期后,并没有从内存删除,因此,使用stats命令统计时,curr_item参数有信息(不为0) 2.当某个新值去占用他的位置时,当成空chunk来占用(即取代了原来数据占用内存的位置) 3.当get值时,判断是否过期,如果过期,返回空,并且清空,curr_item就减少 这个过程,只是让用户看不到这个数据而已,并没有在过期的瞬间立

2015-07-05 10:36:29 881

原创 memcached内存分配机制

memcached Slab Allocator分配机制 Slab Allocator的基本原理是按照预先规定的大小,将分配的内存分割成特定长度的块,以完全解决内存碎片问题。 Slab Allocation的原理相当简单,就是将分配的内存分割成各种尺寸的块(chunk),并把尺寸相同的块分成组(chunk的集合) Slab Allocation缓存原理: memcach

2015-07-04 12:46:40 797

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除