天行健,君子以自强不息;
      地势坤,君子以厚德载物;

预览模式: 普通 | 列表

手工释放linux内存

今天同事和我讨论内存占用和缓存的事情,想起从网上看过的一篇文章,同时附带了作者的一些看法,正巧本人的看法和作者一致,就直接转载了。

当在Linux下频繁存取文件后,物理内存会很快被用光,当程序结束后,内存不会被正常释放,而是一直作为caching。这个问题,貌似有不少人在问,不过都没有看到有什么很好解决的办法。那么我来谈谈这个问题。

一、通常情况
先来说说free命令:
引用
[root@server ~]# free -m
total used free shared buffers cached
Mem: 249 163 86 0 10 94
-/+ buffers/cache: 58 191

[阅读全文]

虚拟机系统时区调整

起因:

用虚拟机上线时候,解包提示时间不匹配,由此发现虚拟机时间不对。

处理:

起先以为是时间不对,手工同步了一下时间,观察发现还是如此,调整格式输出发现与本地时间相差8小时,判断是时区显示的问题

根据问题调整了系统clock、localtime等相关文件参数,发现问题依旧。

由于系统时间会与硬件时钟同步,想到会不会和母机有关呢?

查询相关资料,确认了系统时间会自动与母机同步,必须截断虚机同母机的时钟同步。

echo 1 > /proc/sys/xen/independent_wallclock

然后手工同步一下时间,系统时间就刷新过来了。

tail -f 多次grep过滤输出

对日志记录做多次grep过滤输出,格式如下:
tail -f log | grep xxx | grep yyy
发现grep失效,无法做正确输出。google研究了一下,原因如下:
管道 | 是全缓冲的,一般来说buffer_size为4096,有些是8192。不管具体值多少,只有buffer_size满了,才会看到输出。
在操作里  >>file 这个操作也是全缓冲的。调整如下
tail -f log | grep --line-buffer xxx | grep --line-buffer yyy
结果输出正常。
grep当带上了 --line-buffer 的时候

[阅读全文]

标签: tail grep

关于windows7系统保留分区的解释及删除办法

很多朋友会发现,安装windows7,进行分区操作时会出现安装程序自动生成100MB的系统保留分区(在windows7的beta7048版之前是200MB),(默认隐藏,不分配盘符),但如果你安装windows7的次数和安装方式比较多时,会发现这个100MB的分区不一定会出现.事实上,这个100MB的分区对现今的大硬盘而言实在算不得什么,但由于它的存在,很多笔记本电脑都被迫只能划分3个分区(默认只有4个,100MB分区占用一个),这就让我们很不爽了:那么大的硬盘只分出三个分区,显然不能满足我们的要求。但很无奈的是,我们无法在安装过程中删除那个分区,而安装完成后使用工具删除友会导致系统文件丢失或

[阅读全文]

标签: Windows

解决 linux 上 tcp 连接大量 TIME_WAIT 的问题

今天做系统例行监测,查看了一下发现系统中存在大量处于TIME_WAIT状态的tcp端口:

# netstat -n | awk '/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}'

在网上查阅了一些tcp参数的相关资料,最后通过修改了几个系统内核的tcp参数缓解了该问题:

#vi /etc/sysctl.conf 
  net.ipv4.tcp_tw_reuse = 1
  net.ipv4.tcp_tw_recycle = 1
 
#sysctl -p
其中:
net.ipv4.tcp_tw_reuse

[阅读全文]

标签: TIME_WAIT