国产+高潮+在线,国产 av 仑乱内谢,www国产亚洲精品久久,51国产偷自视频区视频,成人午夜精品网站在线观看

webman 用云數(shù)據(jù)庫 并上去了 所有進(jìn)程都busy

xb

webman用云數(shù)據(jù)庫經(jīng)過一輪并發(fā)強(qiáng)度1500后所有進(jìn)程處于busy狀態(tài)并且恢復(fù)的很慢用.本地?cái)?shù)據(jù)庫就好點(diǎn)能到cpu差不多打滿

服務(wù)器 :12核心 12g內(nèi)存 10m 帶寬
測試用例 : 一個(gè)簡單的sql 查詢

云數(shù)據(jù)庫配置:serveless
數(shù)據(jù)庫類型 MySQL5.7
數(shù)據(jù)庫內(nèi)存 [1024 M - 16384 M]
CPU [0.5 - 8]

程序代碼 (此代碼和我thinkphpfpm 線上真實(shí)代碼一致)

<?php
namespace app\controller;

use support\Request;
use support\think\Db;
use support\Response;
class UserController
{
    public function hello(Request $request) : Response
    {
        $param = $request -> get();

        $lon = $param['longitude'];
        $lat = $param['latitude'];
        // var_dump($param);
        #更新位置
        // RealAddressService::real_address($lat , $lon);

        $keyword = $param['content'];
        if($param['sort'] == 1){
            $sort = 'dist asc';
        }
        if($param['sort'] == 2){
            $sort = 'fo.order desc';
        }
        if($param['sort'] == 3){
            $sort = 'sort asc';
        }

        $post = Db::table('data_factory_post')
            ->alias("fp")
            ->leftJoin("data_factory f", "f.id = fp.fid")
            ->leftJoin("factory_order fo", "fo.post_id = fp.id")
            ->field('fp.id,fp.target,fo.id as fo_id,fo.order,fp.name,fp.type,fp.price,fo.data,f.address')
            -> where('fo.status',1)
            ->where(function ($query) use ($keyword,$param) {
                if (!empty($keyword)) {
                    $query -> whereLike("fp.name|f.name|fp.price", "%{$keyword}%");
                }
                if($param['type'] == 1){
                    $query -> whereTime('fo.date', 'between', [date('Y-m-d'),date('Y-m-d')]);
                }
                if($param['type'] == 2){
                    $query -> whereTime('fo.date', 'between', [date('Y-m-d',strtotime('+1 day')),date('Y-m-d',strtotime('+1 day'))]);
                }
            })
            ->with([
                'factory' => function ($query) {
                    $query->where(['status' => 1, 'deleted' => 0])
                        -> field(["id", "name", "cover",'address' ,"settlement_type"]);
                }
            ])
            ->fieldRaw("(st_distance(point(longitude,latitude),point($lon,$lat))*111195)/1000 as dist")
            ->order($sort)
            ->paginate([
                'list_rows' => $param['limit'],
                'page' => $param['page'],
            ])
            ->toArray();

            foreach($post['data'] as $key => &$value){
                $value['target'] = array_filter(explode(',',  $value['target']));
                $as =  json_decode($value['data'],true);
                $rest['工價(jià)'] = '未知';
                if(!empty($as['工價(jià)'])) {
                    $rest['工價(jià)'] = $as['工價(jià)'];
                }
                $value['data'] = json_encode($rest);
            }
        // dump($post);
        return json([
            'code' => 0, 
            'msg' => 'ok', 
            'data' => $post
        ]);
    }
}

報(bào)錯(cuò)信息

這里粘貼報(bào)錯(cuò)

webman 配置截圖

截圖

php8.2
wenbman 2.1
event 擴(kuò)展已安裝
linux 優(yōu)化已做

單請求耗時(shí)

截圖

并發(fā)1500 進(jìn)程全busy 并且 恢復(fù)很慢

截圖

我用thinkphp fpm 同樣的 強(qiáng)度模擬 好無壓力 cpu 最高只占到 40 ,但是 fpm 單請求有180ms

218 3 0
3個(gè)回答

nitron

90%的概率是帶寬太小的問題

  • xb 5天前

    我用thinkphp fpm 同樣的 強(qiáng)度模擬 好無壓力 cpu 最高只占到 40 ,但是 fpm 單請求有180ms

  • nitron 5天前

    fpm無壓力是因?yàn)樘幚硖?你10m小水管,一個(gè)響應(yīng)體2.8kb,1500個(gè)就是,4200kb

  • nitron 5天前

    內(nèi)網(wǎng)測,先保證帶寬不是壓力

  • xb 5天前

    無數(shù)據(jù)庫沒問題啊 我 用同服務(wù)器數(shù)據(jù)庫測 沒問題能到 cpu 打滿 就是用云數(shù)據(jù)庫 沒到cpu 打滿 就全 busy了, 問題大概率是 并發(fā)的時(shí)候 有鏈接或者查詢卡 導(dǎo)致進(jìn)程卡上 然后請求 進(jìn)來 堆在那里導(dǎo)致進(jìn)程直接 死了 。這樣子我覺得 不合理 ,看看能有什么優(yōu)化不 返回慢點(diǎn)沒關(guān)系 不要死啊

  • xb 5天前

    也是,fpm 流水線 不容易死

ersic

可以測一下無數(shù)據(jù)庫的情況,對比看下

  • xb 5天前

    無數(shù)據(jù)庫沒問題啊 我 用同服務(wù)器數(shù)據(jù)庫測 沒問題能到 cpu 打滿 就是用云數(shù)據(jù)庫 沒到cpu 打滿 就全 busy了, 問題大概率是 并發(fā)的時(shí)候 有鏈接或者查詢卡 導(dǎo)致進(jìn)程卡上 然后請求 進(jìn)來 堆在那里導(dǎo)致進(jìn)程直接 死了 。這樣子我覺得 不合理 ,看看能有什么優(yōu)化不 返回慢點(diǎn)沒關(guān)系 不要死啊

six

本地?cái)?shù)據(jù)庫沒問題,云數(shù)據(jù)庫出現(xiàn)這個(gè)問題,說明云數(shù)據(jù)庫扛不住了啊。

webman QPS 5000, thinkphp+fpm QPS 500,webman能給數(shù)據(jù)庫10倍的壓力,數(shù)據(jù)庫返回?cái)?shù)據(jù)變慢就busy了。
你給webman加一個(gè)usleep(120000); ,讓它別那么快就好了。

數(shù)據(jù)庫扛不住換什么語言什么框架都沒用,要么優(yōu)化業(yè)務(wù),要么增加數(shù)據(jù)庫配置,要么限流別別給數(shù)據(jù)庫那么大的QPS請求。

  • xb 5天前

    我想問的是 busy 情況下能不能不要 他是 busy 了 還在接請求 然后 死掉了

  • xb 5天前

    云數(shù)據(jù)庫配置:serveless
    數(shù)據(jù)庫類型 MySQL5.7
    數(shù)據(jù)庫內(nèi)存 [1024 M - 16384 M]
    CPU [0.5 - 8]
    我這數(shù)據(jù)庫配置也不低 不應(yīng)該頂不住 啊 . 我覺得是 云數(shù)據(jù)庫 與 服務(wù) 器 有個(gè) 通信過程 也有耗時(shí)

  • six 5天前

    任何框架都不能隨便丟棄請求吧。
    看看是不是云數(shù)據(jù)庫使用了外網(wǎng)ip,網(wǎng)絡(luò)成為瓶頸,如果數(shù)據(jù)庫走外網(wǎng)busy很正常。

  • six 5天前

    還有壓測時(shí)看下QPS是多少,延遲多少,本地和云數(shù)據(jù)庫的cpu等指標(biāo)占用多少。這些指標(biāo)你都要看下貼出來。
    然后你業(yè)務(wù)評估到底需要多少Q(mào)PS,延遲多少。

    你不能因?yàn)槟阒恍枰?00 QPS,webman干到了5000數(shù)據(jù)庫反應(yīng)不過來了就覺得這是個(gè)問題。
    其實(shí)同樣的QPS,fpm只不過沒提供busy指標(biāo),否則也是一樣顯示busy。

  • tanhongbin 4天前

    six分析的666,一點(diǎn)毛病沒有,webman進(jìn)程busy是在忙碌中 就是在處理請求,fpm你是看不到的 top只能看到一堆fpm進(jìn)程 結(jié)束 又 啟動一堆 就是這樣的 你想想 同樣的業(yè)務(wù) tp180ms webman 60ms tp處理一個(gè) webman處理三個(gè) mysql肯定壓力也大,如果想限流一個(gè)中間件就可以,需要我可以給你,或者用老大的插件

  • 北月妖王 4天前

    ikun真是在哪里都能看到??

??