亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 語言 > PHP > 正文

php加速 PHP APC 淺析

2024-09-04 11:50:19
字體:
來源:轉載
供稿:網友

PHP APC提供兩種緩存功能,即緩存Opcode(目標文件),我們稱之為apc_compiler_cache。同時它還提供一些接口用于PHP開發(fā)人員將用戶數據駐留在內存中,我們稱之為apc_user_cache。我們這里主要控討php-apc的配置。

 

安裝PHP APC

作為測試環(huán)境,我們這里使用的是CentOS5.3(2.6.18-128.el5PAE) + Apache2.0(prefork) + php5.2。我們可以去pecl apc下載APC-3.0.19.tgz

[cc lang='bash']
# tar -xzvf APC-3.0.19.tgz
#cd APC-3.0.19
# /usr/bin/phpize
# ./configure --enable-apc --enable-mmap --enable-apc-spinlocks --disable-apc-pthreadmutex
#make
#make install
[/cc]
注意:我們這里支持mmap,同時采用spinlocks自旋鎖。Spinlocks是Facebook推薦使用,同時也是APC開發(fā)者推薦使用的鎖機制。

PHP APC 配置參數

如果你使用的系統環(huán)境跟我的測試環(huán)境是一樣的話,可以在/etc/php.d目錄下創(chuàng)建文件apc.ini,并且相關配置寫入/etc/php.d/apc.ini文件。這里,我們挑了一些常用到的配置,并進行探討。把相關的配置放在一起解釋。

apc.enabled=1
apc.enabled默認值是1,你可設成0禁用APC。如果你設置為0的時候,同樣把extension=apc.so也注釋掉(這樣可以節(jié)約內存資源)。一旦啟用了APC功能,則會緩存Opcodes到共享內存。

APC既然把數據緩存在內存里面,我們就有必要對它進行內存資源限定。通過這二個配置可以限定APC可以使用的內存空間大小。apc.shm_segments指定了使用共享內存塊數,而apc.shm_size則指定了一塊共享內存空間大小,單位是M。所以,允許APC使用的內存大小應該是 apc.shm_segments * apc.shm_size = 30M。你可以調整一塊共享內存的大小空間。當然,一塊共享內存最大值是受操作系統限制的,即不能超過/proc/sys/kernel/shmmax大小。否則APC創(chuàng)建共享內存的時候,會失敗。在apc.shm_size達到了上限的時候,你可以通過設置apc.shm_segments來允許APC使用更多的內存空間。我們推薦,如果調用APC使用內存空間的話,先考濾apc.shm_size,后考濾apc.shm_segments。具體數值,可以根據apc.php監(jiān)控情況進行規(guī)劃與調整。值得注意的是,每一次調整需要重啟httpd守護進程,這樣可以重新加載apc.so模塊。跟隨著httpd守護進程啟動,apc.so模塊就會加載。apc.so加載初始化的時候,通過mmap請求分配內存指定大小的內存,即apc.shm_size * apc.shm_segments。而且,這里使用的是匿名內存映射方式,通過映射一個特殊設備/dev/zero,提供一個"大型"的,填滿了零的內存供APC管理。
為了驗證以上陳述,我們注釋掉apc.ini配置,并且寫了以下php腳本觀察apc.so模塊初始化的分配的內存空間。

[cc lang='php']
//@file: apc_load.php
if (!extension_loaded('apc')) {
dl('apc.so'); #加載apc.so模塊
echo posix_getpid(); #//輸出當前進程的pid,我這里這里輸出的是14735
ob_flush();
flush();
sleep(3600); #讓進程進入休眠狀態(tài).這樣,我們可以觀察內存分配情況
}
?>
[/cc]
[cc lang='bash']
#strace -p `cat /var/run/httpd.pid`
open("/var/www/html/apc_load.php", O_RDONLY) = 13
...
mmap2(NULL, 31457280, PROT_READ|PROT_WRITE, MAP_SHARED|MAP_ANONYMOUS, -1, 0) = 0xb5ce7000
...
nanosleep({3600, 0},
[/cc]

紅色部分,我們可以看出。通過mmap系統內核調用分配了30M(31457280/1024/1024)內存空間。PROT_READ|PROT_WRITE表示該內存空間可供讀取與寫入。MAP_SHARED表示該內存空間與其它進程是共享的,即其它進程也可以進行讀取與寫入,我們可以通過apc.php進行管理該塊內存空間亦是受益于此設定。MAP_ANONYMOUS則表示匿名映射。其中fd=-1表示忽略,因為這里映射的特殊設備/dev/zero。最后的0表示無偏移量。我們還可以通過進程映像文件查看該塊內存的具體情況
[cc lang='bash']
#cat /proc/14735/smaps

 

 

b5ce7000-b7ae7000 rw-s 00000000 00:08 633695 /dev/zero (deleted)
Size: 30720 kB
Rss: 44 kB
Shared_Clean: 0 kB
Shared_Dirty: 0 kB
Private_Clean: 0 kB
Private_Dirty: 44 kB
[/cc]
可以很容易地發(fā)現起始地址0xb5ce7000與上面mmap系統內核調用返回的地址一樣。該塊內存是可讀寫rw,并與其它進程共享s。而/dev/zero則是映射文件,該文件節(jié)點是633695。其中,size表示進程可以使用的內存空間,而rss則表示實際分配的內存空間,且由Private_Dirty可以看出,實際分配的44kb內存是由當前進程自己分配的。

apc.num_files_hint = 1000
apc.user_entries_hint = 4096

這二配置指定apc可以有多少個緩存條目。apc.num_files_hint說明你估計可能會有多少個文件相應的opcodes需要被緩成,即大約可以有多少個apc_compiler_cache條目。另外apc.user_entries_hint則說明你估計可能會有多少個apc_userdata_cache條目需要被緩存。如果項目中不使用apc_store()緩存用戶數據的話,該值可以設定得更小。也就是說apc.num_files_hint與apc.user_entries_hint之和決定了APC允許最大緩存對象條目的數量。準確地設置這二個值可以得到最佳查詢性能。當然,如果你不清楚要進行多少緩存(緩存對象實例)的情況下,你可以不必修改這二項配置。
其中apc.user_entries_hint要根據項目實際開發(fā)使用了apc_store()條目估計其值大小。相較而言,apc.num_files_hint可以通過find命令,更容易地估計其大小。比如我們的web根目是/var/vhosts,則使用下面的find命令可以大致地統計當前apc.num_files_hint數目.

[cc lang='bash']
#find /var/vhosts /( -name “*.php” -or -name “*.inc” /) -type f -print |wc -l
1442
[/cc]

apc.stat = 1
apc.stat_ctime = 0

這二個參數,只跟apc_compiler_cache緩存相關,并不影響apc_user_cache。我們前面提到過apc_complier_cache,它緩存的對象是php源文件一一對應的opcodes(目標文件)。PHP源文件存放在磁盤設備上,與之相對應的Opcodes目標文件位置內存空間(共享內存),那么當php源文件被修改以后,怎么通知更新內存空間的opcodes呢?每次接收到請求后,APC都會去檢查打開的php源文件的最后修改時間,如果文件的最后修改時間與相應的內存空間緩存對象記錄的最后修改時間不一致的話,APC則會認為存放在內存空間的Opcode目標文件(緩存對象)已經過期了,acp會將緩存對象清除并且保存新解析得到的Opcode。我們關心的是,即便沒有更新任何php源文件,每次接受到http請求后,APC都會請求系統內核調用stat()來獲取php源文件最后修改時。我們可以通過將apc.stat設置為0,要求APC不去檢查Opcodes相對應的php源文件是否更新了。這樣可以獲得最佳的性能,我們也推薦這么做。不過,這樣做有一點不好的就是,一旦有PHP源文件更新了之后,需要重啟httpd守護進程或者調用apc_cache_clear()函數清空APC緩存來保證php源文件與緩存在內存空間的Opcodes相一致。

[cc lang='php']
define('ROOTP', dirname(__FILE__) . '/');
include(ROOTP . 'i1.php');
require(ROOTP . 'i2.php');
include_once(ROOTP . 'i3.php');
require_once(ROOTP . 'i4.php');
require(ROOTP . 'i5.php');
include(ROOTP . 'i6.php');
?>
[/cc]
[cc lang='bash']
# strace -e trace=file -p `cat /var/run/httpd.pid`
getcwd("/var/www/html", 4096) = 14
stat64("/var/www/html/i1.php", {st_mode=S_IFREG|0644, st_size=39, ...}) = 0
stat64("/var/www/html/i2.php", {st_mode=S_IFREG|0644, st_size=39, ...}) = 0
lstat64("/var", {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0
lstat64("/var/www", {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0
lstat64("/var/www/html", {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0
lstat64("/var/www/html/i3.php", {st_mode=S_IFREG|0644, st_size=39, ...}) = 0
open("/var/www/html/i3.php", O_RDONLY) = 12
stat64("/var/www/html/i3.php", {st_mode=S_IFREG|0644, st_size=39, ...}) = 0
lstat64("/var", {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0
lstat64("/var/www", {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0
lstat64("/var/www/html", {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0
lstat64("/var/www/html/i4.php", {st_mode=S_IFREG|0644, st_size=39, ...}) = 0
open("/var/www/html/i4.php", O_RDONLY) = 12
stat64("/var/www/html/i4.php", {st_mode=S_IFREG|0644, st_size=39, ...}) = 0
stat64("/var/www/html/i5.php", {st_mode=S_IFREG|0644, st_size=39, ...}) = 0
stat64("/var/www/html/i6.php", {st_mode=S_IFREG|0644, st_size=39, ...}) = 0
chdir("/tmp") = 0

# strace -e trace=file -p `cat /var/run/httpd.pid`
getcwd("/var/www/html", 4096) = 14
open("/var/www/html/i3.php", O_RDONLY) = 12
open("/var/www/html/i4.php", O_RDONLY) = 12
chdir("/tmp") = 0
[/cc]
對比可見,當apc.stat=0時,省了很多系統內核調用,我們沒有看到系統內核調用stat64了。其中,i3.php和i4.php分別是php的include_once和require_once函數調用,它要交給fstat()系統內核調用來檢查文件是否打開過。單從性能角度出發(fā)的話,require比require_once性能更佳。

設置apc.stat_ctime的意義并是很大。如果apc.stat_ctime值為1時,僅當php源文件的創(chuàng)建時間(ctime)大于php源文件的最后修改時間(mtime)時,緩存對象的mtime時間會被php源文件的ctime所代替,否則緩存對象的mtime依然記錄為php源文件的mtime。這樣做是防止通過cvs, svn或者rsync等工具刷新php源文件的mtime,這樣會導致APC通過比對php源文件的創(chuàng)建時間ctime來決定緩存對象有沒有過期。我們推薦該保持默認值,即apc.stat_ctime = 0

apc.ttl=0
apc.user_ttl=0

緩存對象的生命周期。其中ttl表示Time To Live,意味著指定時間后緩存對象會被清除。其中0表示永不過期。我們前面提過,APC能緩存的條目是受限定的,如果你把ttl設置永不過期的話,當緩存條目已滿或者緩存空間不夠,之后的緩存都將失敗。
其中apc.ttl作用于apc_compiler_cache。當apc.ttl大于0時,每次請求都會對比這次的請求時間與上一次請求時間之差是不是大于apc.ttl,如果大于apc.ttl,則會被認緩存條目過期了,會被清理。
比較有意思的是apc.user_ttl,它主要作用于apc_user_cache緩存。我們知道,這種類型的緩存是通過apc_store($key, $var, $ttl = 0)創(chuàng)建的緩存對象。函數apc_store()中指定的$ttl與php.ini中設定的apc.user_ttl有什么異同,是我們比較關心的。因為它們同樣作用于apc_userdata_cache緩存。經過分析,我們知道:判斷apc_user_cache緩存過期的依據是,當apc.user_ttl大于0,且這次http請求時間與上一次http請求時間之差大于apc.user_ttl,則認為相應的緩存條目已過期;或者,user.data.ttl(php函數apc_store()中指定的$ttl)大于0,且這次http請求時間與緩存對象創(chuàng)建時間ctime之差大于user.data.ttl,則同樣認為緩存條目已過期,會被清除。
我們推薦,如果你的項目較為穩(wěn)定,并且apc.stat設置為0。同時apc.shm_size、apc.num_files_hint設置合理的話,apc.ttl建議設置為0。即apc_compiler_cache永不回收,直到重啟httpd守護進程或者調用函數apc_cache_clear()清緩存。至于apc.user_ttl,建議設置為0,由開發(fā)人員調用apc_store()函數的時候,設置$ttl來指定該緩存對象的生命周期。

apc.slam_defense=0
apc.write_lock=1
apc.file_update_protection=2

之所以把這三個配置放在一起解釋,是因為他們的意義很相近。其中apc.file_update_protection最好理解,它的單位是時間單位秒。如果當前http請求時間與php源文件最好修改時間mtime之差小于apc.file_update_protection時間,APC則不會緩存該php源文件與之對應的Opcodes,直到接下來的某次訪問,并且訪問時間與php源文件的最后修改時間大于apc.file_update_protection時間,相之相應的Opcodes才會被緩存到共享內存空間。這樣做的好處是,不容易被用戶訪問到你正在修改的源文件。我們推薦在開發(fā)環(huán)境,該值可以設置得更大一點,但在運營環(huán)境,我們推薦保留默認值即可。
當你的網站并發(fā)量很大的時候,可能出現由http守護進程fork的多個子進程同時緩存同一份Opcodes的情況。通過apc.slam_defense則可以減少這種事情的發(fā)生機率。比如,apc.slam_defense值設置為60的時候,當遇到未緩存的Opcodes,每100次有60次是不緩存的。對于并發(fā)量不大的網站,我們推薦該值設定為0,對于并發(fā)量高的網站我們可以根據統計適當地調整該值。而apc.write_lock是一個布爾值,當該值設置為1的時候,當多個進程同時緩存同一份Opcodes時,僅當最先那個進程緩存有效,其它的無效。通過apc.write_lock設置,有效地避免了緩存寫競爭的出現。

apc.max_file_size=1M
apc.filters = NULL
apc.cache_by_default=1

這三個配置放在一起,是因為他們都用于限制緩存。其中apc.max_file_size表示如果php源文件超過了1M,則與之對應的opcodes不被緩存。而apc.filters指定一個文件過濾列表,以逗號(,)隔開。當apc.cache_by_default等于1時,與apc.filters列表中指定的文件名相匹配的文件不會被緩存。相反,apc.cache_by_default等于0時,僅緩存與acp.filters列表中指定的文件相匹配的文件。

 

總結

1,使用Spinlocks鎖機制,能夠達到最佳性能。
2,APC提供了apc.php,用于監(jiān)控與管理APC緩存。不要忘記修改管理員名和密碼
3,APC默認通過mmap匿名映射創(chuàng)建共享內存,緩存對象都存放在這塊"大型"的內存空間。由APC自行管理該共享內存
4,我們需要通過統計調整apc.shm_size、apc.num_files_hints、apc.user_entries_hint的值。直到最佳
5,好吧,我承認apc.stat = 0 可以獲得更佳的性能。要我做什么都可以接受.
6,PHP預定義常量,可以使用apc_define_constants()函數。不過據APC開發(fā)者介紹說pecl hidef性能更佳,拋異define吧,它是低效的。
7,函數apc_store(),對于系統設置等PHP變量,生命周期是整個應用(從httpd守護進程直到httpd守護進程關閉),使用APC比Memcached會更好。必竟不要經過網絡傳輸協議tcp。
8,APC不適于通過函數apc_store()緩存頻繁變更的用戶數據,會出現一些奇異現象。

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
欧美久久电影| 亚洲欧美精品伊人久久| 国产午夜麻豆影院在线观看| 亚洲自拍电影| 久久国产精品久久精品国产| 亚洲精品中文字幕乱码三区| 日韩高清影视在线观看| 亚洲国产天堂久久综合网| 日韩欧美a级片| 免费视频爱爱太爽了| 日韩二区三区四区| 97偷自拍亚洲综合二区| 欧美日韩人妻精品一区在线| 大胆人体一区二区| 国产成人无吗| 国产精品亚洲欧美在线播放| 自拍偷拍精品| 2020色愉拍亚洲偷自拍| 国产脚交av在线一区二区| 蜜臀av色欲a片无码精品一区| 18禁裸乳无遮挡啪啪无码免费| sis001亚洲原创区| 日本三级一区二区| 三级毛片电影网站| brazzers在线观看| 丝袜 亚洲 另类 欧美 重口| 日韩在线一区二区三区四区| 视频在线不卡免费观看| 九九在线视频| 国产对白在线正在播放| 国产天堂在线观看| 色爱区综合激月婷婷| 一个人www视频在线免费观看| 比比资源先锋| 欧美情侣在线播放| 91久久久久久| 明星国产一级毛片范冰冰视频| 免费成人深夜夜行视频| 超碰97在线免费观看| 午夜日韩av| 日本一区二区在线免费播放| 午夜免费一区| 精品国产一区二区三区四区vr| 国产精品视频一区二区三区麻豆| 久久亚洲一级片| a一区二区三区亚洲| 免费看成一片| 亚洲激情校园春色| 国产精品无码毛片| 日本妇乱大交xxxxx| 乱中年女人伦av一区二区| 国产女人18毛片水18精| 少妇精品无码一区二区| 精品一区二区三区人妻| 五月开心六月丁香综合色啪| 五月开心六月丁香综合色啪| 伊人久久成人网| 开心色怡人综合网站| 成人免费淫片aa视频免费| 欧美国产成人在线| 国产青青视频| 黄色av地址| 成人乱人伦精品视频在线观看| 色婷婷视频在线观看| 伊人久久大香线蕉综合四虎小说| 国产污污视频在线观看| 欧美三级免费观看| 欧美中文字幕在线播放| 亚洲最新视频在线| 亚洲高清123| 国产精品久久久久秋霞鲁丝| 天堂8在线天堂资源bt| 一区二区动漫| 国产高潮国产高潮久久久91| 欧美性xxxx极品hd欧美| 欧美性xxxx禁忌| 黄色aaa视频| 天堂аⅴ在线地址8| 丰满人妻妇伦又伦精品国产| 热re99久久国产精品| 免费成人深夜夜行视频| 四虎国产成人永久精品免费| 日日摸夜夜添夜夜添国产精品| a天堂中文在线官网在线| 美女的诞生在线观看高清免费完整版中文| 色偷偷777| 日韩妆和欧美的一区二区| 色视频一区二区三区| 伊人精品综合| 99久久99久久精品国产片| 男人操女人动态图| 在线观看免费黄视频| 在线观看av中文| 精品69视频一区二区三区| 日韩电影免费观看| 人妻激情另类乱人伦人妻| 午夜视频在线| 涩涩涩久久久成人精品| 欧美涩涩网站| 99国产精品久久一区二区三区| 欧美综合视频在线| 日韩五码在线观看| 亚洲国产激情| 啦啦啦高清在线观看www| 精品成人a区在线观看| 97在线观看免费观看| 免费污网站在线观看| 中国一级免费毛片| 国产精品午夜在线| 亚洲视频一区二区三区四区| 欧美精品久久一区二区三区| 日韩成人av在线播放| 国产精品电影久久久久电影网| 成人性做爰片免费视频| 国产7777777| 日本一二三四区视频| 中文字幕无码人妻少妇免费| 亚洲精品第一区二区三区| 波多野结衣免费观看| 97在线免费观看| 激情视频免费| 九一在线视频| 久久久高清视频| 久久精品视频99| 青青草97国产精品免费观看无弹窗版| 久久6精品影院| 日本道在线视频| 精品人妻一区二区三区四区| 黄色av网站免费观看| 狠狠做深爱婷婷综合一区| 69xxx免费视频| 91大片在线观看| 91精品久久久久久久久| 免费在线播放第一区高清av| 日韩精品免费一区二区三区竹菊| 噜噜噜噜噜久久久久久91| 国产伦精品一区三区精东| 欧美丝袜丝交足nylons| 30一40一50老女人毛片| 天堂网www在线资源中文| 18视频免费网址在线观看| 日韩欧美在线看| 欧美乱大交xxxxx另类| xxav国产精品美女主播| jizzjizzwww| 超碰97人人人人人蜜桃| 日韩av在线网址| 成人免费毛片aaaaa**| 97在线资源在| 欧美日韩成人在线| 在线成人私人影院| 青青草原成人网| 品天堂xxxx高清| 欧美国产日韩另类| 91极品视频在线观看| 999精品免费视频| 成人片在线播放| av网站免费播放| 日本三级在线电影| 美女写真理伦片在线看| 日本www高清视频| 亚洲欧美偷拍另类a∨色屁股| 免费黄色电影在线观看| 九九九久久久久久| 一本色道无码道dvd在线观看| 国精产品一区| 国产特黄级aaaaa片免| 农村老熟妇乱子伦视频| 清纯唯美亚洲综合| 久久久噜噜噜久噜久久| 91精品国产吴梦梦| 久久久久成人精品无码| 欧美在线高清视频| 欧美日本亚洲韩国国产| 91老司机在线| 国产精品一区二区午夜嘿嘿嘿小说| 国产亚洲精品久久久久久无几年桃| 亚洲第一中文av| 欧美2区3区4区| 色久欧美在线视频观看| 国产99久久久久| 国产欧美日韩一区| 91在线视频免费看| 日本少妇bbwbbw精品| 国产真实久久| 国产日韩欧美一区二区三区乱码| 国产欧美va欧美不卡在线| 国产精品黄色大片| 韩日毛片在线观看| 成人avav影音| 国产亚洲精品久久777777| 色多多视频在线播放| 国产亚洲精品激情久久| 日韩精品1区2区3区| 精品精品国产国产自在线| 精品视频在线观看免费| 国产精品高清免费在线观看| 亚洲激情自拍图| 少妇高潮av久久久久久| 嫩草研究院在线观看| 国产精品久久久一区二区三区| av中文在线资源| 婷婷精品久久久久久久久久不卡| igao视频网在线视频| 国产精品久久久久av福利动漫| 制服丝袜中文字幕亚洲| 黄色的电影在线-骚虎影院-骚虎视频| 国产一区在线视频| 欧洲在线/亚洲| 女同激情久久av久久| 午夜精品久久久久久久99樱桃| 国产一国产二国产三| 亚洲精一区二区三区| 韩国视频一区二区三区| 亚洲青涩在线| 久久免费视频3| 日本美女一区二区| 亚洲人成绝费网站色ww| 国产高清免费在线观看| 黄在线观看网站| 亚洲专区一二三| 青春草国产成人精品久久| 亚洲欧美综合区自拍另类| 麻豆国产精品一区二区三区| 国产真人无遮挡作爱免费视频| 成人在线观看小视频| 日韩欧美一级| 午夜精品短视频| 国精产品久拍自产在线网站| 一本久道综合久久精品| 一道本无吗dⅴd在线播放一区| 久久亚洲精精品中文字幕| 麻豆国产在线| 日本三级韩国三级欧美三级| 国产亚洲精品资源在线26u| 国产精品网站视频| 国产9色视频| 欧美亚洲国产一区二区三区va| 4438全国亚洲精品观看视频| 亚洲一二三在线| 成人久久久久久久久| 国产精品无码人妻一区二区在线| 99精品欧美一区二区三区综合在线| 色鬼7777久久| 波多野结衣视频网站| 亚洲性生活视频在线观看| 精品熟妇无码av免费久久| 在线天堂中文www视软件| 精品大片一区二区| 一区二区三区四区视频精品免费| 亚洲欧美日韩一区| 欧美一区不卡| 国产亚洲精品熟女国产成人| 欧美一级久久久| 久久99精品视频| 日本欧美黄网站| 国产午夜久久久久| 中文字幕第315页| 日日干夜夜操| 一区二区三区日本久久久| 成人黄色免费电影| 欧美日韩午夜在线| 欧美韩国日本在线观看| 久久综合色之久久综合| 女人天堂网站| 在线午夜精品自拍| 欧美一级做性受免费大片免费| 爱爱爱视频网站| 国产韩国精品一区二区三区| 日韩免费高清在线| 懂色中文一区二区三区在线视频| 国产欧美一二三区| 欧美大肚乱孕交hd孕妇| 欧美久久99| 日本手机在线视频| 国产精品网站免费| 久久久精品久久久久久96| 色喇叭免费久久综合网| 91久久国产最好的精华液| 一级片在线免费看| 国产精品无码一本二本三本色| 2021国产在线| 成人亚洲综合色就1024| 精品国产精品国产偷麻豆| 国产一区二区三区福利| 日韩精品在在线一区二区中文| 神马午夜久久| 一区二区三区在线观看欧美| 欧美精品一区二区高清在线观看| 色喇叭免费久久综合| 在线视频免费观看一区| 国产高清视频网| 蜜乳av一区| 二人午夜免费观看在线视频| 亚洲精品电影在线观看| 日本成人黄色片| 精品久久久久久国产| 亚洲国产精品毛片| 久热成人在线视频| 性色88av老女人视频| 国产亚洲精品美女久久| 最新av中文字幕| 国产一区二区三区四区视频| 国产精品15p| 147欧美人体大胆444| 久久精品99| 天天噜夜夜操| 中文字幕丰满乱子伦无码专区| 91福利视频网| 99在线精品视频在线观看| 屁屁影院国产第一页| 国 产 黄 色 大 片| 亚洲精品乱码久久久久久久久久久久| 欧洲生活片亚洲生活在线观看| 岛国成人毛片| 精品日韩毛片| 国产剧情麻豆剧果冻传媒视频免费| 亚洲国产无码精品| 性欧美freesex顶级少妇| 日韩精品美女| 网站永久看片免费| 色爱区综合激月婷婷| 午夜免费福利网站| 北条麻妃69av| 亚洲高清在线观看| 亚洲人体偷拍| 精品人妻一区二区乱码| 欧美aaaaaaaa牛牛影院|