① 如何為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 和讀寫映射文件。否則在釋放緩存的過程中,可能會丟失未保存的文件。
#sync
接下來,我們需要將需要的參數寫進/proc/sys/vm/drop_caches文件中,比如我們需要釋放所有緩存,就輸入下面的命令:
#echo 3 > /proc/sys/vm/drop_caches
此指令輸入後會立即生效,可以查詢現在的可用內存明顯的變多了。
要查詢當前緩存釋放的參數,可以輸入下面的指令:
#cat /proc/sys/vm/drop_caches
#free -m
對於清除swap,只有先關閉swap了,用:
#swapoff -a
而後啟用swap,因為只是清除,不是說不要用swap的嘛 :
#swapon -a
http://blog.sina.com.cn/s/blog_539d6e0c0100ys3o.html
Linux 自動釋放內存腳本
發表於119 天前 ? 技術文章 ? 暫無評論
腳本下載地址:Cached
腳本內容:
#! /bin/bash
# cache釋放:
# To free pagecache:
sync
sync
#echo 1 > /proc/sys/vm/drop_caches
# To free dentries and inodes:
#echo 2 > /proc/sys/vm/drop_caches
# To free pagecache, dentries and inodes:
echo 3 > /proc/sys/vm/drop_caches
# 說明,釋放前最好sync一下,防止丟數據。
利用系統crontab實現每天自動運行:
crontab -e
輸入以下內容:
00 00 * * * /root/Cached.sh
每天0點釋放一次內存,這個時間可以根據自己需要自行設置,我的伺服器情況是每天自動釋放一次就OK了
在設置這個腳本的時候,發生了一系列的問題
在測試運行./Cached.sh時提示錯誤:Permission denied 許可權的問題
解決方法:
chmod +x .Cached.sh
或
chmod 777 Cached.sh
接著又出現錯誤提示:/bin/bash^M: bad interpreter: No such file or directory
這是因為在windows下編輯的.sh文件編碼格式和linux下不一樣,轉換一下編碼格式即可:
dos2unix Cached.sh
http://blog.sinorain.com/archives/157
② linux如何為網卡分配足夠緩存
網卡緩存?你是指arp表和路由表這些么,如果是這些一般都是夠的
③ linux如何修改網卡配置
Linux中網卡配置/etc/sysconfig/network-script/ifcfg-eth0
網路介面配置文件
[root@localhost ~]# cat /etc/sysconfig/network-scripts/ifcfg-eth0
TYPE=Ethernet #網卡類型
DEVICE=eth0 #網卡介面名稱
ONBOOT=yes #系統啟動時是否激活 yes|no
BOOTPROTO=static #啟用地址協議 –static:靜態協議 –bootp:協議 –dhcp:協議 -none:不指定協議[最好指定]
IPADDR=192.168.1.11 #網卡IP地址
NETMASK=255.255.255.0 #子網掩碼
GATEWAY=192.168.1.1 #網卡網關地址
DNS1=10.203.104.41 #網卡DNS地址
HWADDR=00:0C:29:13:5D:74 #網卡設備MAC地址
BROADCAST=192.168.1.255 #網卡廣播地址
註:在修改文件ifcfg-ethx後還需要重新導入文件才能生效,具體命令如下:
[root@localhost ~]# /etc/init.d/network reload #命令有start | restart | stop | reload
重新導入ifcfg-eth0網路配置文件
[root@localhost ~]# /etc/init.d/network reload
④ linux怎麼配置dns緩存伺服器和主從伺服器
BIND安裝
軟體下載地址:http://www.isc.org/software/bind,目前最新版本是BIND 9.8.1-P1。
安裝依賴:
yum -y install gcc openssl-devel
開始安裝bind.
wget ftp://ftp.isc.org/isc/bind9/9.8.1-P1/bind-9.8.1-P1.tar.gz
tar xzf bind-9.8.1-P1.tar.gz
cd bind-9.8.1-P1
./configure --prefix=/usr/local/bind
make && make install
執行完成後,bind已經安裝到了/usr/local/bind目錄。
配置主dns伺服器
配置bind主要是兩種文件,一是主配置文件named.conf,二是區域文件zone(包括正解析,反解析)。
在下面的配置中,我們的主dns伺服器是ns1.qbtop.com 23.19.81.191,從dns伺服器是ns2.qbtop.com 23.19.81.194(這兩個dns都已經在godaddy注冊好了)。
下面操作僅在主dns伺服器23.19.81.191執行。
主配置文件named.conf
首先執行rndc-confgen -a生成/etc/rndc.key密鑰文件。
/usr/local/bind/sbin/rndc-confgen -a
vi /usr/local/bind/etc/named.conf
寫入如下內容:
include "/usr/local/bind/etc/rndc.key";
controls { inet 127.0.0.1 port 953 allow { 127.0.0.1; } keys { "rndckey"; }; };
logging {
channel default_syslog { syslog local2; severity notice; };
channel audit_log { file "/var/log/bind.log"; severity notice; print-time yes; };
category default { default_syslog; };
category general { default_syslog; };
category security { audit_log; default_syslog; };
category config { default_syslog; };
category resolver { audit_log; };
category xfer-in { audit_log; };
category xfer-out { audit_log; };
category notify { audit_log; };
category client { audit_log; };
category network { audit_log; };
category update { audit_log; };
category queries { audit_log; };
category lame-servers { audit_log; };
};
options {
directory "/usr/local/bind/etc";
pid-file "/usr/local/bind/var/run/bind.pid";
transfer-format many-answers;
interface-interval 0;
allow-query { any; };
};
zone "qbtop.com" {
type master;
file "qbtop.com.zone";
allow-transfer { 23.19.81.194; };
};
zone "81.19.23.in-addr.arpa" {
type master;
file "81.19.23.in-addr.arpa";
allow-transfer { 23.19.81.194; };
};
named.conf文件說明:
上面的named.conf文件包括三部分:key,controls,logging,options,zone。
logging:設置日誌伺服器和日誌信息的發送地。
options:控制伺服器的全局配置選項和為其它語句設置默認值
zone:定義一個域,比如正解析域和反解析域。
logging是定義日誌的,不需要深究,主要是options和zone。
在options中:
directory "/usr/local/bind/etc":定義bind的工作目錄為/usr/local/bind/etc,配置文件中所有使用的相對路徑,指的都是在這里配置的目錄下。
pid-file "/usr/local/bind/var/run/bind.pid":把bind程序運行的pid寫入文件bind.pid。
transfer-format many-answers:使用更加有效的域傳輸格式many-answers。
allow-query { any; }:允許所有用戶查詢dns。
在zone中:
這里定義了兩個zone,一個是正解析zone qbtop.com,一個是反解析zone 81.19.23.in-addr.arpa。
他們的參數基本相同:
type master:定義dns伺服器為主dns。
file "qbtop.com.zone":定義此zone的文件名。
allow-transfer { 23.19.81.194; }:允許向從dns 23.19.81.194傳輸dns數據。
唯一不同的是zone名稱的定義,正解析zone名稱的定義是受權的域名,可以是頂級域名,也可以是二級域名,或多級。反解析zone名稱定義規定前部分ip倒著寫。如ip 192.168.1.2,名稱定義為1.168.192.in-addr.arpa。
正解析qbtop.com.zone
vi /usr/local/bind/etc/qbtop.com.zone
寫入如下內容:
$TTL 3600
@ IN SOA ns1.qbtop.com. hostmaster.qbtop.com. (
2012022301 ; Serial
3600 ; Refresh
900 ; Retry
3600000 ; Expire
3600 ) ; Minimum
@ IN NS ns1.qbtop.com.
@ IN NS ns2.qbtop.com.
ns1 IN A 23.19.81.191
ns2 IN A 23.19.81.194
aaa IN A 23.19.81.191
bbb IN A 23.19.81.191
文件說明:
$TTL 3600:指示為每個沒有特殊TTL設置的RR給出了一個默認的TTL。
@ IN SOA ns1.qbtop.com. hostmaster.qbtop.com. (
2012022301 ; Serial
3600 ; Refresh
900 ; Retry
3600000 ; Expire
3600 ) ; Minimum
定義SOA記錄,包括Zone的名字,一個技術聯系人和各種不同的超時值。
@ IN NS ns1.qbtop.com.
@ IN NS ns2.qbtop.com.
設置兩個ns記錄ns1.qbtop.com和ns2.qbtop.com。
ns1 IN A 23.19.81.191
ns2 IN A 23.19.81.194
aaa IN A 23.19.81.191
bbb IN A 23.19.81.191
設置主機為ns1,ns2,aaa和bbb的A記錄。
反解析文件81.19.23.in-addr.arpa
反解析zone可以不設置。
vi /usr/local/bind/etc/81.19.23.in-addr.arpa
寫入如下內容:
$TTL 3600
@ IN SOA ns1.qbtop.com. hostmaster.qbtop.com. (
2012022301 ; Serial
3600 ; Refresh
900 ; Retry
3600000 ; Expire
3600 ) ; Minimum
@ IN NS ns1.qbtop.com.
@ IN NS ns2.qbtop.com.
191 IN PTR ns1.qbtop.com.
194 IN PTR ns2.qbtop.com.
說明:
上部分是定義SOA記錄,下部分是設置IP反解析。
如設置IP 23.19.81.191反解析成ns1.qbtop.com,23.19.81.194反解析成ns2.qbtop.com。
配置從DNS伺服器
下面我們來配置從DNS伺服器。配置從DNS伺服器只需要配置主配置文件named.conf,zone文件不需配置,因為這是從主DNS伺服器獲取的。
首先建立目錄slaves用來存放從主dns獲取的zone文件。
mkdir /usr/local/bind/etc/slaves
寫入如下內容:
logging {
channel default_syslog { syslog local2; severity notice; };
channel audit_log { file "/var/log/bind.log"; severity notice; print-time yes; };
category default { default_syslog; };
category general { default_syslog; };
category security { audit_log; default_syslog; };
category config { default_syslog; };
category resolver { audit_log; };
category xfer-in { audit_log; };
category xfer-out { audit_log; };
category notify { audit_log; };
category client { audit_log; };
category network { audit_log; };
category update { audit_log; };
category queries { audit_log; };
category lame-servers { audit_log; };
};
options {
directory "/usr/local/bind/etc";
pid-file "/usr/local/bind/var/run/bind.pid";
transfer-format many-answers;
interface-interval 0;
allow-query { any; };
};
zone "qbtop.com" {
type slave;
file "slaves/qbtop.com.zone";
masters { 23.19.81.191; };
};
zone "81.19.23.in-addr.arpa" {
type slave;
file "slaves/81.19.23.in-addr.arpa";
masters { 23.19.81.191; };
};
文件說明:
從dns跟主dns主要的區別是zone的定義,type slave定義此dns伺服器為從dns,masters { 23.19.81.191; }定義主dns的IP。
啟動BIND
1、在啟動BIND之前,我們需要執行/usr/local/bind/sbin/named-checkconf檢查named.conf配置文
件,和執行/usr/local/bind/sbin/named-checkzone zone名稱
zone文件名,如/usr/local/bind/sbin/named-checkzone qbtop.com
/usr/local/bind/etc/qbtop.com.zone。
然後調試模式啟動bind,/usr/local/bind/sbin/named -g,g參數的意思是前台執行bind,這會輸出啟動的信息,發現沒有嚴重的錯誤後,再把g參數刪除重新以/usr/local/bind/sbin/named方式後台啟動bind。
2、設置開機啟動,在/etc/rc.d/rc.local中加入/usr/local/bind/sbin/named。
手動添加記錄
1、直接添加刪除或修改zone文件里的記錄
2、執行rndc reload zone名稱重載,如rndc reload qbtop.com
⑤ 在linux環境里,怎麼用命令刪除網卡緩存
如何清空linux的DNS查詢緩存一、Linux下清空DNS緩存Linux下DNS緩存實現通常有兩種方式:一種是用DNS緩存程序NSCD(nameservicecachedaemon)負責管理DNS緩存。一種實現DNS緩存則是用Bind來架設CachingNameServer來實現。如果是清除NSCD上的Cache,可重新啟動NSCD服務來達成清除DNSCache的效果。用這個命令:#servicenscdrestart或是#/etc/init.d/nscdrestart如果是清除BIND伺服器上的CACHE,用這個命令:#rndcflush如果你的DNS伺服器是用dnsmasq實現的,用下面這個命令:$sudo/etc/init.d/dnsmasqrestart註:DNSmasq是一個輕巧的,容易使用的DNS服務工具,它可以應用在內部網和Internet連接的時候的IP地址NAT轉換,也可以用做小型網路的DNS服務。二、其它操作系統下清空DNS緩存的方法1、MacOSX下如何清空DNS緩存:在MacOSX中,你可以用以下命令來清空DNS緩存內容:bash-2.05a$lookupd-flushcache