MENU

linux

About这个网站[置顶]

如果想做一件事情,现在就是个不错的时间

为什么要搭这个网站

从本科开始就想做一个网站,但是一直都不知道做什么主题的,于是便一直拖啊拖。中间也确实搭建了数个博客性质的网站,但是往往自己在搭建好之后就在意淫网站该怎么优化啊,怎么做才能抵抗高并发啊...结果每次都因为想太多到最后还是一事无成,在这些浮夸而不切实际的思考中浪费了许许多多的时间,而那些网站却一个个的关闭,因为自己也不知道自己要做什么。

Read More

timerfd简介

1. 简介

timerfd的由来比较简单,我们以往在使用定时器时,需要设定超时时间和超时后的回调函数,在定时器时间到来时,我们所注册的回调函数将会被执行。但是这种定时器很难被epoll等I/O多路复用机制接管。于是Linux下的timefd应运而生,使用timerfd创建出的定时器是基于文件描述符进行管理的,在达到超时时间时,描述符将置为可读,并可以从中读取到超时次数(启动定时器后或上次read之后的超时次数)。

Read More

jemalloc疑似内存泄漏分析

最近项目中有使用到jemalloc作为内存分配器,但是使用后发现应用所占用的内存在不断飙高,而且无下降的趋势。经过阅读源码和进行实验逐步发现jemalloc隐藏的使用风险——脏页释放规则。

Read More

[转] 修改sqlite字段类型

文章转载自修改sqlite字段类型,若有侵权,请联系删除。

在单机版部署的环境中,在软件升级时,对数据库的修改一般是用 SQL 语句来实现(不可能叫客户用 SQLite Expert 自己修改吧),本来用 SQL 语句修改字段不是啥复杂的事,举例如下:

Read More

Ubuntu 更新源错误的一些解决办法

1、连接到ipv6的更新站点

    root@iotshare:/etc/lighttpd/conf-available#sudo apt-get update
    Get:1http://ppa.launchpad.net/ondrej/php/ubuntuxenialInRelease[23.9kB]
    Hit:2http://archive.ubuntu.com/ubuntuxenialInRelease
    Hit:3http://archive.canonical.com/ubuntuxenialInRelease
    Get:4http://archive.ubuntu.com/ubuntuxenial-updatesInRelease[102kB]
    Ign:1http://ppa.launchpad.net/ondrej/php/ubuntuxenialInRelease
    0%[Connectingtosecurity.ubuntu.com(2001:67c:1562::16)]

可以强制使用ipv4来进行源更新。

Read More

[转] I/O多路复用(三)epoll总结

文章转载自http://www.cnblogs.com/Anker/archive/2013/08/14/3258674.html,感谢原作者,侵删。

1、基本知识

  epoll是在2.6内核中提出的,是之前的select和poll的增强版本。相对于select和poll来说,epoll更加灵活,没有描述符限制。epoll使用一个文件描述符管理多个描述符,将用户关系的文件描述符的事件存放到内核的一个事件表中,这样在用户空间和内核空间的copy只需一次。

Read More

[转] I/O多路复用(二)poll总结

文章转载至http://www.cnblogs.com/Anker/archive/2013/08/14/3258674.html,感谢原作者,侵删。

1、基本知识

  poll的机制与select类似,与select在本质上没有多大差别,管理多个描述符也是进行轮询,根据描述符的状态进行处理,但是poll没有最大文件描述符数量的限制。poll和select同样存在一个缺点就是,包含大量文件描述符的数组被整体复制于用户态和内核的地址空间之间,而不论这些文件描述符是否就绪,它的开销随着文件描述符数量的增加而线性增大。

Read More