十年網(wǎng)站開發(fā)經(jīng)驗(yàn) + 多家企業(yè)客戶 + 靠譜的建站團(tuán)隊(duì)
量身定制 + 運(yùn)營維護(hù)+專業(yè)推廣+無憂售后,網(wǎng)站問題一站解決
第一步:先執(zhí)行sync命令
創(chuàng)新互聯(lián)公司專業(yè)為企業(yè)提供翠屏網(wǎng)站建設(shè)、翠屏做網(wǎng)站、翠屏網(wǎng)站設(shè)計(jì)、翠屏網(wǎng)站制作等企業(yè)網(wǎng)站建設(shè)、網(wǎng)頁設(shè)計(jì)與制作、翠屏企業(yè)網(wǎng)站模板建站服務(wù),十多年翠屏做網(wǎng)站經(jīng)驗(yàn),不只是建網(wǎng)站,更提供有價(jià)值的思路和整體網(wǎng)絡(luò)服務(wù)。
#sync
sync命令用于強(qiáng)制被改變的內(nèi)容立刻寫入磁盤,更新超塊信息,以防止釋放,sync命令則可用來強(qiáng)制將內(nèi)存緩沖區(qū)中的數(shù)據(jù)立即寫入磁盤中。
第二步:清理linux內(nèi)存緩存
#echo 3 /proc/sys/vm/drop_caches
一般系統(tǒng)是不會自動釋放內(nèi)存的
關(guān)鍵的配置文件/proc/sys/vm/drop_caches。這個(gè)文件中記錄了緩存釋放的參數(shù),默認(rèn)值為0,也就是不釋放緩存。他的值可以為0~3之間的任意數(shù)字,代表著不同的含義:
0 – 不釋放
1 – 釋放頁緩存
2 – 釋放dentries和inodes
3 – 釋放所有緩存
此指令輸入立即生效,意在釋放所有緩存。
第三步:關(guān)閉swap,再開啟swap
(如果只是清理swap,第二部可以不用進(jìn)行操作,因?yàn)椴僮髁说诙疥P(guān)閉swap時(shí)會使用更長的時(shí)間)
#swapoff -a? 這一步因?yàn)槭呛笈_ 在一點(diǎn)一點(diǎn)的釋放,如果配置的swap超大,這里就等待得超久一些
#swapon -a? 再開啟
linux什么時(shí)候開始使用虛擬內(nèi)存(swap)
A.[root@wenwen ~]# cat /proc/sys/vm/swappiness
60
上面這個(gè)60代表物理內(nèi)存在使用60%的時(shí)候才會使用swap
swappiness=0的時(shí)候表示最大限度使用物理內(nèi)存,然后才是 swap空間,
swappiness=100的時(shí)候表示積極的使用swap分區(qū),并且把內(nèi)存上的數(shù)據(jù)及時(shí)的搬運(yùn)到swap空間里面。
通常情況下:
swap分區(qū)設(shè)置建議是內(nèi)存的兩倍 (內(nèi)存小于等于4G時(shí)),如果內(nèi)存大于4G,swap只要比內(nèi)存大就行。另外盡量的將swappiness調(diào)低,這樣系統(tǒng)的性能會更好。
B.修改swappiness參數(shù)
臨時(shí)性修改:
[root@wenwen ~]# sysctl vm.swappiness=10
vm.swappiness = 10
[root@wenwen ~]# cat /proc/sys/vm/swappiness? ? ? ? ? ? ? ?
10
永久性修改:
[root@wenwen ~]# vim /etc/sysctl.conf
加入?yún)?shù):
vm.swappiness = 35
然后在直接:
[root@wenwen ~]# sysctl -p
查看是否生效:
cat /proc/sys/vm/swappiness
35
不管是重啟系統(tǒng)還是關(guān)閉系統(tǒng),通常先要要運(yùn)行 sync 命令,把內(nèi)存中的數(shù)據(jù)寫到磁盤中
Linux 每個(gè)用戶都有一個(gè)用戶組,系統(tǒng)可以對一個(gè)用戶組中的所有用戶進(jìn)行集中管理。
類似于角色,系統(tǒng)可以對有共性的多個(gè)用戶進(jìn)行統(tǒng)一的管理。
(1)/etc/passwd 文件
用戶(user)的配置文件,記錄用戶的各種信息
每行的含義:用戶名:口令:用戶標(biāo)識號:組標(biāo)識號:注釋性描述:主目錄:登錄
(2)/etc/shadow 文件
口令的配置文件
每行的含義:登錄名:加密口令:最后一次修改時(shí)間:最小時(shí)間間隔:最大時(shí)間間隔:警告時(shí)間:不活動時(shí)間:失效時(shí)間:保留
(3)/etc/group 文件
組(group)的配置文件,記錄 Linux 包含的組的信息
每行含義:組名:口令:組標(biāo)識號:組內(nèi)用戶列表
運(yùn)行級別說明:
0 :關(guān)機(jī)
1 :單用戶 [類似安全模式, 這個(gè)模式可以幫助找回 root 密碼]
2:多用戶狀態(tài)沒有網(wǎng)絡(luò)服務(wù)
3:多用戶狀態(tài)有網(wǎng)絡(luò)服務(wù) [使用最多]
4:系統(tǒng)未使用保留給用戶
5:圖形界面
6:系統(tǒng)重啟
常用運(yùn)行級別是 3 和 5 ,要修改默認(rèn)的運(yùn)行級別可改文件
如果指定運(yùn)行級別
/etc/inittab 的
id:5:initdefault:這一行中的數(shù)字
也可以通過 init 來切換不同的運(yùn)行級別
假設(shè)我們的 root 密碼忘記了,請問如何找回密碼
啟動時(shí)-快速輸入 enter-輸入 e- 進(jìn)入到編輯界面- 選擇中間有 kernel 項(xiàng)-
輸入 e(edit)- 在該行的最后寫入 1 [表示修改內(nèi)核,臨時(shí)生效]- 輸入 enter-
輸入 b [boot]- 進(jìn)入到單用戶模式 【這里就可以做補(bǔ)救工作】
2.4 掛載
2.5 上面的方式,只是臨時(shí)生效,當(dāng)你重啟系統(tǒng),掛載的關(guān)系沒有, 配置 linux 的分區(qū)表,實(shí)現(xiàn)啟動時(shí),自動掛載
2.6 重啟后,會自動掛載.
2.7 卸載
指令:umount 設(shè)備名 | 掛載路徑
1.修改配置文件
文件中內(nèi)容
NETWORKING=yes
NETWORKING_IPV6=no
HOSTNAME= hadoop //寫入新的主機(jī)名
注意:主機(jī)名稱不要有“_”下劃線
這種方式只是臨時(shí)生效,當(dāng)重啟系統(tǒng)后,還是回歸以前對服務(wù)的設(shè)置。
如果希望設(shè)置某個(gè)服務(wù)自啟動或關(guān)閉永久生效,要使用 chkconfig 指令
4.3 應(yīng)用實(shí)例
4.4 使用細(xì)節(jié)
chkconfig重新設(shè)置服務(wù)后自啟動或關(guān)閉,重啟機(jī)器就會按設(shè)置的狀態(tài)運(yùn)行
查看系統(tǒng)網(wǎng)絡(luò)情況
強(qiáng)制將內(nèi)存中的文件緩沖寫入磁盤,更新塊信息。
在 linux/unix 系統(tǒng)中,在文件或數(shù)據(jù)處理過程中一般先放到內(nèi)存緩沖區(qū)中,等到適當(dāng)?shù)臅r(shí)候再寫入磁盤,以提高系統(tǒng)的運(yùn)行效率。
sync 命令則可用來強(qiáng)制將內(nèi)存緩沖區(qū)中的數(shù)據(jù)立即寫入磁盤。用戶通常無需執(zhí)行 sync 命令,系統(tǒng)會自動執(zhí)行 update 或 bdflush 操作,將緩沖區(qū)的數(shù)據(jù)寫入磁盤。
那么什么是緩沖(buffer)、緩存(cache),二者又有什么關(guān)系及區(qū)別呢?
簡單的理解為: buffer 是即將要被寫入磁盤的,而 cache 是被從磁盤中讀出來的。
緩沖(buffers)是根據(jù)磁盤的讀寫設(shè)計(jì)的,把分散的寫操作集中進(jìn)行,減少磁盤碎片和硬盤的反復(fù)尋道,從而提高系統(tǒng)性能。linux 有一個(gè)守護(hù)進(jìn)程定期清空緩沖內(nèi)容(即寫入磁盤),也可以通過 sync 命令手動清空緩沖。
沒有找到具體的命令查看有那些文件處于緩沖狀態(tài),也就無法看到運(yùn)行 sync 命令后的效果。網(wǎng)上甚至看到為保險(xiǎn)起起見執(zhí)行 2 次還是 4 次 sync 命令的討論。
緩存(cache)其實(shí)全稱叫高速緩存,是位于 CPU 與主內(nèi)存間的一種容量較小但速度很高的存儲器。
由于 CPU 的速度遠(yuǎn)高于主內(nèi)存,CPU 直接從內(nèi)存中存取數(shù)據(jù)要等待一定時(shí)間周期,cache 中保存著 CPU 剛用過或循環(huán)使用的數(shù)據(jù),當(dāng) CPU 再次使用該部分?jǐn)?shù)據(jù)時(shí)可從 cache 中直接調(diào)用,這樣就減少了 CPU 的等待時(shí)間,提高了系統(tǒng)的效率。
cache 經(jīng)常被用在磁盤的 I/O 請求上,如果有多個(gè)進(jìn)程都要訪問某個(gè)文件,于是該文件便被寫入 cache 以方便下次被訪問,以此提高系統(tǒng)性能。
內(nèi)存與緩存都是寶貴且配置有限的,如何根據(jù)需要來手工清除釋放緩存呢?
有三種選項(xiàng)清除緩存而無需中斷任何進(jìn)程或服務(wù):
可以配合 free 命令查看清理緩存的效果,相當(dāng)?shù)牧⒏鸵娪啊?/p>
sync 命令雖然重要,但針對緩沖的作用以及具體操作都比較單一,倒被緩存這個(gè)概念喧賓奪主了,這篇筆記顯然有些跑題。
Sync命令
在用reboot命令啟動unix系統(tǒng)后,系統(tǒng)提示出錯信息,部分應(yīng)用程序不能正常工作。經(jīng)仔細(xì)檢查系統(tǒng)文件,并和初始的正確備份進(jìn)行比較,發(fā)現(xiàn)某些文件確實(shí)被破壞了,翻來覆去找不到文件遭破壞的原因,最后想到了寫緩存命令——sync,在reboot前沒有運(yùn)行sync命令,導(dǎo)致了系統(tǒng)文件的改變而不能正常工作。
sync命令的作用是,將有關(guān)文件系統(tǒng)的存儲器常駐信息送入物理介質(zhì)內(nèi)。在暫停系統(tǒng)之前,比如要重新啟動機(jī)器,一定要去執(zhí)行sync命令。unix系統(tǒng)運(yùn)行經(jīng)驗(yàn)表明,為確保可靠起見,應(yīng)執(zhí)行兩遍sync命令,這是因?yàn)閟ync命令完成時(shí),并不保證信息實(shí)際寫到了磁盤上,雖然已經(jīng)執(zhí)行了一遍這個(gè)命令。在執(zhí)行sync命令以后,要等待磁盤工作燈滅了(假定有系統(tǒng)工作指示燈的話),再去真正暫停機(jī)器的運(yùn)行或啟動機(jī)器。
unix系統(tǒng)遭受破壞是隨時(shí)都可能發(fā)生的事情,因此在啟動機(jī)器或關(guān)機(jī)之前一定要運(yùn)行sync命令。記住在任何情況下,慎重地執(zhí)行sync命令決不會有任何壞處
umount時(shí)間過長,sync命令的使用
有一個(gè)問題,比如 cp 一個(gè)文件到SD卡上,是不是首先先將這個(gè)文件寫到SDRAM上,然后umount的時(shí)候再將SDRAM中的內(nèi)容真正寫SD卡上? 我umount的時(shí)候會過多一會才出現(xiàn)終端的提示符,根據(jù)寫入文件的大小確定 umount的時(shí)間?
后來查了一下資料,Linux文件系統(tǒng)更新是一個(gè)復(fù)雜的過程,當(dāng)用戶程序?qū)ξ募到y(tǒng)進(jìn)行修改以后,例如進(jìn)行了寫操作,文件數(shù)據(jù)把修改記錄在內(nèi)核緩沖中,在數(shù)據(jù)沒有寫到磁盤的時(shí)候,依然能夠執(zhí)行用戶進(jìn)程,所有數(shù)據(jù)的改變都在inode的內(nèi)容中得到反映。磁盤的數(shù)據(jù)更新實(shí)際上是異步進(jìn)行的,很有可能在寫操作已經(jīng)完成很長時(shí)間以后才真正對磁盤的數(shù)據(jù)進(jìn)行更新。
sync命令強(qiáng)制把磁盤緩沖的所有數(shù)據(jù)寫入磁盤,如果在沒有把磁盤緩沖區(qū)的信息寫入磁盤之前終止系統(tǒng),則磁盤的文件系統(tǒng)就會處在一個(gè)不穩(wěn)定的狀態(tài)。而在正常模式下即使沒有對分區(qū)進(jìn)行umount的操作,在重啟之前系統(tǒng)會調(diào)用sync命令強(qiáng)制把磁盤緩沖的所有數(shù)據(jù)寫入磁盤,而在急救模式下必須對所掛的分區(qū)進(jìn)行umount的操作,系統(tǒng)才會調(diào)用sync命令強(qiáng)制把磁盤緩沖的所有數(shù)據(jù)寫入磁盤,請?jiān)诩本饶J较碌呐笥炎⒁膺@個(gè)問題。其實(shí)“reboot -n(Don’t sync before reboot or halt)”在重啟之前不用sync命令強(qiáng)制把磁盤緩沖的所有數(shù)據(jù)寫入磁盤,就很能說明問題。
所以要 cp 完之后要執(zhí)行 sync 命令將緩沖區(qū)的內(nèi)容寫到磁盤中,然后再umount 就不會出現(xiàn)延時(shí)了.
經(jīng)驗(yàn)證,采用此方法,延遲寫入問題可以解決
sync命令用于強(qiáng)制被改變的內(nèi)容立刻寫入磁盤,更新超塊信息。 在Linux/Unix系統(tǒng)中,在文件或數(shù)據(jù)處理過程中一般先放到內(nèi)存緩沖區(qū)中,等到適當(dāng)?shù)臅r(shí)候再寫入磁盤,以提高系統(tǒng)的運(yùn)行效率。sync命令則可用來強(qiáng)制將內(nèi)存緩沖區(qū)中的數(shù)據(jù)立即寫入磁盤中。用戶通常不需執(zhí)行sync命令,系統(tǒng)會自動執(zhí)行update或bdflush操作,將緩沖區(qū)的數(shù)據(jù)寫 入磁盤。只有在update或bdflush無法執(zhí)行或用戶需要非正常關(guān)機(jī)時(shí),才需手動執(zhí)行sync命令。
語法 sync(選項(xiàng)) 選項(xiàng) --help:顯示幫助; --version:顯示版本信息。
buffer與cache buffer:為了解決寫磁盤的效率 cache:為了解決讀磁盤的效率 linux系統(tǒng)為了提高讀寫磁盤的效率,會先將數(shù)據(jù)放在一塊buffer中。在寫磁盤時(shí)并不是立即將數(shù)據(jù)寫到磁盤中,而是先寫入這塊buffer中了。此時(shí)如果重啟系統(tǒng),就可能造成數(shù)據(jù)丟失。 sync命令用來flush文件系統(tǒng)buffer,這樣數(shù)據(jù)才會真正的寫到磁盤中,并且buffer才能夠釋放出來,flush就是用來清空buffer。sync命令會強(qiáng)制將數(shù)據(jù)寫入磁盤中,并釋放該數(shù)據(jù)對應(yīng)的buffer,所以常常會在寫磁盤后輸入sync命令來將數(shù)據(jù)真正的寫入磁盤。
通過sync命令,能夠釋放數(shù)據(jù)中的buffer,加快Linux磁盤的讀寫速度,以達(dá)到提高磁盤讀寫效率的目的。