changyang319 – 第 20 頁 – 電癮院

Author: changyang319 (Page 20 of 241)

GCP教學:如何增加GCP的swap虛擬記憶體大小?

CPU夠用,就差一點RAM空間

如果你在使用GCP時,是開啟比較低階的硬體組合,例如微型(f1-micro)及小型(g1-small),這兩個組合分別只配了0.6GB和1.7GB的記憶體。

如果是用來架靜態HTML網站,也許是足夠,但大部份的人架站,都是要架動態的PHP網站,而剛開始網站的流量根本也不高,也使用不了什麼CPU的資源,最大的問題多是出在RAM的資源上面。

偏偏我們在開啟GCP這些方案時,你會發現到預設是沒有開啟SWAP虛擬記憶體的,如下圖:

你可以看到這個微型(f1-micro)方案,光是一開完機,0.6GB的記憶體,就只剩下約344MB了,相信只要再運作個幾個小時,剩下的記憶體就會很快的用完,而且也沒有虛擬記憶體Swap可以周轉,網站很容易就會掛掉。

而之所以會想要選擇微型和小型的方案,為了就是要省錢,自然不可能為了一個沒什麼人上的網站,而購買更高的方案。

接著我就來說明一下,如何新增這個swap虛擬記憶體的大小,雖然使用到swap效能會差一些,但為了錢錢,忍一下也值得。

增加Swap虛擬記憶體的大小(CentOS)

由於我使用GCP在建立「VM執行個體」時,都是以「CentOS」為主,因此,接下來的教學,即是以CentOS為教學範例,如果你是使用其它的Linux作業系統,操作方式也許會有略為不同。

Step 1. 想要增加swap的全部指令,我整理如下:

dd if=/dev/zero of=/home/changyang319/swapfile bs=1024 count=1048576
sudo su
mkswap /home/changyang319/swapfile
vi /etc/fstab

首先第一行指令「dd」,要注意的是「路徑」的名稱,與「大小」,我這邊的路徑是「/home/changyang319」,且所設定的虛擬檔大小為1GB,而要填入的數值為「1048576」,如果要2GB的話,就填「2097152」。

第二行「sudo su」,要取得root權限,其實是為了要能編輯「fstab」這個檔案。

第三行「mkswap」,則是會在指定的路徑中,新增一個swap檔案,同樣要注意你的「路徑」要一致。

第四行 「vi /etc/fstab」,則是會進入到「vi」文字編輯環境中,我們要新增這行「/home/changyang319/swapfile swap swap defaults 0 0」,這部份你要先學習一下vi的使方式,大致上就是進入時,按下〔i〕鍵進入插入編輯模式,新增這行之後,再按下〔ESC〕,接著輸入〔:wq〕,意思是寫入並且離開,如下圖:

Step 2. 最後再輸入以下指令:

swapon -a
reboot

在輸入完reboot之後,系統就會重新開機,如下圖:

在重新開機之後,你再輸入指令「top」,就會看到我們設定的1GB的Swap虛擬記憶體已經出現了,如下圖:

為何主機板抓不到M2 PCIe SSD固態硬碟?

M2 與 SATA介面的SSD固態硬碟

現在無論是桌上型電腦或筆記型電腦,在選擇硬碟時,幾乎都是以SSD為第一選擇,早期都是以120GB SSD為主,雖然省點用還過的去,但使用上還是挷手挷腳的。

不過隨著技術的成熟,現在CP值最高的容量,已經進階到250GB左右的SSD,而且除了原本SATA介面的SSD,現在也又多了更高速的M.2 PCIe介面能供選擇,如下圖:

因此,在選擇主機板時,都要找有支援這種介面的,如「華碩 PRIME B360M-A 主機板」。

到底SATA和M.2 PCIe界面差距有多大?

我這邊分別各找了一個Intel的產品,來比較看看,如下:

你可以看到SATA的這顆SSD,在寫入時的速度有500M,但在M.2的SSD卻有1315M的水準;更誇張的是讀取的速度,SATA的只有550M,但M.2的卻有3210M,雖然SATA的SSD已經夠快了,但M.2版的SSD更是快上加快。

因此,若是要買新電腦要追求更快速度,絕對不要忘了M.2版的SSD。

讀不到M.2的SSD?

但若你是選擇自己組裝電腦,你可能在安裝好M.2的SSD之後,會發現到怎麼都沒抓到硬碟?

到底是主機板壞了?還是SSD壞了?

其實這並不是抓不到SSD,如果你是使用UEFI+GPT方式來安裝Windows 10的話,在安裝Windows的過程中,就一樣會抓到硬碟,但如果你想要用傳統Bios+MBR的方式來安裝Windows,就請接著看下一段。

解決沒有偵測到SSD的方式

其實解決的方式只要從BIOS裡,開啟一個「CSM(Compatibility Support Module, 相容性支援模組)」設定值即可,非常的簡單,我這邊以ASUS B360M-A主機板的BIOS設定來做個示範,如果你是使用其它型號主機板,甚至是其它廠牌的話,我想設定方式都應該差不多的。

Step 1. 在開機時,按〔Del〕進入BIOS,接著點擊「Advanced Mode (F7)」,如下圖:

Step 2. 接著先點擊〔啟動〕,然後再點選「CSM (Compatibility Support Module)」,如下圖:

Step 3. 接著將「開啟相容性支援模組」的設定,由「Disabled」變更為「Enabled」,如下圖:

Step 4. 設定完之後,點擊〔離開〕,如下圖:

Step 5. 接著在「儲存並重新啟動」的對話盒中,按下〔接受〕,如下圖:

接著在電腦重新開機之後,你再進入BIOS查看這個「啟動順序」時,就會發現到M.2的SSD固態硬碟已經抓到了,如下圖:

Android APK安裝時出現「套件已毀損。未安裝應用程式」?

App not installed. The package appears to be corrupt.

前陣子,我將一個Eclipse的Android程式,轉換到Android Studio開發環境,在好不容易順利轉換到Android Studio,而且用AVD模擬器也能順利執行,程式方面完全正常,但正當我將專案匯出成APK檔,要實際拿到Android手機上來測試時,居然會出現「套件已毀損」的訊息,接著然後就安裝失敗了。

但我隨便在Android Studio產生一個新的專案,並且產生出APK來安裝,手機又完全都可以安裝,所以代表Android Studio在產生APK檔案時,這部份的功能是沒有問題,有問題的應該是我的專案才對。

為了這個問題,我搞了好幾個小時,也Google了很多資料,發現到有不少人也有這樣的情況,像是Android Studio開發環境重灌、API版本要提高…等等,但我怎麼試,就都還是解決不了這個問題。

最後發現問題時,可真是「恍然大悟」,而且同時覺得自己很蠢…

其實,問題出在你Android手機裡,原本就已經安裝了相同名稱的「Package」程式,例如我的保母題庫練習程式,它的Package Name就是「com.changyang319.babysitter」。

然後,你所要新安裝上去的APK檔的「versionCode」版本,又比目前在手機上的版本還要舊。

舉例來說,因為我新安裝上去的專案,是在Android Studio上的新專案,所以是以「1」開始,但已經安裝在我手機上的程式,它的versionCode早就超過「28」以上了。

所以在安裝這個「1」版本時,Android程式安裝程式就告訴你說,這一定有什麼東西損壞了,因為1是不可以蓋過28的。

因此,想要解決這個問題,不是先把手機上相同的程式先移除,就是去Android Studio,去更新該專案的versionCode數字到比較高的數值。

Page 20 of 241

← Previous

Next →