<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                合規國際互聯網加速 OSASE為企業客戶提供高速穩定SD-WAN國際加速解決方案。 廣告
                #本地緩存與分布式緩存 #Opcode 優化 ##Opcode 原理 —— 回顧 以下哪個不是PHP語言開發Web應用的三個可以重大優化之處? A、作為解釋型語言 B、SAPI 的每次環境重新加載(對比Clamd) C、作為動態語言 D、低效的數據結構 d ##OpCode 帶來的好處 1. 記得 SAPI 的優化是只加載一次環境,比如說模塊 2. 而 OpCode 帶來的好處是腳本只解析一次(模板 編譯也是如此) 3. 極大地減少了 IO 4. OpCode 還有一說是 Optimized Opcode ##OpCode 介紹 1 不是 PHP 所獨有 2 將人寫的代碼轉換為中間代碼 3 Java 也有字節碼 4 可以通過反匯編的方式看到 vld 擴展 php -dvld.active=1 -dvld.verbosity=3 -dvld.save_dir='./' - dvld.save_paths=1 -dvld.dump_paths=1 quotes.php ##不加任何 Cache 的測試 在正式開始介紹和演示之前,我們先關掉所有的插件來評測三次 ab ‐c 20 ‐n 1000 http://hjvote.app.ucai.cn/index.php?s=/Admin/index Requests per second: Time per request: Requests per second: Time per request: Requests per second: Time per request: 178.63 [#/sec] (mean) 111.965 [ms] (mean) 177.80 [#/sec] (mean) 112.488 [ms] (mean) 174.70 [#/sec] (mean) 114.482 [ms] (mean) **以下哪個是 PHP 模塊安裝必須要用到的命令?** A、phpize B、php-fpm b C、./configure --with-php-config=xxx D、make E、make install F、make test ##OpCode 產品 A、Zend OpCache B、APC C、XCache D、eAccelerator **A、Zend OpCache** Zend 出品? Lead :鳥哥 Requests per second: Time per request: Requests per second: Time per request: Requests per second: Time per request: 424.31 [#/sec] (mean) 47.135 [ms] (mean) 457.50 [#/sec] (mean) 43.716 [ms] (mean) 446.40 [#/sec] (mean) 44.802 [ms] (mean) **B、APC** 說兩個亮點: 一、項目 Lead Rasmus Lerdorf 二、Facebook 在早期大量地應用 APC apc.enabled = 1 apc.shm_segments = 1 apc.shm_size = 64m apc.optimization = 1 apc.num_files_hint = 0 apc.ttl = 0 apc.gc_ttl = 3600 apc.cache_by_default = on 表現不錯,但不是非常穩定 **C、XCache** 不能同時開啟, XCache 和 APC 否則會報錯。 Cannot load module 'XCache' because conflicting module 'apc' is already loaded in Unknown on line 0 另外 xcache.size 老啟用不成功 **D、eAccelerator** Requests per second: Time per request: Requests per second: Time per request: Requests per second: Time per request: 423.97 [#/sec] (mean) 47.173 [ms] (mean) 性能較穩定,差別不大 428.52 [#/sec] (mean) 46.672 [ms] (mean) 465.26 [#/sec] (mean) 42.986 [ms] (mean) ###評測 **A、有無 OpCache 的比較 B、同 HHVM 的比較** **ab ‐c 20 ‐n 1000** "http://hjvote.app.ucai.cn/index.php" Requests per second: Time per request: Requests per second: Time per request: Requests per second: Time per request: 1186.09 [#/sec] (mean) 16.862 [ms] (mean) 1166.30 [#/sec] (mean) 17.148 [ms] (mean) 1032.14 [#/sec] (mean) 19.377 [ms] (mean) **有關 FastCGI+Nginx 環境以下哪個說法是不正確的?** A、php-fpm 命令用于啟動 FastCGI 進程管理器 B、nginx 的 -t 參數可用于測試配置是否正確 C、nginx 的 -r 參數可用于重新加載 nginx 配置 nginx -s reload D、nginx 命令、php-fpm 都可以不指定配置文件路徑啟動 E、nginx 指定 php-fpm 做后端,不可以指定多個端口的后端 可以指定多個端口做分發 F、可以配置多份 php-fpm.conf,啟動多份 php-fpm,占多個端口 G、php-fpm.conf 與 php.ini是并列關系,所以php-fpm并不需要 php.ini 答案 CEG ##OpCode 附帶的好處 **A、共享內存** 什么是共享內存? 一般情況下,PHP程序退出,所有資源釋放干凈,無法在進程間 傳遞數組,于是有了共享內存 **B、本地緩存** local memcached 基于用戶的的會話保持 基于不同的用戶大量地取同樣的內容 減少對后端的壓力 本地緩存適用于web服務器很多 或memecache很多的場景下才能發揮他的作用 #本地緩存介紹與應用 ##專門的 ShareMemory **專門產品:Yac** 只是做 ShareMemory 出品人,Ya系列,鳥哥 一般特點,命令行下不能使用,頁面上可以使用,XCache也是如此 ##本地緩存實踐 A、不用 OpCache B、啟用 OpCache C、不啟用本地緩存 D、加上本地緩存 **有關共享內存下面說法正確的是?** A、PHP 自帶的共享內存,在命令行下也可以使用 B、APC、Yac 等的共享內存,可以當本地緩存使用 C、本地緩存可以跨機器共享 D、重啟了 php-fpm , Yac等的共享內存會丟失 答案 abd ## 本地緩存之介紹與實現 1、還記得 OpCache 么? 2、重用 OpCode 緩存擴展,可以提供本地緩存 以 APC 為例 3、使用擴展的本地緩存之注意事項,在命令行下 是不能使用的,為什么? 命令行下沒有進程來保存東西 4、也可以是獨立的本地緩存 ## 怎么在擴展中使用本地緩存 ~~~ static void store_value(char *key, zval *argv) { zval * function_name; zval * retval_ptr; MAKE_STD_ZVAL(function_name); MAKE_STD_ZVAL(retval_ptr); zval *ret; ret = packstr(argv); zval *arg; ALLOC_INIT_ZVAL(arg); array_init(arg); add_assoc_zval(arg, key, ret); ZVAL_STRINGL(function_name,"apc_store",sizeof("apc_store")-1,1); if(call_user_function(CG(function_table),NULL,function_name,retval_ptr,1,&arg TSRMLS_CC) == SUCCESS) } {} zval_ptr_dtor(&function_name); zval_ptr_dtor(&retval_ptr); ~~~ ## 本地緩存與集中式緩存 **1、本地緩存應用** A、本地緩存運用的場景 微博粉絲 多少服務器 降到多少的量級 B、本地緩存的優勢 減少網絡傳輸 C、本地緩存的局限 5000臺的話數據重復 不能跨機器 **2、那什么是集中式緩存** A、一臺機器與多臺機器 B、優勢在哪里 只要一份數據 C、問題在哪里? **單點故障** 有一臺出問題 其他的都不能用 **有關非集中和集中式緩存下列說法正確的是:** A、本地緩存屬于非集中式緩存 B、本地緩存屬于分布式緩存 C、集中式緩存是指存儲在一臺機器上的緩存 D、集中式緩存是指通過一個統一的接口能存取的 緩存,如果多臺機器則是分布式緩存 答案 A D #多服務器分布式的緩存 什么叫分布式? 通過一個接口對外提供服務 無狀態分布式? 有狀態分布式? 后臺宕機不影響其他的 后臺有一臺down機 會影響到對外提供服務的接口比如memecache ![](https://box.kancloud.cn/2016-05-11_5732e06e21fd1.png) ** 有關分布式和分布式緩存下列說法正確的是:** A、所謂分布式系統是一堆機器干一件事情,并且 節點之間通過網絡相連,并通過消息通信并協調 行動 B、本地緩存的各服務器之間,并無協同,各臺機 器獨立地干一件事情,所以不是分布式緩存 C、分布式緩存上面,每臺機器存儲的是不同的數 據 D、分布式緩存服務器之間需要建立互相聯系 答案:ABC ## 分布式緩存的數據存儲 產生的背景 有必要討論嗎?不就是 get、set么? 數據如何存取? 我們如何分配數據? 對機器數取模可以不可以? 如果是字符串 key 值呢? ## 取模的情況 1、假設兩臺機器,現在有兩組 key,比如是 5 和 4, 對 2 取模分別為 1、0 均分布于第2臺 和第1臺機器上(1,0分別對應第2、1臺服務 器)。 2、當增加一臺機器,到 3 臺機器,為了平衡, 對 3 取模,5,4,結果為 2,1,分別對應到了 第3臺和第2臺機器上(2,1,0分別對應第3、2、 1臺服務器)。 這意味著什么? ## 非一致性緩存帶來的問題包括以下: A、新增或者減少設備整個緩存體系混亂 B、在設備發生調整時,造成了對后端的巨大壓力 C、重則使整個網站奔潰,輕則導致訪問緩慢 D、在每一時刻,緩存鍵值所處的機器都不確定 ## 實驗校驗一下 1、六個 memcached 節點 兩臺機器、六個節點 /usr/local/bin/memcached -p 11212 -d -uroot -m 32 /usr/local/bin/memcached -p 11213 -d - uroot -m 32 /usr/local/bin/memcached -p 11214 -d - uroot -m 32 ## 實驗 1、檢測所有服務器的連通性 2、建立 memcached 緩存池,檢驗是否成功? 3、怎么判定 memcached 緩存池是否是一致性緩存?實測。 4、一致性的特點 單調性是指如果已經有一些內容通過哈希分派到了相應 的緩沖中,又有新的緩沖加入到系統中。哈希的結果應能夠 保證原有已分配的內容可以被映射到新的緩沖中去,而不會 被映射到舊的緩沖集合中的其他緩沖區。 #緩存數據存儲與一致性Hash ## 什么是一致性Hash 1、一致性緩存什么意思? 起碼不會隨著緩存服務器 IP 地址順序而發生大的變 化吧! 2、一致性 Hash 算法首先要考慮單調性 不會隨著個別服務器的更新或者減少而發生巨大的緩 存遷徙。 3、一致性 Hash 算法其次要考慮平衡性 平衡性是指哈希的結果能夠盡可能分布到所有的緩沖中 去,這樣可以使得所有的緩沖空間都得到利用。 ![](https://box.kancloud.cn/2016-05-11_5732e06e515e0.png) ![](https://box.kancloud.cn/2016-05-11_5732e06e8978c.png) ## 圖解一致性 Hash —— PHP 實現 1、flexihash 庫 2、測試庫的使用 3、了解實現![](https://box.kancloud.cn/2016-05-11_5732e06ebeba3.png) #緩存總結與緩存使用 ##什么是一致性Hash ## 多級緩存體系介紹 1、一再強調,緩存是重中之重,是我們心中的優 化之劍 2、我們現在來總結,緩存都有哪些? 3、設備、訪問路徑、前端、Web上、數據庫、其 他層、分發路徑? 4、好處,壞處 ## 緩存之再細化 1、進程內緩存 2、頁面片斷緩存(ESI) 3、模板編譯、本地緩存、Opcode Cache 4、集中式緩存 5、中間層緩存 6、數據庫緩存 ## 以下哪些不是Web 工程師要考慮的部分? A、前端瀏覽器緩存 B、Web端文件緩存 C、CDN 文件緩存 D、用戶桌面系統的系統緩存 E、DNS 緩存 F、服務器端 tmpfs 緩存 答案 abcef ##緩存匯總與緩存使用 **1、緩存的本質** A、空間換時間,減少遠程存取,減少運算 B、更快速度的設備、更近的距離 C、永遠都不是原始數據 所以要做好丟失的風險 D、在用戶體驗與效率之間的平衡 所有的架構都是平衡的藝術 **以下哪些數據要以保存在緩存里?** A、頻繁更新的玩游戲的經驗值等數據 B、搶購商品的商品數目上限 C、社交網絡上的用戶好友關系 D、用戶個人資料信息 E、用戶賬戶的金錢信息,先更新到緩存,再更新 到庫中 答案abcd #Redis和Memcache的區別分析 1、 Redis和Memcache都是將數據存放在內存中,都是內存數據庫。不過memcache還可用于緩存其他東西,例如圖片、視頻等等。 2、Redis不僅僅支持簡單的k/v類型的數據,同時還提供list,set,hash等數據結構的存儲。 3、虛擬內存--Redis當物理內存用完時,可以將一些很久沒用到的value 交換到磁盤 4、過期策略--memcache在set時就指定,例如set key1 0 0 8,即永不過期。Redis可以通過例如expire 設定,例如expire name 10 5、分布式--設定memcache集群,利用magent做一主多從;redis可以做一主多從。都可以一主一從 6、存儲數據安全--memcache掛掉后,數據沒了;redis可以定期保存到磁盤(持久化) 7、災難恢復--memcache掛掉后,數據不可恢復; redis數據丟失后可以通過aof恢復 8、Redis支持數據的備份,即master-slave模式的數據備份。
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看