打靶归来_个人页

个人头像照片 打靶归来
0
2
0

个人介绍

暂无个人介绍

擅长的技术

获得更多能力
通用技术能力:

暂时未有相关通用技术能力~

云产品技术能力:

暂时未有相关云产品技术能力~

阿里云技能认证

详细说明
暂无更多信息
正在加载, 请稍后...
暂无更多信息
  • 回答了问题 2014-09-03

    关于RDS的性能

    Re关于RDS的性能
    ping的数据如下:
    ds.aliyuncs.com (ip) 56(84) bytes of data.
    64 bytes from ip: icmp_req=1 ttl=54 time=1.21 ms
    64 bytes from ip: icmp_req=2 ttl=54 time=1.21 ms
    64 bytes from ip: icmp_req=3 ttl=54 time=1.23 ms
    64 bytes from ip: icmp_req=4 ttl=54 time=1.20 ms
    看起来还好

    -------------------------

    回1楼小猪猪的帖子
    嗯,我试试用hibernate 2nd level cache,减少数据库的直接访问

    -------------------------

    回2楼mayle的帖子
    ping的数据还好,1.x ms
    那现在的解释可能是,链接建立时间?
    我是新手,配置mysql有个connection pool,这算是使用了长连接吗?
    谢谢!

    -------------------------

    回7楼mayle的帖子
    我用的java melody做的profiling

    今天我打开了memcache,从而减少数据库访问,request的处理时间明显下降。
    进一步说明,确实是因为访问数据库造成了性能下降。

    另外,值得注意的是:数据库操作时间跟数据库sql hit的个数呈线性关系(我观察了大概10几个request,需要我也可以贴图),大概一个hit需费时4ms;这说明应该不是短长链接引起的;

    我截了图,只放了一个request的数据;第一行是memcache打开之前的,第二行是memcache打开之后的数据。

    -------------------------

    Re关于RDS的性能
    忘了说了,最后两列是数据库相关的。其中,最后一列是ms,倒数第二列是sql hit count
    第四列绿色的数字,是request总耗时。

    -------------------------

    回11楼mayle的帖子
    刚刚申请加入了,能否帮忙转贴下分析结果。我现在进去,之前的聊天记录我应该看不到的吧

    -------------------------

    Re关于RDS的性能
    我刚刚弄了一张最小的表,然后在RDS以及本地的数据库上都通过rest api进行操作,每个操作都只是简单的一个select
    数据如下


    第一行是数据库在RDS的性能,可以明显看到每个sql hit的mean time为3ms
    第二行是数据库在本地(本地是个性能非常一般的机器),每个sqlhit的mean time为0(说明小于1ms)

    期待大牛解释

    -------------------------

    Re关于RDS的性能
    #include <mysql/mysql.h>
    #include <stdio.h>
    #include <unistd.h>
    #include <time.h>

    int main(void) {
       MYSQL *conn;
       MYSQL_RES *res;
       MYSQL_ROW row;
      /* Change me */
       char *server = "rdsql.rds.aliyuncs.com";
       char *user = "userXXX";
       char *password = "XXXXX";
       char *database = "XXXX";
      
       conn = mysql_init(NULL);
      
       /* Connect to database */
       if (!mysql_real_connect(conn, server,
             user, password, database, 0, NULL, 0)) {
          fprintf(stderr, "%s\n", mysql_error(conn));
          exit(1);
       }
      
       struct timeval start, end;
       long secs_used,micros_used;

       gettimeofday(&start, NULL);

       char *sql_cmd = "SELECT * FROM user where id=11";
       /* send SQL query */
       if (mysql_query(conn, sql_cmd)) {
          fprintf(stderr, "%s\n", mysql_error(conn));
          exit(1);
       }
       gettimeofday(&end, NULL);
       printf("start: %d secs, %d usecs\n",start.tv_sec,start.tv_usec);
       printf("end: %d secs, %d usecs\n",end.tv_sec,end.tv_usec);
       secs_used=(end.tv_sec - start.tv_sec); //avoid overflow by subtracting first
       micros_used= ((secs_used*1000000) + end.tv_usec) - (start.tv_usec);
       printf("Execute SQL %s micros_used: %d\n",sql_cmd, micros_used);


       res = mysql_use_result(conn);
       int num_fields = mysql_num_fields(res);
       /* output table name */
       printf("Result of %s is :\n", sql_cmd);
       while ((row = mysql_fetch_row(res)) != NULL) {
          int i;
          for (i = 0; i < num_fields; i++) {
              printf("%s ", row ? row : "NULL");
          }
          printf("\n");
       }

       /* close connection */
       mysql_free_result(res);
       mysql_close(conn);
      
      return 0;
    }


    -------------------------

    Re关于RDS的性能
    gcc -o select_one_row mysql_select_one_row.c -lmysqlclient

    -------------------------

    Re关于RDS的性能
    总结一下,使用RDS,肯定会比local的mysql要慢。
    具体是一个sql select操作,RDS大概会费时3到4ms,而local的mysql server,大概是0.4到0.5ms。

    原因应该就是网络延迟,ping rds大概是1.3ms;
    本来我不理解的是,local的0.4ms 加上网络延迟1.3ms,到了RDS最多也就是2ms,怎么会变成3到4ms;
    可能的解释是,ping也就是一个来回,而且是比较简单的网络协议;sql操作可能会涉及到一些握手行为,多加一个来回,就是多1ms多。

    -------------------------

    Re关于RDS的性能
    嗯,看我代码,profile相关的代码,只是包含了select 操作,没有包含建立链接以及关闭链接

    -------------------------

    回23楼joyzheng的帖子
    第一个问题见20楼
    第二个问题,我的理解,是的

    -------------------------

    Re关于RDS的性能
    最后回复下21楼,2000次的select,平均下来的sql操作也是3.x ms

    start: 1410340266 secs, 704180 usecs
    end: 1410340274 secs, 412382 usecs
    Execute SQL SELECT * FROM user where id=%d 2000 times, average micros_used: 3854  
    踩0 评论0
  • 提交了问题 2014-09-03

    关于RDS的性能

正在加载, 请稍后...
滑动查看更多
正在加载, 请稍后...
暂无更多信息