青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

lxyfirst

C++博客 首頁(yè) 新隨筆 聯(lián)系 聚合 管理
  33 Posts :: 3 Stories :: 27 Comments :: 0 Trackbacks

#

1.GFS采用典型的管理節(jié)點(diǎn)(master)+數(shù)據(jù)節(jié)點(diǎn)(chunkserver)模式。
2.文件系統(tǒng)的meta-data信息由master維護(hù),存放在內(nèi)存中,通過(guò)log文件持久保存。
3.每個(gè)數(shù)據(jù)chunk的位置由chunkserver在啟動(dòng)時(shí)上報(bào)給master,master不維護(hù)這部分?jǐn)?shù)據(jù),主要是維護(hù)master和chunkserver的一致性比較麻煩。
4.master通過(guò)checkpoint和operation log的持久化保證master數(shù)據(jù)的可靠性。
5.checkpoint使用可映射內(nèi)存數(shù)據(jù)結(jié)構(gòu)的方式,以加速載入。
6.chunk使用版本號(hào)保證各個(gè)replication的一致性。
7.不一致的chunk將被統(tǒng)一回收。
8.更新數(shù)據(jù)時(shí)通過(guò)lease機(jī)制進(jìn)行數(shù)據(jù)復(fù)制,客戶端將數(shù)據(jù)寫(xiě)入各節(jié)點(diǎn),成功后通知主節(jié)點(diǎn)更新?tīng)顟B(tài)。

posted @ 2010-08-11 10:06 star 閱讀(225) | 評(píng)論 (0)編輯 收藏

1.信號(hào)的概念,信號(hào)是進(jìn)程收到某些事件發(fā)生的通知機(jī)制,也被稱(chēng)為軟中斷。
信號(hào)的產(chǎn)生:信號(hào)一般有kernel產(chǎn)生,也可以由進(jìn)程通過(guò)一些系統(tǒng)調(diào)用產(chǎn)生,如kill,abort,alrm,raise等。
信號(hào)的投遞(delivery): kernel會(huì)將產(chǎn)生的信號(hào)盡快投遞給相應(yīng)進(jìn)程(進(jìn)程運(yùn)行時(shí)或下一次被調(diào)度時(shí)),是異步過(guò)程,在產(chǎn)生之后,投遞到進(jìn)程之前的這段時(shí)間處于未決狀態(tài)(pending)。
信號(hào)的阻塞(block):進(jìn)程可以阻塞一些信號(hào)的投遞,以防中斷代碼的執(zhí)行,每個(gè)進(jìn)程/線程有各自的阻塞信號(hào)掩碼。阻塞狀態(tài)中產(chǎn)生的相應(yīng)信號(hào)處于未決狀態(tài)(pending),直到進(jìn)程解除阻塞時(shí)才被投遞,相關(guān)調(diào)用如sigprocmask,pthread_sigmask , sigpending 。
信號(hào)的忽略(ignore):信號(hào)投遞到進(jìn)程后,調(diào)用相應(yīng)信號(hào)處理程序,分為三種處理情況:默認(rèn):系統(tǒng)默認(rèn)處理,忽略:不處理,自定義:調(diào)用自定義handler 。相關(guān)調(diào)用如signal,sigaction 。

2.信號(hào)分為實(shí)時(shí)信號(hào)和非實(shí)時(shí)信號(hào),老的unix信號(hào)都是非實(shí)時(shí)信號(hào),不排隊(duì)(同時(shí)觸發(fā)多個(gè)相同信號(hào)只有1次通知)。 新的SIGRTMIN~SIGRTMAX的信號(hào)是實(shí)時(shí)信號(hào),排隊(duì)。
3.帶參數(shù)的信號(hào)處理
    在使用sigaction注冊(cè)信號(hào)時(shí),如果指定了SA_SIGINFO,則系統(tǒng)回調(diào)void (*sa_sigaction)(int, siginfo_t *, void *)進(jìn)行信號(hào)處理,siginfo_t會(huì)被傳送給處理函數(shù),可以在其中的si_value中指定傳遞的數(shù)據(jù)。
    在發(fā)送信號(hào)時(shí)使用sigqueue,可以指定sigval,其中包含了需要傳遞的數(shù)據(jù)。
4.信號(hào)處理函數(shù)是不可重入的,所以一般只會(huì)在函數(shù)中設(shè)置一些flag,有用戶程序異步處理,比如退出信號(hào)TERM的處理。
posted @ 2010-04-29 17:59 star 閱讀(190) | 評(píng)論 (0)編輯 收藏

1.置socket為nonblock 。
2.連接,返回-1,errno為EINPROGRESS 。
3.使用select監(jiān)控讀寫(xiě)事件。
4.如果觸發(fā)讀寫(xiě)事件,重新connect,應(yīng)返回-1,errno為EISCONN,表明連接成功。

Q :為何要重新connect ?
A :連接失敗也可能觸發(fā)讀寫(xiě)事件,重新connect用于確定socket狀態(tài)是否已連接。 


int sockfd = socket(AF_INET,SOCK_STREAM,0) ;
fcntl(sockfd,F_SETFL,O_NONBLOCK
|fcntl(sockfd,F_GETFL,0) ) ;
sockaddr_in addr 
= {0} ;
addr.sin_family 
= AF_INET ;
addr.sin_addr 
= inet_addr("192.168.0.1") ;
addr.sin_port 
= htons(80);
if ( connect(sockfd,addr,sizeof(addr)) < 0 && errno !=EINPROGRESS)
{
    
//connect failed
    close(sockfd) ;
    
return -1 ;
}
struct timeval timeout= {5,0} ;
fd_set rs,ws ;
FD_ZERO(
&rs) ;
FD_ZERO(
&ws) ;
FD_SET(sockfd,
&rs) ;
FD_SET(sockfd,
&ws) ;

if ( select(sockfd+1,&rs,&ws,NULL,&timeout)  < 1 )
{
        
//timeout
}
else
{
    
if ( connect(sockfd,addr,sizeof(addr)) < 0 && errno !=EISCONN)
    {
         
//connect failed
    }

    
//success

}





posted @ 2009-11-08 11:30 star 閱讀(1434) | 評(píng)論 (1)編輯 收藏

sshd收到客戶端連接請(qǐng)求時(shí)默認(rèn)會(huì)做域名反查,反查過(guò)程如果慢,用戶就會(huì)感覺(jué)連接慢。
1.最直接的辦法是修改sshd的配置,UseDNS項(xiàng)改為0,重啟sshd 。
2.修改hosts或resolv.conf , 使得sshd能夠快速進(jìn)行域名反查。

posted @ 2009-07-16 14:15 star 閱讀(234) | 評(píng)論 (0)編輯 收藏

1.c++繼承體系中內(nèi)存布局的padding是保留的,這是為了防止父類(lèi)和子類(lèi)互相賦值時(shí)出現(xiàn)語(yǔ)義錯(cuò)誤。
2.同樣由于內(nèi)部實(shí)現(xiàn)的差別,如padding或vptr的存在,慎用memset等內(nèi)存直接操作方式,c++標(biāo)準(zhǔn)沒(méi)有規(guī)定內(nèi)存的布局細(xì)節(jié)。
3.指向?qū)ο蟪蓡T的指針類(lèi)型,其值是偏移值,這就產(chǎn)生一個(gè)問(wèn)題,指向第一個(gè)成員的偏移值為0,空指針值也為0,必須對(duì)這種情況加以區(qū)分,實(shí)現(xiàn)策略是將指向成員的指針值(偏移)被加1,用以和空指針區(qū)分開(kāi)來(lái),因此使用指向成員的指針值應(yīng)減1以得到真實(shí)的偏移。
X::*p=0 ;
X::*p=&X::first ;

posted @ 2009-05-22 12:37 star 閱讀(177) | 評(píng)論 (0)編輯 收藏

函數(shù)式編程中一切皆是函數(shù),函數(shù)的同一個(gè)輸入產(chǎn)生的結(jié)果是確定的,不依賴于外部狀態(tài) 。
所有的變量可以看作不可改變的,因此無(wú)法保存狀態(tài)。
函數(shù)式編程的重點(diǎn)是定義而不是狀態(tài)機(jī)的實(shí)現(xiàn),而普通的過(guò)程式編程正好相反。
函數(shù)式程序中各語(yǔ)句不一定嚴(yán)格按順序執(zhí)行,但不影響結(jié)果,這種無(wú)序化正是并行運(yùn)算的基礎(chǔ),是天然邏輯分離的。

closure :函數(shù)式強(qiáng)調(diào)無(wú)狀態(tài),但closure用于實(shí)現(xiàn)狀態(tài) 。
continuation :將結(jié)果作為參數(shù)傳給下一個(gè)函數(shù) , 類(lèi)似于返回地址的跳轉(zhuǎn),在函數(shù)返回時(shí)將結(jié)果作為參數(shù)調(diào)用下一個(gè)函數(shù),用于實(shí)現(xiàn)有序化。
currying : 快速簡(jiǎn)易的創(chuàng)建數(shù)據(jù)封裝,類(lèi)似adapter模式,用于實(shí)現(xiàn)接口轉(zhuǎn)換 。



posted @ 2009-04-20 15:58 star 閱讀(243) | 評(píng)論 (0)編輯 收藏

1. epoll_create的參數(shù)size已經(jīng)無(wú)效了,最初這個(gè)size用來(lái)定義hash的size,后來(lái)使用rbtree替換了hash,因此該參數(shù)失去作用。
2. epoll_wait傳入的events和maxevents應(yīng)相匹配,表示一次處理的event數(shù)量。傳入大于1個(gè)的event結(jié)構(gòu)的意義在于一次性處理多個(gè)事件能夠提高效率,若maxevents小于此次觸發(fā)事件的總數(shù)量,下次epoll_wait會(huì)繼續(xù)觸發(fā)上次遺留未處理的事件。
3. 用戶在epoll_ctl添加監(jiān)控事件時(shí)可以填寫(xiě)event.data.ptr以便在epoll_wait觸發(fā)事件時(shí)獲取原來(lái)填寫(xiě)的值,主要用于在回調(diào)函數(shù)。

posted @ 2009-04-14 18:10 star 閱讀(230) | 評(píng)論 (0)編輯 收藏

1.解決eclipse在linux上瀏覽器加載失敗問(wèn)題 。
eclipse.ini中加入下面配置,使用xulrunner 。
-Dorg.eclipse.swt.browser.XULRunnerPath=/usr/lib64/xulrunner-1.9pre/xulrunner

-showsplash
org.eclipse.platform
-framework
plugins/org.eclipse.osgi_3
.4.3.R34x_v20081215-1030.jar
-vmargs
-Dorg.eclipse.swt.browser.XULRunnerPath
=/usr/lib64/xulrunner-1.9pre/xulrunner
-Dosgi.requiredJavaVersion
=1.5
-Xms40m
-Xmx256m
-XX:MaxPermSize
=256m

2.字體問(wèn)題,修改/etc/fonts/fonts.conf 。

3.windows上安裝X Server , Xming-6-9  ,并設(shè)置linux的環(huán)境變量export DISPLAY=XXXX:0 。

posted @ 2009-03-23 17:22 star 閱讀(496) | 評(píng)論 (1)編輯 收藏

rrdtools其實(shí)是一個(gè)基于文件的數(shù)據(jù)庫(kù),用于數(shù)據(jù)積累,統(tǒng)計(jì),生成圖片。
1.創(chuàng)建數(shù)據(jù)庫(kù)
rrdtool create usage.rrd DS:cpu:GAUGE:300:0:100 RRA:LAST
DS指定數(shù)據(jù)源,后面以':'為分隔符接著定義DS的屬性,格式為DS:ds-name:GAUGE | COUNTER | DERIVE | ABSOLUTE:heartbeat:min:max
ds-name:數(shù)據(jù)源的名字,a-zA-Z0-9 。
統(tǒng)計(jì)方式:
GAUGE:一般用于普通的統(tǒng)計(jì),如不同時(shí)間點(diǎn)的人數(shù)。
COUNTER:一般用于持續(xù)增加的計(jì)數(shù)器,計(jì)算增加速度。
COMPUTE:一般用于需要對(duì)數(shù)據(jù)做特殊運(yùn)算處理。
RRA指定數(shù)據(jù)統(tǒng)計(jì)方式,主要有MIN(最小值) , MAX(最大值) , AVERAGE(平均值) , LAST(單點(diǎn)值)。

2.添加數(shù)據(jù)
rrdtool update usage.rrd [time:value]

3.查看數(shù)據(jù)
rrdtool fetch
rrdtool dump

4.生成圖片
rrdtool graph


監(jiān)控cpu和網(wǎng)卡的腳本實(shí)例
rrd_init.sh
#!/bin/bash
cd $(dirname $0)

#network
awk -F':' '{if($1~/eth[0123456]$/ && $2 > 0 ) print $1;}' /proc/net/dev | while read if_name
do
    if_name=${if_name// }
    echo "creating ${if_name}.rrd  ..."
    /usr/local/rrdtool/bin/rrdtool create ${if_name}.rrd -s 60 DS:rx:COUNTER:120:U:U DS:tx:COUNTER:120:U:U RRA:AVERAGE:0.5:1:1440
done

#disk io
awk '{if($3~/[sh]d[abcdefgh]$/ && $4 > 0 ) print $3;}' /proc/diskstats | while read disk_name
do
    disk_name=${disk_name// }
    echo "creating ${disk_name}.rrd  ..."
    /usr/local/rrdtool/bin/rrdtool create ${disk_name}.rrd -s 60 DS:rio:COUNTER:120:U:U DS:wio:COUNTER:120:U:U RRA:AVERAGE:0.5:1:1440
done


#cpu
awk '{if($1~/^cpu/) print $1;}' /proc/stat | while  read cpu_name
do
    cpu_name=${cpu_name// }
    echo "creating ${cpu_name}.rrd  ..."
    /usr/local/rrdtool/bin/rrdtool create ${cpu_name}.rrd -s 60 DS:idle:COUNTER:120:U:U DS:user:COUNTER:120:U:U DS:iowait:COUNTER:120:U:U DS:i
ntr:COUNTER:120:U:U DS:total:COUNTER:120:U:U RRA:AVERAGE:0.5:1:1440

done

#memory

/usr/local/rrdtool/bin/rrdtool create memory.rrd -s 60 DS:TotalMemory:GAUGE:120:U:U DS:FreeMemory:GAUGE:120:U:U DS:TotalSwap:GAUGE:120:U:U D
S:FreeSwap:GAUGE:120:U:U RRA:AVERAGE:0.5:1:1440


rrd_stat.sh
* * * * * /usr/local/rrdtool/scripts/cpu_rrd_stat.sh > /dev/null 2>&1
#!/bin/bash
cd $(dirname $0)


#network
awk -F':' '{if($1~/eth[0123456]$/ && $2 > 0  ) printf("%s %s\n",$1,$2);}' /proc/net/dev | awk '{printf("%s %d %d\n",$1,$2,$10);}' | while read
 if_name if_rx if_tx
do
        if_name=${if_name// }
        /usr/local/rrdtool/bin/rrdtool update ${if_name}.rrd N:$if_rx:$if_tx
done

#disk io
awk '{if($3~/[sh]d[abcdefgh]$/ && $4 > 0 ) printf("%s %d %d\n",$3,$6,$10); }' /proc/diskstats | while  read disk_name disk_rio disk_wio
do
        disk_name=${disk_name// }
        /usr/local/rrdtool/bin/rrdtool update ${disk_name}.rrd N:$disk_rio:$disk_wio

done

#cpu
awk '{if($1~/^cpu/) {user=$2+$3 ;intr=$7+$8; printf("%s %d %d %d %d %d\n",$1,$5,user,$6,intr,user+$4+$5+$6+intr);} }' /proc/stat | while  read
 cpu_name cpu_idle cpu_user cpu_iowait cpu_intr cpu_total
do
        cpu_name=${cpu_name// }
        /usr/local/rrdtool/bin/rrdtool update ${cpu_name}.rrd N:$cpu_idle:$cpu_user:$cpu_iowait:$cpu_intr:$cpu_total

done


awk '{if($1~/^MemTotal/) mem_total=$2;else if($1~/^MemFree/) mem_free=$2;else if($1~/^SwapTotal/) swap_total=$2;else if($1~/^SwapFree/) swap_f
ree=$2;} END{printf("%d %d %d %d\n",mem_total,mem_free,swap_total,swap_free);}' /proc/meminfo | while  read mem_total mem_free swap_total swap
_free
do
    /usr/local/rrdtool/bin/rrdtool update memory.rrd N:$mem_total:$mem_free:$swap_total:$swap_free
done


rrd_img.sh
*/5 * * * * /usr/local/rrdtool/scripts/cpu_rrd_img.sh > /dev/null 2>&1
#!/bin/bash
cd $(dirname $0)
awk -F':' '{if($1~/eth[0123456]$/ && $2 > 0 ) print $1;}' /proc/net/dev | while read if_name
do
#        -y 10:10 -u 100 -l 0                                             \
    if_name=${if_name// }
    echo "creating [${if_name}.png]  ..."
    /usr/local/rrdtool/bin/rrdtool graph "${if_name}.png"    \
        -s -86400                                              \
        -w 500 -h 100                                          \
        -x MINUTE:30:HOUR:2:HOUR:2:0:%H:%M                \
        -Y  -t "${if_name} traffic"                      \
        DEF:rx=${if_name}.rrd:rx:AVERAGE                       \
        DEF:tx=${if_name}.rrd:tx:AVERAGE                       \
        CDEF:rx_mbps=rx,1,\/                              \
        CDEF:tx_mbps=tx,1,\/                              \
        LINE1:rx_mbps#FF0000:"rx(mbps)"                        \
        LINE1:tx_mbps#00FF00:"tx(mbps)"


done

awk '{if($3~/[sh]d[abcdefgh]$/ && $4 > 0 ) print $3;}' /proc/diskstats | while read disk_name
do
    disk_name=${disk_name// }
    echo "creating [${disk_name}.png]  ..."
    /usr/local/rrdtool/bin/rrdtool graph "${disk_name}.png"    \
        -s -86400                                              \
        -w 500 -h 100                                          \
        -x MINUTE:30:HOUR:2:HOUR:2:0:%H:%M                \
        -Y -t "${disk_name} io"                         \
        DEF:rio=${disk_name}.rrd:rio:AVERAGE                       \
        DEF:wio=${disk_name}.rrd:wio:AVERAGE                       \
        CDEF:rio_sector=rio,1,\/                              \
        CDEF:wio_sector=wio,1,\/                              \
        LINE1:rio_sector#00FF00:"rio(sector)"                        \
        LINE1:wio_sector#FF0000:"wio(sector)"


done

awk '{if($1~/^cpu/) print $1;}' /proc/stat | while  read cpu_name
do
    cpu_name=${cpu_name// }
    echo "creating [${cpu_name}.png]  ..."
    /usr/local/rrdtool/bin/rrdtool graph "${cpu_name}.png"      \
        -s -86400                                               \
        -w 500 -h 100                                           \
        -x MINUTE:30:HOUR:2:HOUR:2:0:%H:%M                \
        -Y  -t "${cpu_name} usage"                          \
        DEF:idle=${cpu_name}.rrd:idle:AVERAGE                   \
        DEF:user=${cpu_name}.rrd:user:AVERAGE                   \
        DEF:iowait=${cpu_name}.rrd:iowait:AVERAGE                   \
        DEF:intr=${cpu_name}.rrd:intr:AVERAGE                   \
        DEF:total=${cpu_name}.rrd:total:AVERAGE                 \
        CDEF:idle_persent=idle,total,\/,100,\*                         \
        CDEF:user_persent=user,total,\/,100,\*                         \
        CDEF:iowait_persent=iowait,total,\/,100,\*                         \
        CDEF:intr_persent=intr,total,\/,100,\*                         \
        LINE1:idle_persent#00FF00:"idle(%)"                        \
        LINE1:user_persent#0000FF:"user(%)"                        \
        LINE1:iowait_persent#FF0000:"iowait(%)"                    \
        LINE1:intr_persent#FF00FF:"intr(%)"

done

   rrd_name="memory"
    echo "creating [${rrd_name}.png]  ..."
    /usr/local/rrdtool/bin/rrdtool graph "${rrd_name}.png"      \
        -s -86400                                               \
        -w 500 -h 100                                           \
        -x MINUTE:30:HOUR:2:HOUR:2:0:%H:%M                \
        -Y  -t "${rrd_name} usage"                          \
        DEF:TotalMemory=${rrd_name}.rrd:TotalMemory:AVERAGE                   \
        DEF:FreeMemory=${rrd_name}.rrd:FreeMemory:AVERAGE                   \
        DEF:TotalSwap=${rrd_name}.rrd:TotalSwap:AVERAGE                   \
        DEF:FreeSwap=${rrd_name}.rrd:FreeSwap:AVERAGE                   \
        CDEF:TotalMemoryM=TotalMemory,1024,\/                         \
        CDEF:FreeMemoryM=FreeMemory,1024,\/                         \
        CDEF:TotalSwapM=TotalSwap,1024,\/                         \
        CDEF:FreeSwapM=FreeSwap,1024,\/                         \
        LINE1:TotalMemoryM#00FF00:"TotalMemory(M)"                        \
        LINE1:FreeMemoryM#0000FF:"FreeMemory(M)"                        \
        LINE1:TotalSwapM#FF0000:"TotalSwap(M)"                    \
        LINE1:FreeSwapM#FF00FF:"FreeSwap(M)"


cp 
*.png ${imgpath}/

posted @ 2009-01-15 12:22 star 閱讀(3382) | 評(píng)論 (0)編輯 收藏

實(shí)現(xiàn)高性能服務(wù)器免不了進(jìn)行代碼級(jí)性能分析和系統(tǒng)級(jí)壓力測(cè)試,簡(jiǎn)單整理一下代碼級(jí)的性能分析工具
1.gprof : 非常易于使用 , 編譯程序時(shí)使用-pg選項(xiàng),然后執(zhí)行程序,只要程序正常退出(從main()返回或exit退出) , 會(huì)生成gmon.out文件,這個(gè)文件包含了程序運(yùn)行時(shí)收集的各種統(tǒng)計(jì)數(shù)據(jù),使用gprof分析這個(gè)結(jié)果文件可以顯示flat profile , call graph , annotated source 。值得注意的是無(wú)法跟蹤內(nèi)核態(tài)的執(zhí)行情況和進(jìn)程切換帶來(lái)的影響。
2.valgrind :強(qiáng)大和全面的工具,主要包括memcheck,call graph , cache check , thread detector , heap profiler,測(cè)試server程序時(shí)需要注意信號(hào)處理,使程序正常退出。
3.oprofile : 不但可以分析單個(gè)程序性能,還能夠分析系統(tǒng)性能 ,作為獨(dú)立模塊運(yùn)行,使用cpu的計(jì)數(shù)寄存器進(jìn)行數(shù)據(jù)分析。
             opcontrol --no-vmlinux --start    啟動(dòng)profile,此時(shí)系統(tǒng)會(huì)把收集的數(shù)據(jù)寫(xiě)入文件,系統(tǒng)的iowait非常高。
             opcontrol --stop                  關(guān)閉profile。
             opreport -l server_program        查看結(jié)果。

4.tcmalloc : google的內(nèi)存分配器和profile工具,包括內(nèi)存檢查和cpu檢查 ,可以編譯進(jìn)代碼,也可以通過(guò)LIB_PRELOAD加載,配合環(huán)境變量實(shí)現(xiàn)profile功能。
            內(nèi)存分配器:使用了線程cache ,在多線程的環(huán)境中比ptmalloc效率高2倍左右。

5.vtune    :intel開(kāi)發(fā)的付費(fèi)工具。


posted @ 2009-01-15 12:07 star 閱讀(4117) | 評(píng)論 (1)編輯 收藏

僅列出標(biāo)題
共4頁(yè): 1 2 3 4 
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            欧美精品久久久久久久| 欧美一级片在线播放| 欧美aaaaaaaa牛牛影院| 欧美v日韩v国产v| 欧美日本韩国在线| 国产精品久久久久一区二区| 国产精品久久久久一区| 国产在线成人| 亚洲国产成人午夜在线一区| 9l视频自拍蝌蚪9l视频成人| 亚洲免费在线看| 久久久久久久尹人综合网亚洲| 欧美亚洲免费在线| 免费国产一区二区| 中国亚洲黄色| 久久午夜av| 国产精品扒开腿做爽爽爽视频| 国产一区99| a4yy欧美一区二区三区| 久久久久久尹人网香蕉| 亚洲国产欧美日韩精品| 亚洲激情视频在线播放| 欧美亚洲三级| 欧美日韩和欧美的一区二区| 国产日韩欧美a| 夜夜嗨一区二区| 毛片一区二区三区| 亚洲在线免费视频| 你懂的亚洲视频| 国产亚洲精品自拍| 亚洲一级黄色av| 欧美国产一区二区三区激情无套| 亚洲视频第一页| 亚洲欧美日韩在线| 国产一区二区精品久久91| 亚洲理伦在线| 免费91麻豆精品国产自产在线观看| 99re6这里只有精品视频在线观看| 久久爱www.| 国产精品久久久久久久久免费樱桃| 黄色工厂这里只有精品| 午夜精品亚洲一区二区三区嫩草| 亚洲国产老妈| 免费成人黄色av| 黑人巨大精品欧美黑白配亚洲| 亚洲一区二区三区色| 91久久精品国产91久久性色| 免费看亚洲片| 亚洲国产精品一区制服丝袜| 久久蜜桃精品| 久久精品男女| 狠狠色丁香婷婷综合久久片| 欧美中文字幕不卡| 亚洲男女毛片无遮挡| 国产精品国产三级国产普通话蜜臀| 亚洲精品免费一区二区三区| 欧美激情 亚洲a∨综合| 噜噜噜噜噜久久久久久91| 一区二区三区无毛| 免费欧美在线| 欧美成人自拍| 一区二区三区免费网站| 日韩亚洲在线| 国产精品女主播在线观看| 亚洲女优在线| 午夜精品福利在线| 伊人久久综合97精品| 欧美阿v一级看视频| 久久亚洲影院| 夜夜精品视频一区二区| 在线视频亚洲一区| 国产精品外国| 麻豆九一精品爱看视频在线观看免费| 久久久久久久久伊人| 亚洲人成小说网站色在线| 亚洲精品久久久久中文字幕欢迎你| 欧美电影免费观看网站 | 国产精品免费看久久久香蕉| 午夜精品久久久久影视| 久久精品国产一区二区三| 精品成人a区在线观看| 欧美激情亚洲综合一区| 欧美日韩精品欧美日韩精品| 午夜精品久久久久久| 久久精品人人爽| 日韩视频在线一区二区| 亚洲一区二区成人在线观看| 国产亚洲一区精品| 亚洲国产日韩一区二区| 国产精品视频一二| 欧美阿v一级看视频| 国产精品电影在线观看| 美女视频网站黄色亚洲| 久久综合99re88久久爱| 一区二区三区精品视频| 狠狠色丁香久久综合频道 | 欧美一级视频| 亚洲国产精品电影在线观看| 99riav国产精品| 狠狠综合久久av一区二区小说 | 亚洲激情在线| 国产一级精品aaaaa看| 91久久久精品| 精品成人一区二区三区四区| 夜夜嗨av一区二区三区四区 | 亚洲综合999| 老司机成人网| 欧美在线一级va免费观看| 欧美精品激情blacked18| 久久久久免费视频| 欧美亚韩一区| 亚洲欧洲综合| 亚洲国产一二三| 午夜欧美理论片| 亚洲一区精品视频| 欧美国产日本韩| 米奇777在线欧美播放| 国产伦精品一区二区三区四区免费 | 亚洲欧美综合一区| 亚洲午夜羞羞片| 欧美激情一区在线观看| 欧美 日韩 国产一区二区在线视频 | 亚洲精品在线一区二区| 亚洲电影免费在线观看| 欧美一区二区大片| 欧美在线观看一区二区| 欧美性事免费在线观看| 亚洲精品偷拍| 夜色激情一区二区| 欧美黑人多人双交| 亚洲国产成人精品女人久久久| 在线观看三级视频欧美| 久久婷婷av| 欧美大片一区| 亚洲精品日韩在线| 欧美精品网站| 一本色道88久久加勒比精品| 一区二区三区日韩精品视频| 欧美激情精品久久久久久蜜臀| 欧美成人精品在线| 亚洲人成人一区二区三区| 欧美激情aⅴ一区二区三区| 亚洲国产综合在线| 亚洲深夜av| 国产欧美日韩免费| 久久精品国产久精国产爱| 欧美一区二区视频观看视频| 国产日韩精品在线| 日韩视频免费观看| 欧美国产日韩a欧美在线观看| 久久久久久久欧美精品| 亚洲第一精品夜夜躁人人爽| 美国十次成人| 一本色道久久综合狠狠躁的推荐| 午夜精品网站| 1024国产精品| 欧美性开放视频| 久久精品99久久香蕉国产色戒| 麻豆精品视频在线观看| 亚洲最新视频在线| 国产日韩欧美精品一区| 另类综合日韩欧美亚洲| 夜夜爽99久久国产综合精品女不卡 | 亚洲制服欧美中文字幕中文字幕| 国产精品免费一区二区三区在线观看 | 国产精品99久久久久久久久| 国产精品一二一区| 毛片基地黄久久久久久天堂| 日韩一区二区精品视频| 久久精品一本| 在线亚洲成人| 一区二区在线视频播放| 欧美黑人多人双交| 性欧美长视频| 99国产精品99久久久久久| 久久久久久久久蜜桃| 一区二区三区|亚洲午夜| 国产一区二区三区精品欧美日韩一区二区三区| 久久人体大胆视频| 亚洲一区二区av电影| 亚洲国产日韩一级| 久久九九久精品国产免费直播| 亚洲精选在线观看| 国产自产在线视频一区| 欧美视频在线看| 免费欧美在线| 久久精品色图| 亚洲欧美在线另类| 亚洲伦理一区| 亚洲电影观看| 免播放器亚洲一区| 久久久五月天| 欧美一级视频免费在线观看| 99精品热6080yy久久 | 欧美一二三区在线观看| 99re6热只有精品免费观看| 在线播放一区| 精品91在线| 韩日视频一区| 国产一区二区高清视频|