1. 在終端(也即cmd命令界面)下輸入 'c:\
memcached\
memcached.exe -d install' 安裝
2. 再輸入: 'c:\
memcached\
memcached.exe -d start' 啟動
NOTE: 以后
memcached將作為windows的一個服務每次開機時自動啟動。默認端口:11211
memcached的基本設置:
-p 監聽的端口
-l 連接的IP地址, 默認是本機
-d start 啟動memcached服務
-d restart 重起memcached服務
-d stop|shutdown 關閉正在運行的memcached服務
-d install 安裝memcached服務
-d uninstall 卸載memcached服務
-u 以的身份運行 (僅在以root運行的時候有效)
-m 最大內存使用,單位MB。默認64MB
-M 內存耗盡時返回錯誤,而不是刪除項
-c 最大同時連接數,默認是1024
-f 塊大小增長因子,默認是1.25
-n 最小分配空間,key+value+flags默認是48
-h 顯示幫助
mixi的設置,單臺:
[/code]
每臺memcached服務器僅啟動一個memcached進程。分配給memcached的內存為3GB,啟動參數如下:
/usr/bin/memcached -p 11211 -u nobody -m 3000 -c 30720
由于使用了x86_64的操作系統,因此能分配2GB以上的內存。32位操作系統中,每個進程最多只能使用2GB內存。也曾經考慮過啟動多個分配2GB以下內存的進程,但這樣一臺服務器上的TCP連接數就會成倍增加,管理上也變得復雜,所以mixi就統一使用了64位操作系統。
另外,雖然服務器的內存為4GB,卻僅分配了3GB,是因為內存分配量超過這個值,就有可能導致內存交換(swap)。連載的第2次中前坂講解過了memcached的內存存儲“slab allocator”,當時說過,memcached啟動時指定的內存分配量是memcached用于保存數據的量,沒有包括“slab allocator”本身占用的內存、以及為了保存數據而設置的管理空間。因此,memcached進程的實際內存分配量要比指定的容量要大,這一點應當注意。
mixi保存在memcached中的數據大部分都比較小。這樣,進程的大小要比指定的容量大很多。因此,我們反復改變內存分配量進行驗證,確認了3GB的大小不會引發swap,這就是現在應用的數值。
memcached -d -m 1024 -u root -l 172.25.38.70 -p 12000 -c 4096 -P /tmp/memcached.pid 12000
-p 12000 端口
-m 1024 內存設置 1024
-c 4096 同時連接數