Pages: 14/282 First page Previous page 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 Next page Final page [ View by Articles | List ]
May 27

 1.用途说明

free命令用来显示内存使用情况。display information about free and used memory on the system。

free 命令相对于top 提供了更简洁的查看系统内存使用情况:

其中的相关说明:

Mem:表示物理内存统计

-/+ buffers/cached:表示物理内存的缓存统计

Swap:表示硬盘上交换分区的使用情况(这里我们不去关心

系统的总物理内存:255268Kb(256M),但系统当前真正可用的内存并不是第一行free 标记的 16936Kb,它仅代表未被分配的内存。

我们使用total1、used1、free1、used2、free2 等名称来代表上面统计数据的各值,1、2 分别代表第一行和第二行的数据。

total1: 表示物理内存总量。

used1: 表示总计分配给缓存(包含buffers 与cache )使用的数量,但其中可能部分缓存并未实际使用。

free1: 未被分配的内存。

shared1: 共享内存,一般系统不会用到,这里也不讨论。

buffers1: 系统分配但未被使用的buffers 数量。

cached1: 系统分配但未被使用的cache 数量。buffer 与cache 的区别见后面。

used2: 实际使用的buffers 与cache 总量,也是实际使用的内存总量。

free2: 未被使用的buffers 与cache 和未被分配的内存之和,这就是系统当前实际可用内存。

2.常用参数

b 以字节为单位显示。

-k 以K字节为单位显示。默认显示。

-m 以兆字节为单位显示。

-s 每隔多少秒重复执行。可编写一个脚本用于监控。

3.数值的单位是m。

Mem开头的行:total是指内存总数。比如这台机器4G内存,实际上已经扣除掉了作为显存的部分。

used是指操作系统已经使用的内存数。这部分既包括操作系统本身使用的部分,也包括应用程序已经使用的部分,还包括缓存的部分。

free是指操作系统还没有使用的内存数。我们通常看到这部分比较小。

shared已经废弃不用,总是显示0。

buffers和cached是指作为缓存的内存数。
-/+ buffers/cache开头的行:(重点看这行)

used列是指应用程序总共使用的内存数。等于Mem.used-Mem.buffers-Mem.cached。

free列是指应用程序还未使用的内存数。这个数据才是我们需要关注的空闲可用内存数。等于Mem.free+Mem.buffers+Mem.cached。如果此行中free列的数据太小,那么就需要优化程序或者增加物理内存了。

May 19

/**
* 观察者模式应用场景实例
*
* 免责声明:本文只是以哈票网举例,示例中并未涉及哈票网任何业务代码,全部原创,如有雷同,纯属巧合。
*
* 场景描述:
* 哈票以购票为核心业务(此模式不限于该业务),但围绕购票会产生不同的其他逻辑,如:
* 1、购票后记录文本日志
* 2、购票后记录数据库日志
* 3、购票后发送短信
* 4、购票送抵扣卷、兑换卷、积分
* 5、其他各类活动等
*
* 传统解决方案:
* 在购票逻辑等类内部增加相关代码,完成各种逻辑。
*
* 存在问题:
* 1、一旦某个业务逻辑发生改变,如购票业务中增加其他业务逻辑,需要修改购票核心文件、甚至购票流程。
* 2、日积月累后,文件冗长,导致后续维护困难。
*
* 存在问题原因主要是程序的"紧密耦合",使用观察模式将目前的业务逻辑优化成"松耦合",达到易维护、易修改的目的,
* 同时也符合面向接口编程的思想。
*
* 观察者模式典型实现方式:
* 1、定义2个接口:观察者(通知)接口、被观察者(主题)接口
* 2、定义2个类,观察者对象实现观察者接口、主题类实现被观者接口
* 3、主题类注册自己需要通知的观察者
* 4、主题类某个业务逻辑发生时通知观察者对象,每个观察者执行自己的业务逻辑。
*
* 示例:如以下代码
*
*/
#===================定义观察者、被观察者接口============
/**
*
* 观察者接口(通知接口)
*
*/
interface ITicketObserver //观察者接口
{
    function onBuyTicketOver($sender, $args); //得到通知后调用的方法
}

/**
*
* 主题接口
*
*/
interface ITicketObservable //被观察对象接口
{
    function addObserver($observer); //提供注册观察者方法
}
#====================主题类实现========================
/**
*
* 主题类(购票)
*
*/
class HipiaoBuy implements ITicketObservable { //实现主题接口(被观察者)
    private $_observers = array (); //通知数组(观察者)
  

    public function buyTicket($ticket) //购票核心类,处理购票流程
{
       // TODO 购票逻辑
      

       //循环通知,调用其onBuyTicketOver实现不同业务逻辑
       foreach ( $this->_observers as $obs )
           $obs->onBuyTicketOver ( $this, $ticket ); //$this 可用来获取主题类句柄,在通知中使用
    }
  
    //添加通知
    public function addObserver($observer) //添加N个通知
{
       $this->_observers [] = $observer;
    }
}

#=========================定义多个通知====================
//短信日志通知
class HipiaoMSM implements ITicketObserver {
    public function onBuyTicketOver($sender, $ticket) {
       echo (date ( 'Y-m-d H:i:s' ) . " 短信日志记录:购票成功:$ticket
");
    }
}
//文本日志通知
class HipiaoTxt implements ITicketObserver {
    public function onBuyTicketOver($sender, $ticket) {
       echo (date ( 'Y-m-d H:i:s' ) . " 文本日志记录:购票成功:$ticket
");
    }
}
//抵扣卷赠送通知
class HipiaoDiKou implements ITicketObserver {
    public function onBuyTicketOver($sender, $ticket) {
       echo (date ( 'Y-m-d H:i:s' ) . " 赠送抵扣卷:购票成功:$ticket 赠送10元抵扣卷1张。
");
    }
}
#============================用户购票====================
$buy = new HipiaoBuy ();
$buy->addObserver ( new HipiaoMSM () ); //根据不同业务逻辑加入各种通知
$buy->addObserver ( new HipiaoTxt () );
$buy->addObserver ( new HipiaoDiKou () );
//购票
$buy->buyTicket ( "一排一号" );

?>
May 17
“我的互联网+ ”博客正式上线,“我的互联网+ ”是一个专注“互联网+”资讯与技术分享的博客!访问地址http://tommyhu.com
May 15
centos 上面默认的yum源是国外的,有的时候速度很不给力,下面介绍如何将yum源更改为网易的
方法/步骤


Quotation

网易(163)yum源是国内最好的yum源之一 ,无论是速度还是软件版本,都非常的不错,将yum源设置为163yum,可以提升软件包安装和更新的速度,同时避免一些常见软件版本无法找到。具体设置方法如下:
1,进入yum源配置目录
cd /etc/yum.repos.d
2,备份系统自带的yum源
mv CentOS-Base.repo CentOS-Base.repo.bk
下载163网易的yum源:
wget http://mirrors.163.com/.help/CentOS6-Base-163.repo
3,更新玩yum源后,执行下边命令更新yum配置,使操作立即生效
yum makecache
4,除了网易之外,国内还有其他不错的yum源,比如中科大和搜狐的,大家可以根据自己需求下载
中科大的yum源:
wget http://centos.ustc.edu.cn/CentOS-Base.repo
sohu的yum源
wget http://mirrors.sohu.com/help/CentOS-Base-sohu.repo
理论上讲,这些yum源redhat系统以及fedora也是可以用 的,但是没有经过测试,需要的站长可以自己测试一下。
May 15
centos6.5安装python-MySQLdb
命令如下:

安装过程:
May 15
在配置Django时,选择的是mysql数据库,要安装MySQLdb模块,不过安装过程中,遇到了很多errors,记录一下。
系统:ubuntu 11.10
mysql:直接apt-get安装的,version:5.1.62(地址:http://sourceforge.net/projects/mysql-python/

到官方下载MySQL for Python

然后解压,打开README:

里面有安装过程:

  $ tar xfz MySQL-python-1.2.1.tar.gz
  $ cd MySQL-python-1.2.1
  $ # edit site.cfg if necessary
  $ python setup.py build
  $ sudo python setup.py install # or su first

不过在python setup.py build时报错:

ImportError: No module named setuptools

ubuntu下安装:

sudo apt-get install python-setuptools

python-setuptools : Python Distutils Enhancements (setuptools compatibility)



然后再次python setup.py build,又报错:

EnvironmentError: mysql_config not found

因为mysql_config是属于MySQL开发用的文件,而使用apt-get安装的MySQL是没有这个文件的,于是在包安装器里面寻找

sudo apt-get install  libmysqld-dev

libmysqld-dev : MySQL embedded database development files



再次运行python setup.py build,报错:

building ‘_mysql’ extension
gcc -pthread -fno-strict-aliasing -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -fPIC -Dversion_info=(1,2,3,’final’,0) -D__version__=1.2.3 -I/usr/include/mysql -I/usr/include/python2.7 -c _mysql.c -o build/temp.linux-i686-2.7/_mysql.o -DBIG_JOINS=1 -fno-strict-aliasing -DUNIV_LINUX -DUNIV_LINUX
In file included from _mysql.c:29:0:
pymemcompat.h:10:20: fatal error: Python.h: No such file or directory

解决方案,

sudo apt-get install python-dev

python-dev : header files and a static library for Python (default)



然后就按照README里的:

  $ python setup.py build
  $ sudo python setup.py install

测试:

>>>import MySQLdb

没有报错即可。

May 14
1. 新增用户


2. 修改用户密码


3. 删除用户


4. 权限分配
    4.1. grant用法
           grant 权限 on 数据库.* to 用户名@'登录主机' identified by '密码'


4.2 例子


4.3 注意事项
grant 会覆盖用户的部分信息,跟insert 、update执行功能一样.
May 12
“互联网+”是创新2.0下的互联网发展新形态、新业态,是知识社会创新2.0推动下的互联网形态演进及其催生的经济社会发展新形态。“互联网+”代表一种新的经济形态,即充分发挥互联网在生产要素配置中的优化和集成作用,将互联网的创新成果深度融合于经济社会各领域之中,提升实体经济的创新力和生产力,形成更广泛的以互联网为基础设施和实现工具的经济发展新形态。“互联网+”行动计划将重点促进以云计算、物联网、大数据为代表的新一代信息技术与现代制造业、生产性服务业等的融合创新,发展壮大新兴业态,打造新的产业增长点,为大众创业、万众创新提供环境,为产业智能化提供支撑,增强新的经济发展动力,促进国民经济体制增效升级。
“互联网+”是对创新2.0时代新一代信息技术与创新2.0相互作用共同演化推进经济社会发展新形态的高度概括。

中筹网金创始人兼CEO叶伟杰:“互联网+”不是简简单单的“+互联网”,是移动互联网、云计算、大数据、物联网等与现代制造业的结合,是对传统行业的颠覆和改造。从网络游戏、电子商务、互联网金融行业的兴起,从众筹到大生态。房地产是受互联网影响较小的行业,但线上模式会成为一个新趋势,颠覆传统行业的趋势。

以下摘录自《互联网+ 究竟是什么鬼东西?》
Quotation

互联网+不是方法论,只是产品形态

那么,就在今天,当我们在热捧这个词时,有多少认真思考这个词背后的含义呢?互联网+会不会重蹈互联网思维的覆辙,从人人争抢的香饽饽成为众人唾弃的烫手山芋呢?

什么是互联网+?现在很多人的共识是,所谓的互联网+就是互联网平台上加上一个传统行业,相当于给传统行业加一双“互联网”的翅膀,然后助飞传统行业。比如互联网金融,由于与互联网的相结合,诞生出了很多普通用户触手可及的理财投资产品,比如余额宝、理财通以及p2p投融资产品等;比如互联网医疗,传统的医疗机构由于互联网平台的接入,使得人们实现在线求医问药成为可能,这些都是最典型的互联网+的案例。

事实上,互联网+这种产品模式也不是2015年才有的。互联网也的确已经改变了我们身边很多的传统领域,尤其是在餐饮娱乐领域,互联网+早已侵入到我们的生活。互联网加电视娱乐,已经诞生了众多的视频网站;而互联网加餐厅,就诞生了众多的团购和外卖网站;互联网加婚姻交友,诞生了众多的相亲交友网站等等。

而且,互联网+显然不是一个产品创新的“高帽子”,谁都能适合戴?在一些行业垄断的领域,互联网+并不是灵丹妙药。尽管目前互联网的的确确已经在改造很多传统行业,但是在今天互联网对于很多传统行业的改造速度是缓慢的。

而且互联网对于传统行业的改造也并不是刚刚开始,有的甚至已经持续了十年。比如在医疗行业,互联网+的服务模式早已有之,不过互联网对医疗行业的改造依然是缓慢的,除了在线问医生和在线挂号等几个方面外,大部分的人们在医疗健康方面依然没有体验到互联网带来的便捷和好处。实际上,最终互联网+的究竟能够走多远,很可能最终还是需要根据国家政策的开放程度而定。

显然,互联网+也不是万能的,互联网+也并不是方法论,互联网+既不高大上也高冷酷,只是当下很多互联网产品的一种形态表现而已。

不过,当“互联网+“作为行动计划成为国家战略,也就同时意味着互联网行业的发展已经是关系到国家的经济命脉的重要一环。

而就在互联网+的行动计划提出之后,国内的股市也扶摇直上,目前沪市已经突破了4000点,不少专家甚至认为互联网+将引领第四次工业革命。不过,这个结论是不是也下得为时尚早呢?
Pages: 14/282 First page Previous page 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 Next page Final page [ View by Articles | List ]