国产+高潮+在线,国产 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ù)的很慢用.本地數(shù)據(jù)庫就好點(diǎn)能到cpu差不多打滿

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

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

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

<?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['工價'] = '未知';
                if(!empty($as['工價'])) {
                    $rest['工價'] = $as['工價'];
                }
                $value['data'] = json_encode($rest);
            }
        // dump($post);
        return json([
            'code' => 0, 
            'msg' => 'ok', 
            'data' => $post
        ]);
    }
}

報錯信息

這里粘貼報錯

webman 配置截圖

截圖

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

單請求耗時

截圖

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

截圖

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

278 3 0
3個回答

nitron

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

  • xb 9天前

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

  • nitron 9天前

    fpm無壓力是因為處理太慢,你10m小水管,一個響應(yīng)體2.8kb,1500個就是,4200kb

  • nitron 9天前

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

  • xb 9天前

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

  • xb 9天前

    也是,fpm 流水線 不容易死

ersic

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

  • xb 9天前

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

six

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

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

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

  • xb 9天前

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

  • xb 9天前

    云數(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ù) 器 有個 通信過程 也有耗時

  • six 9天前

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

  • six 9天前

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

    你不能因為你只需要500 QPS,webman干到了5000數(shù)據(jù)庫反應(yīng)不過來了就覺得這是個問題。
    其實同樣的QPS,fpm只不過沒提供busy指標(biāo),否則也是一樣顯示busy。

  • tanhongbin 9天前

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

  • 北月妖王 9天前

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

??