linux 内存清理/释放命令
在Linux系统下,我们一般不需要去释放内存,因为系统已经将内存管理的很好。但是凡事也有例外,有的时候内存会被缓存占用掉,导致系统使用SWAP空间影响性能,此时就需要执行释放内存(清理缓存)的操作了。
Linux系统的缓存机制是相当先进的,他会针对dentry(用于VFS,加速文件路径名到inode的转换)、Buffer Cache(针对磁盘块的读写)和Page Cache(针对文件inode的读写)进行缓存操作。但是在进行了大量文件操作之后,缓存会把内存资源基本用光。但实际上我们文件操作已经完成,这部分缓存已经用不到了。这个时候,我们难道只能眼睁睁的看着缓存把内存空间占据掉么?
所以,我们还是有必要来手动进行Linux下释放内存的操作,其实也就是释放缓存的操作了。
要达到释放缓存的目的,我们首先需要了解下关键的配置文件/proc/sys/vm/drop_caches。这个文件中记录了缓存释放的参数,默认值为0,也就是不释放缓存。他的值可以为0~3之间的任意数字,代表着不同的含义:
0 – 不释放
1 – 释放页缓存
2 – 释放dentries和inodes
3 – 释放所有缓存
知道了参数后,我们就可以根据我们的需要,使用下面的指令来进行操作。
首先我们需要使用sync指令,将所有未写的系统缓冲区写到磁盘中,包含已修改的 i-node、已延迟的块 I/O 和读写映射文件。否则在释放缓存的过程中,可能会丢失未保存的文件。
Centos卸载Php的安装环境
当我安装Php7.0版本的时候提示:Error: php70w-common conflicts with php-common-5.4.16-42.el7.x86_64
于是决定卸载Centos上Php的安装环境
查看php版本命令:
#php -v
PHP 5.4.16 (cli) (built: Aug 11 2016 21:24:59)
Copyright (c) 1997-2013 The PHP Group
Zend Engine v2.4.0, Copyright (c) 1998-2013 Zend Technologies
这个命令是删除不干净的
#yum remove php
因为使用这个命令以后再用
#php -v
还是会看到有版本信息的。。。。。
MySQL大表优化方案
当MySQL单表记录数过大时,增删改查性能都会急剧下降,可以参考以下步骤来优化:
单表优化
除非单表数据未来会一直不断上涨,否则不要一开始就考虑拆分,拆分会带来逻辑、部署、运维的各种复杂度,一般以整型值为主的表在千万级
以下,字符串为主的表在五百万
以下是没有太大问题的。而事实上很多时候MySQL单表的性能依然有不少优化空间,甚至能正常支撑千万级以上的数据量:
字段
-
尽量使用
TINYINT
、SMALLINT
、MEDIUM_INT
作为整数类型而非INT
,如果非负则加上UNSIGNED
-
VARCHAR
的长度只分配真正需要的空间 -
使用枚举或整数代替字符串类型
-
尽量使用
TIMESTAMP
而非DATETIME
, -
单表不要有太多字段,建议在20以内
-
避免使用NULL字段,很难查询优化且占用额外索引空间
-
用整型来存IP
索引
-
索引并不是越多越好,要根据查询有针对性的创建,考虑在
WHERE
和ORDER BY
命令上涉及的列建立索引,可根据EXPLAIN
来查看是否用了索引还是全表扫描
标签: mysql
Centos Python2 升级到Python3的简单实现
1. 从Python官网到获取Python3的包, 切换到目录/usr/local/srcwget https://www.python.org/ftp/python/3.5.1/Python-3.5.1.tar.xz
2. 使用命令如下命令进行解压缩:
xz -d Python-3.5.1.tar.xz
tar -xf Python-3.5.1.tar.xz
3. 在/usr/local路径下创建目录--python3.5, 为第4步创建安装目录1. 从Python官网到获取Python3的包, 切换到目录/usr/local/src
wget https://www.python.org/ftp/python/3.5.1/Python-3.5.1.tar.xz
2. 使用命令如下命令进行解压缩:
《Redis官方教程》Redis集群规范
Redis集群规范
欢迎来到Redis集群规范。在这里你可以找到有关Redis的算法和设计的基本原理。这篇文章是一项正在进行的工作,因为它是不断地与Redis的实际实现同步。
主要属性和设计原理
Redis的集群目标
Redis集群是一个分布式的实现,具有以下目标,按设计的重要性排序:
- 高性能,并且多达1000个节点的线性可扩展性。没有代理,使用异步复制,并且在进行赋值时没有合并操作。
- 可接受程度的写安全:当客户端与大多数master节点建立连接后,系统努力(使用最优的方式)保持来自客户端的写操作。通常有小窗口,其中确认的写操作可能会丢失。当客户端在一个小的分区中,窗口丢失写操作会更大。
- 可用性:Redis集群支持网络分区——其中大部分主节点都可访问,并且不可访问的各master节点对应的从至少一个可访问。而且采用副本迁移,有多个从的主会提供一个从给没有从的主。
标签: redis
Python Virtualenv 虚拟环境
什么是virtualenv?
virtualenv用于创建独立的Python环境,多个Python相互独立,互不影响,它能够:
1. 在没有权限的情况下安装新套件
2. 不同应用可以使用不同的套件版本
3. 套件升级不影响其他应用
标签: linux python Virtualenv
ERROR 1286 (42000): Unknown table engine 'InnoDB'
今天在操作数据的的时候,突然提示以下错误: ERROR 1286 (42000): Unknown table engine 'InnoDB'mysql> select version(); +-----------+ | version() | +-----------+ | 5.1.57 | +-----------+ 1 row in set (0.01 sec)mysql> show engines; +------------+---------+-----------------------------------------------------------+--------------+------+------------+ | Engine | Support | Comment | Transactions | XA | Savepoints | +------------+---------+-----------------------------------------------------------+--------------+------+------------+ | CSV | YES | CSV storage engine | NO | NO | NO | | MRG_MYISAM | YES | Collection of identical MyISAM tables | NO | NO | NO | | MEMORY | YES | Hash based, stored in memory, useful for temporary tables | NO | NO | NO | | MyISAM | DEFAULT | Default engine as of MySQL 3.23 with great performance | NO | NO | NO | +------------+---------+-----------------------------------------------------------+--------------+------+------------+4 rows in set (0.00 sec) mysql> show variables like 'have_innodb%'; +---------------+-------+ | Variable_name | Value | +---------------+-------+ | have_innodb | NO | +---------------+-------+ 1 row in set (0.00 sec) 至此发现数据库不支持INNOD引擎!!! mysql> show variables like '%dir%';
linux中快速清空文件内容的几种方法
linux中快速清空文件内容的几种方法
: > filename
> filename
echo "" > filename
echo > filename
cat /dev/null > filename
cp /dev/null >filename
高性能服务器架构思路
在服务器端程序开发领域,性能问题一直是备受关注的重点。业界有大量的框架、组件、类库都是以性能为卖点而广为人知。然而,服务器端程序在性能问题上应该有何种基本思路,这个却很少被这些项目的文档提及。本文正式希望介绍服务器端解决性能问题的基本策略和经典实践,并分为几个部分来说明:
1. 缓存策略的概念和实例
2.缓存策略的难点:不同特点的缓存数据的清理机制
3.分布策略的概念和实例
4.分布策略的难点:共享数据安全性与代码复杂度的平衡
缓存
缓存策略的概念
我们提到服务器端性能问题的时候,往往会混淆不清。因为当我们访问一个服务器时,出现服务卡住不能得到数据,就会认为是“性能问题”。但是实际上这个性能问题可能是有不同的原因,表现出来都是针对客户请求的延迟很长甚至中断。我们来看看这些原因有哪些:第一个是所谓并发数不足,也就是同时请求的客户过多,导致超过容纳能力的客户被拒绝服务,这种情况往往会因为服务器内存耗尽而导致的;第二个是处理延迟过长,也就是有一些客户的请求处理时间已经超过用户可以忍受的长度,这种情况常常表现为CPU占用满额100%。
Mac 查看Git某个文件的历史记录
在windows下面有TortoiseGit很方便的就能点击右键查看到某一个文件的提交记录,但mac在SourceTree要找到某一个文件的提交记录才方便查看到该文件的历史记录。方法:
git log查看某一个文件的提交记录,然后根据git show 哈希值来看某一次提交记录,也可以直接在SourceTree下搜索该哈希值本看详细记录。
进入git项目目录
cd /projectName/
以下两种方式可以帮助你查看单个文件的更新log:
方式一:
1)、查看指定文件提交日志
git log fileName
将显示文件的所有提交记录。
注意: q退出日志展示效果,回车或向下键显示更多提交日志
热门日志
分类
- Django(4)
- ssdb(1)
- Mac(7)
- C(1)
- memcache(1)
- Python(32)
- Vim(8)
- sed(2)
- ansible(3)
- awk(4)
- shell(3)
- about(1)
- git(9)
- bat(4)
- svn(0)
- docker(1)
- Tornado(1)
- go(2)
- 架构(19)
- Vue(1)
- game(2)
- Html(6)
- Java(8)
- Mysql(38)
- Ajax(2)
- Jsp(1)
- Struts(8)
- Linux(73)
- JavaScript(39)
- Staruml(0)
- Mouth(1)
- Php(102)
- Windows(8)
- Message(48)
- Lua(10)
- Compute(1)
- Redis(7)
- Nginx(12)
- Jquery(1)
- Apache(1)
- cocos2d-x(8)