본문 바로가기

컴퓨터/노트북/인터넷

IT 컴퓨터 기기를 좋아하는 사람들의 모임방

조회 수 2997 추천 수 0 댓글 0

단축키

Prev이전 문서

Next다음 문서

수정 삭제

단축키

Prev이전 문서

Next다음 문서

수정 삭제
Extra Form

서버 하드웨어 & 소프트웨어 사양

Zeon E5430 2.66GHz X 2EA
Core:8

8GB Ram

Sandisk X300 256GB SSD

Windows 2012

AutoSET 9.0
 1. Apache HTTPD Server 2.4.10
; IPv6 Crypto apr-1.5.1 apr-util-1.5.3 apr-iconv-1.2.1 openssl-1.0.1i zlib-1.2.8 pcre-8.35 libxml2-2.9.1 lua-5.1.5 expat-2.1.0
PHP 5.6.0
 2. MySQL Community Server 5.6.20
 3. phpMyAdmin 4.2.9 All language

 

가장 중요한 하드웨어 성능

하드웨어가 뛰어나다면 동시접속자는 일어나지 않을것이다.

동시접속자란 

  하나의 작업이 처리완료 되기전에 다른작업이 끼어드는 상황을 말하는 것이며 이는 컴퓨터가 빨리 처리해버린다면 동시접속이 일어날 이유가 없다.

  동시접속을 처리해야 하는 상황에서 버퍼는 아주 중요하다.

 

윈도우 최적화

 

부팅시 [CTRL+ALT+DEL] 없이 시작하기

 

  • 시작=>실행=>gpedit.msc 입력 후 컴퓨터구성=>windows 설정=>보안설정=>로컬정책=>보안옵션=>대화형로그온 ctrl+alt+del 더블클릭 또는 속성으로 들어가 [사용]을 체크한 후 확인을 누릅니다.

 

 

윈도우의 자동 로그온 방법 

 

  • 부팅시부터 암호 없이 자동적으로 로그온 설정 실행(또는 윈도우키 + R) => netplwiz 또는 control userpasswords2 자동 로그인할 계정을 먼저 선택 후 "사용자 이름과 암호를 입력해야 이 컴퓨터를 사용할 수 있음" 항목의 체크를 제거 설정을 저장하기 위해 확인 또는 적용을 누르면 암호를 입력하는 새로운 창이 나타나는데, 자동 로그온할 해당 계정의 암호를 입력해주면 암호를 미리 저장하여 부팅 후 로그온시 암호입력이 필요없어진다.

 

Windows Server 2012 인터넷 설정

 부팅된 server 2012에서 인터넷을 편하게 하기 위해 "IE 보안 강화 구성" 을 사용안함으로 해주어야 합니다.

 개편된 GUI에서 찾기 힘드실까봐 이미지를 포함해 알려드리겠습니다.

 

 

로컬 IP 입력으로 서버간 입출력 속도개선하기

웹서버와 DB서버 간 도메인으로 연결할 경우 도메인에서 IP로의 변경작업이 필요하다.

localhost 또한 도메인으로 127.0.0.1 로 변경작업을 수행하므로 차라리 127.0.0.1 로 입력하는 것이 속도개선이 될 수 있다.

컴퓨터 내부적으로도 도움이 되려면

 

hosts 파일에

 

 127.0.0.1       localhost 

을 입력해두면 속도개선에 많은 도움이 될 것이다.

 

 

 

 

 

 

윈도우 time_wait 없애기

TIME_WAIT 상태가 늘어나면 서버의 소켓이 고갈되어 커넥션 타임아웃이 발생한다는 얘기를 한다.

 

 

서버 방화벽에서 80번 포트 열기

 

 

 

 

 

 


서버 최적화 시키기


1. 압축(Compression)
2. 캐싱(Caching)
3. 버퍼(Buffer)

1,2,3에 해당하는 작업이 충실이 되면 10배 이상의 효율을 가져올 수 있다.

압축은 CPU에 부담을 줄 수 있지만 전송할 데이터의 사이즈를 줄이기 때문에 전송완료에 도움이 된다.

캐싱은 어떤 일을 처리할때 문제를 보고 답을 적느냐? 답만 알고 적느냐의 차이라고 볼 수 있다.

A B
 1+1=     1    
 1+2=     2  

결과는 1,2 인데, A와 B 중 당연히 A를 처리해야 되는 시간이 오래 걸린다.

결과물이 같다면 미리 계산된 데이터를 저장 해놓고 요청시에 전달만 하면되는 것이 캐싱이다.

 


아파치 최적화

확장모듈 
mod_deflate.so
mod_expires.so

 

 

이건 적용해봤으나 제서버에서는 부작용...

 

http://dumpcookie.tistory.com/entry/mod-disk-cache%EB%A5%BC-%EC%82%AC%EC%9A%A9%ED%95%98%EC%97%AC-XpressEngine-%EC%86%8D%EB%8F%84-%ED%96%A5%EC%83%81%EC%8B%9C%ED%82%A4%EA%B8%B0

 

XpressEngine에도 mod_disk_cache를 간단히 적용해보았습니다.

주의할 점

실제로 mod_disk_cache를 제대로 적용하기 위해서는 세션 쿠키 등등을 최소화하여 캐싱이 유리하도록 만들고, 익명 사용자에 대해서는 세션쿠키를 쓰지 말고 별도로 처리하면 캐싱이 유리하게 됩니다.

이 문서는 단순히 s-maxage=3으로 세팅하는 매우 간단한 패치이며, mod_disk_cache의 효과를 아파치벤치라는 간단한 벤치마크 툴로 테스트하는 결과를 보여주므로 실제로 사용자가 느낄 수 있는 성능 향상과는 괴리가 있을 수 있습니다.

 

XpressEngine에 적용하기

XE 버전 1.7.x에 대해서 작성했습니다. 패치로 만드는 대신에 다음과 같이 수동으로 고치는 방식을 설명합니다.

1) classes/display/DisplayHandler.class.php 파일에서 다음 함수를 찾아서 Expires, Cache-Control, Pragma 헤더 삭제.

 

?


/**  * print a HTTP HEADER for HTML, which is encoded in UTF-8  * @return void  */

 

 function _printHTMLHeader() {         header("Content-Type: text/html; charset=UTF-8");         

#header("Expires: Mon, 26 Jul 1997 05:00:00 GMT"); # 제거         

header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT");              

#header("Cache-Control: no-store, no-cache, must-revalidate"); # 제거         

header("Cache-Control: s-maxage=3, max-age=0, must-revalidate");              

header("Cache-Control: post-check=0, pre-check=0", false);         

#header("Pragma: no-cache"); # 제거 

}

 


<embed allowscriptaccess="never" enablecontextmenu="false" flashvars="&callbackId=dumpcookietistorycom214859&host=http://dumpcookie.tistory.com&embedCodeSrc=http%3A%2F%2Fdumpcookie.tistory.com%2Fplugin%2FCallBack_bootstrapper%3F%26src%3D%2F%2Fs1.daumcdn.net%2Fcfs.tistory%2Fresource%2F2380%2Fblog%2Fplugins%2FCallBack%2Fcallback%26id%3D21%26callbackId%3Ddumpcookietistorycom214859%26destDocId%3Dcallbacknestdumpcookietistorycom214859%26host%3Dhttp%3A%2F%2Fdumpcookie.tistory.com%26float%3Dleft" height="1" "bootstrapperdumpcookietistorycom214859" src="http://dumpcookie.tistory.com/plugin/CallBack_bootstrapperSrc?nil_profile=tistory&nil_type=copied_post" swliveconnect="true" type="application/x-shockwave-flash" width="1" wmode="transparent">

2) classes/context/Context.class.php 파일에서 session_start()를 찾아서 session_cache_limiter('') 추가

 

?


session_cache_limiter(''); # 추가

session_start();

 

이렇게 고치면 끝.

테스트 결과

아파치 벤치(ab -n 1000 -c 3 http://localhost/xe/)로 테스트해보니 다음과 같은 결과가 나왔습니다.

 


 

... Concurrency Level: 3 Time taken for tests: 0.433 seconds Complete requests: 1000 Failed requests: 0 Write errors: 0 Total transferred: 9072075 bytes HTML transferred: 8596000 bytes Requests per second: 2309.36 [#/sec] (mean) Time per request: 1.299 [ms] (mean) Time per request: 0.433 [ms] (mean, across all concurrent requests) Transfer rate: 20459.63 [Kbytes/sec] received

  

 

 

모바일보다 PC 재접속시 획기적으로 가속화 된다.
압축은 CPU에 부담을 주지만 사이즈를 줄여 빠른 전송을 할 수 있다.
압축율을 높이는 건 비효율적이므로 필요없다.


아파치 모듈 mod_deflate 압축하기

#압축하기

SetOutputFilter DEFLATE
SetEnvIfNoCase Request_URI .(?:gif|jpe?g|png|bmp|zip|tar|rar|alz|a00|ace|txt|mp3|mpe?g|wav|asf|wma|wmv|swf|exe|pdf|doc|xsl|hwp|java|c|t?gz|bz2|7z)$ no-gzip dont-vary

  BrowserMatch ^Mozilla/4 gzip-only-text/html   # Netscape 4.xx에는 HTML만 압축해서 보냄
  BrowserMatch ^Mozilla/4.0[678] no-gzip   # Netscape 4.06~4.08에는 압축해서 보내지 않음
  #BrowserMatch bMSIE !no-gzip !gzip-only-text/html   # 자신을 Mozilla로 알리는 MSIE에는 그대로 압축해서 보냄

[Apache] mod_expires .htaccess을 수정하여 브라우저 캐싱하기

 


ExpiresActive on
 
ExpiresDefault                          "access plus 1 weeks"
 
ExpiresByType text/cache-manifest       "access plus 0 seconds"
ExpiresByType text/html                 "access plus 0 seconds"
ExpiresByType text/xml                  "access plus 0 seconds"
ExpiresByType application/xml           "access plus 0 seconds"
ExpiresByType application/json          "access plus 0 seconds"
 
ExpiresByType application/rss+xml       "access plus 0 seconds"
ExpiresByType application/atom+xml      "access plus 0 seconds"
 
ExpiresByType image/gif                 "access plus 1 weeks"
ExpiresByType image/png                 "access plus 1 weeks"
ExpiresByType image/jpg                 "access plus 1 weeks"
ExpiresByType image/jpeg                "access plus 1 weeks"
   
ExpiresByType video/ogg                 "access plus 2 weeks"
ExpiresByType audio/ogg                 "access plus 2 weeks"
ExpiresByType video/mp4                 "access plus 2 weeks"
ExpiresByType video/webm                "access plus 2 weeks"
   
ExpiresByType text/x-component          "access plus 1 weeks"
ExpiresByType application/x-font-ttf    "access plus 1 weeks"
ExpiresByType font/opentype             "access plus 1 weeks"
ExpiresByType application/x-font-woff   "access plus 1 weeks"
ExpiresByType image/svg+xml             "access plus 1 weeks"
ExpiresByType application/vnd.ms-fontobject "access plus 1 weeks"
ExpiresByType text/css                  "access plus 1 weeks"
ExpiresByType application/javascript    "access plus 1 weeks"
ExpiresByType image/x-icon              "access plus 1 weeks"
 

 

#CSS, JS 파일 Minify로 한꺼번에 압축해서 전송하기

RewriteRule ^(.*.(css|js))$ ./min/index.php?f=$1 [L]

 

#아파치 2.4 압축하기

SetOutputFilter DEFLATE

#(원본)SetEnvIfNoCase Request_URI .(?:gif|jpe?g|png|bmp|zip|tar|rar|alz|a00|ace|txt|mp3|mpe?g|wav|asf|wma|wmv|swf|exe|pdf|doc|xsl|hwp|java|c|t?gz|bz2|7z)$ no-gzip dont-vary

SetEnvIfNoCase Request_URI .(?:bmp|zip|tar|rar|alz|a00|ace|txt|mp3|mpe?g|wav|asf|wma|wmv|swf|exe|pdf|doc|xsl|hwp|java|c|t?gz|bz2|7z)$ no-gzip dont-vary

  BrowserMatch ^Mozilla/4 gzip-only-text/html   # Netscape 4.xx에는 HTML만 압축해서 보냄

  BrowserMatch ^Mozilla/4.0[678] no-gzip   # Netscape 4.06~4.08에는 압축해서 보내지 않음

  #BrowserMatch bMSIE !no-gzip !gzip-only-text/html   # 자신을 Mozilla로 알리는 MSIE에는 그대로 압축해서 보냄

 

 

 

PHP 캐싱

PHP Opcache 속도개선 시키기

PHP Opcache 적용 전과 후의 비교

 

php.ini 설정

pcre

PCRE (Perl Compatible Regular Expressions) Support enabled
PCRE Library Version 8.34 2013-12-15
Directive Local Value Master Value
pcre.backtrack_limit 1000000 1000000
pcre.recursion_limit 500000 500000

 

http://www.php.net/manual/en/pcre.configuration.php#ini.pcre.recursion-limit

pcre.recursion-limit 항목의 기본 값이 100,000으로 설정되어 있으며 이를 조금 늘려주면 됩니다.

 

다른 곳에 넣어도 되지만 파일을 수정하거나 기억하기 쉽도록 index.php에 넣어도 됩니다.

 

?

1

2

define('__XE__',   TRUE);

@ini_set('pcre.recursion_limit', 500000);

 

@ini_set('pcre.recursion_limit', 500000);

이 코드를 추가하면 됩니다.

다만, 이처럼 설정을 변경하는 것을 허용하지 않을 수 있으므로 일부 호스팅에서는 문제가 해결되지 않을 수 있습니다.

 

간단한 테스트로 아래 코드를 .php 파일로 저장해 서버에서 열어봤을 때 오류 등 어떤 메시지가 표시되지 않아야 하며 500000이라는 숫자가 보이면 위 코드가 동작하는 것 입니다.

 

?

1

2

3

<?php

 ini_set('pcre.recursion_limit', 500000);

echo ini_get('pcre.recursion_limit');

 

 

xecenter 레이아웃을 보니 하나의 파일에 너무 많이 것이 들어 있는 것 같습니다.

각 부분별로 분리하면(파일 분리. include) 개선 될 수도 있을 것 같습니다.

확실치는 않네요. 이게 하나 처리 시 적용되는 것인지 프로세스에 제한되는 것인지...

 

 


Mysql

 

MySQL 5.6.2 labs innodb memcached 설치 및 테스트

 

http://labs.mysql.com/
위의 사이트로 가서 "mysql-5.6.2-labs-innodb-memcached-linux2.6-x86_64.tar.gz" 해당 파일을 다운로드 한 이후 설치 하여 테스트 해보았습니다.


16.2 Using MySQL with memcached



설치 이후 가장 기본적으로 버전을 확인 하니 다음과 같습니다.
mysql> select version();
+---------------------------------+
| version()                       |
+---------------------------------+
| 5.6.2-labs-innodb-memcached-log |
+---------------------------------+
1 row in set (0.00 sec)
 
설치 후 바로 사용가능한 엔진은 다음과 같습니다.
mysql> show engines;
+--------------------+---------+----------------------------------------------------------------+--------------+------+------------+
| Engine             | Support | Comment                                                        | Transactions | XA   | Savepoints |
+--------------------+---------+----------------------------------------------------------------+--------------+------+------------+
| MRG_MYISAM         | YES     | Collection of identical MyISAM tables                          | NO           | NO   | NO         |
| CSV                | YES     | CSV storage engine                                             | NO           | NO   | NO         |
| MEMORY             | YES     | Hash based, stored in memory, useful for temporary tables      | NO           | NO   | NO         |
| BLACKHOLE          | YES     | /dev/null storage engine (anything you write to it disappears) | NO           | NO   | NO         |
| InnoDB             | YES     | Supports transactions, row-level locking, and foreign keys     | YES          | YES  | YES        |
| MyISAM             | DEFAULT | MyISAM storage engine                                          | NO           | NO   | NO         |
| ARCHIVE            | YES     | Archive storage engine                                         | NO           | NO   | NO         |
| PERFORMANCE_SCHEMA | YES     | Performance Schema                                             | NO           | NO   | NO         |
| FEDERATED          | NO      | Federated MySQL storage engine                                 | NULL         | NULL | NULL       |
+--------------------+---------+----------------------------------------------------------------+--------------+------+------------+
9 rows in set (0.00 sec)
 
총 9개의 엔진이 리스트에 보이며, 활성화 된 엔진은 FEDERATED를 제외한 8개 엔진이 모두 활성화 된 것을 확인 할 수 있습니다.
 
memcache는 이노디비 환경에서만 사용이 가능하다고 하여, 이노디비 버전을 확인 해보았습니다.
mysql> select @@innodb_version;
+------------------+
| @@innodb_version |
+------------------+
| 1.2.2            |
+------------------+
1 row in set (0.00 sec)
 
기본 설치 이후 확인 되는 플러그인 목록을 보니 다음과 같습니다.
mysql> show plugins;
+--------------------------+----------+--------------------+---------+---------+
| Name                     | Status   | Type               | Library | License |
+--------------------------+----------+--------------------+---------+---------+
| binlog                   | ACTIVE   | STORAGE ENGINE     | NULL    | GPL     |
| mysql_native_password    | ACTIVE   | AUTHENTICATION     | NULL    | GPL     |
| mysql_old_password       | ACTIVE   | AUTHENTICATION     | NULL    | GPL     |
| MRG_MYISAM               | ACTIVE   | STORAGE ENGINE     | NULL    | GPL     |
| CSV                      | ACTIVE   | STORAGE ENGINE     | NULL    | GPL     |
| MyISAM                   | ACTIVE   | STORAGE ENGINE     | NULL    | GPL     |
| MEMORY                   | ACTIVE   | STORAGE ENGINE     | NULL    | GPL     |
| InnoDB                   | ACTIVE   | STORAGE ENGINE     | NULL    | GPL     |
| INNODB_TRX               | ACTIVE   | INFORMATION SCHEMA | NULL    | GPL     |
| INNODB_LOCKS             | ACTIVE   | INFORMATION SCHEMA | NULL    | GPL     |
| INNODB_LOCK_WAITS        | ACTIVE   | INFORMATION SCHEMA | NULL    | GPL     |
| INNODB_CMP               | ACTIVE   | INFORMATION SCHEMA | NULL    | GPL     |
| INNODB_CMP_RESET         | ACTIVE   | INFORMATION SCHEMA | NULL    | GPL     |
| INNODB_CMPMEM            | ACTIVE   | INFORMATION SCHEMA | NULL    | GPL     |
| INNODB_CMPMEM_RESET      | ACTIVE   | INFORMATION SCHEMA | NULL    | GPL     |
| INNODB_BUFFER_PAGE       | ACTIVE   | INFORMATION SCHEMA | NULL    | GPL     |
| INNODB_BUFFER_PAGE_LRU   | ACTIVE   | INFORMATION SCHEMA | NULL    | GPL     |
| INNODB_BUFFER_POOL_STATS | ACTIVE   | INFORMATION SCHEMA | NULL    | GPL     |
| INNODB_METRICS           | ACTIVE   | INFORMATION SCHEMA | NULL    | GPL     |
| INNODB_SYS_TABLES        | ACTIVE   | INFORMATION SCHEMA | NULL    | GPL     |
| INNODB_SYS_TABLESTATS    | ACTIVE   | INFORMATION SCHEMA | NULL    | GPL     |
| INNODB_SYS_INDEXES       | ACTIVE   | INFORMATION SCHEMA | NULL    | GPL     |
| INNODB_SYS_COLUMNS       | ACTIVE   | INFORMATION SCHEMA | NULL    | GPL     |
| INNODB_SYS_FIELDS        | ACTIVE   | INFORMATION SCHEMA | NULL    | GPL     |
| INNODB_SYS_FOREIGN       | ACTIVE   | INFORMATION SCHEMA | NULL    | GPL     |
| INNODB_SYS_FOREIGN_COLS  | ACTIVE   | INFORMATION SCHEMA | NULL    | GPL     |
| PERFORMANCE_SCHEMA       | ACTIVE   | STORAGE ENGINE     | NULL    | GPL     |
| BLACKHOLE                | ACTIVE   | STORAGE ENGINE     | NULL    | GPL     |
| FEDERATED                | DISABLED | STORAGE ENGINE     | NULL    | GPL     |
| ARCHIVE                  | ACTIVE   | STORAGE ENGINE     | NULL    | GPL     |
| partition                | ACTIVE   | STORAGE ENGINE     | NULL    | GPL     |
+--------------------------+----------+--------------------+---------+---------+
31 rows in set (0.00 sec)
 
확인 해보니 memcache가 기본적으로는 지원이 안되는 것으로 보이며, 특이 사항으로는 Innodb 관련하여, 인포메이션 스키마 관련된 항목이 눈에 띄게 늘어난 것을 알 수 있습니다.
 
memchache 플러그인을 설치합니다.
mysql> install plugin daemon_memcached soname "libmemcached.so";
 
mysql> show plugins;
+--------------------------+----------+--------------------+-----------------+---------+
| Name                     | Status   | Type               | Library         | License |
+--------------------------+----------+--------------------+-----------------+---------+
| binlog                   | ACTIVE   | STORAGE ENGINE     | NULL            | GPL     |
| mysql_native_password    | ACTIVE   | AUTHENTICATION     | NULL            | GPL     |
| mysql_old_password       | ACTIVE   | AUTHENTICATION     | NULL            | GPL     |
| MRG_MYISAM               | ACTIVE   | STORAGE ENGINE     | NULL            | GPL     |
| CSV                      | ACTIVE   | STORAGE ENGINE     | NULL            | GPL     |
| MyISAM                   | ACTIVE   | STORAGE ENGINE     | NULL            | GPL     |
| MEMORY                   | ACTIVE   | STORAGE ENGINE     | NULL            | GPL     |
| InnoDB                   | ACTIVE   | STORAGE ENGINE     | NULL            | GPL     |
| INNODB_TRX               | ACTIVE   | INFORMATION SCHEMA | NULL            | GPL     |
| INNODB_LOCKS             | ACTIVE   | INFORMATION SCHEMA | NULL            | GPL     |
| INNODB_LOCK_WAITS        | ACTIVE   | INFORMATION SCHEMA | NULL            | GPL     |
| INNODB_CMP               | ACTIVE   | INFORMATION SCHEMA | NULL            | GPL     |
| INNODB_CMP_RESET         | ACTIVE   | INFORMATION SCHEMA | NULL            | GPL     |
| INNODB_CMPMEM            | ACTIVE   | INFORMATION SCHEMA | NULL            | GPL     |
| INNODB_CMPMEM_RESET      | ACTIVE   | INFORMATION SCHEMA | NULL            | GPL     |
| INNODB_BUFFER_PAGE       | ACTIVE   | INFORMATION SCHEMA | NULL            | GPL     |
| INNODB_BUFFER_PAGE_LRU   | ACTIVE   | INFORMATION SCHEMA | NULL            | GPL     |
| INNODB_BUFFER_POOL_STATS | ACTIVE   | INFORMATION SCHEMA | NULL            | GPL     |
| INNODB_METRICS           | ACTIVE   | INFORMATION SCHEMA | NULL            | GPL     |
| INNODB_SYS_TABLES        | ACTIVE   | INFORMATION SCHEMA | NULL            | GPL     |
| INNODB_SYS_TABLESTATS    | ACTIVE   | INFORMATION SCHEMA | NULL            | GPL     |
| INNODB_SYS_INDEXES       | ACTIVE   | INFORMATION SCHEMA | NULL            | GPL     |
| INNODB_SYS_COLUMNS       | ACTIVE   | INFORMATION SCHEMA | NULL            | GPL     |
| INNODB_SYS_FIELDS        | ACTIVE   | INFORMATION SCHEMA | NULL            | GPL     |
| INNODB_SYS_FOREIGN       | ACTIVE   | INFORMATION SCHEMA | NULL            | GPL     |
| INNODB_SYS_FOREIGN_COLS  | ACTIVE   | INFORMATION SCHEMA | NULL            | GPL     |
| PERFORMANCE_SCHEMA       | ACTIVE   | STORAGE ENGINE     | NULL            | GPL     |
| BLACKHOLE                | ACTIVE   | STORAGE ENGINE     | NULL            | GPL     |
| FEDERATED                | DISABLED | STORAGE ENGINE     | NULL            | GPL     |
| ARCHIVE                  | ACTIVE   | STORAGE ENGINE     | NULL            | GPL     |
| partition                | ACTIVE   | STORAGE ENGINE     | NULL            | GPL     |
| daemon_memcached         | ACTIVE   | DAEMON             | libmemcached.so | GPL     |
+--------------------------+----------+--------------------+-----------------+---------+
32 rows in set (0.00 sec)
 
설치가 된 것을 확인 할 수 있습니다.
 
현재 설치된 데이터 베이스 인스턴스를 확인해봅니다.
 
mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| test               |
+--------------------+
4 rows in set (0.00 sec)
 
바이너리 디렉토리의 script-xs 내부를 보면 innodb_memcached_config.sql 파일이 추가된 것을 확인 할 수 있습니다.
SQL 스크립트 파일임으로, 스크립트를 실행시켜서, memcache 설치를 완료 합니다.
 
shell> mysql -uroot  < script-xs/innodb_memcached_config.sql 
 
스크립트를 실행시키자 innodb_memcache 데이터베이스가 추가된 것을 확인 할 수 있습니다.
 
mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| innodb_memcache    |
| mysql              |
| performance_schema |
| test               |
+--------------------+
5 rows in set (0.00 sec)
 
테이블도 확인해 봅니다.
 
mysql> use innodb_memcache;
 
mysql> show tables;
+---------------------------+
| Tables_in_innodb_memcache |
+---------------------------+
| cache_policies            |
| config_options            |
| containers                |
+---------------------------+
3 rows in set (0.00 sec)
 
mysql> select * from cache_policies;
+--------------+-------------+-------------+---------------+--------------+
| policy_name  | get_policy  | set_policy  | delete_policy | flush_policy |
+--------------+-------------+-------------+---------------+--------------+
| cache_policy | innodb_only | innodb_only | innodb_only   | innodb_only  |
+--------------+-------------+-------------+---------------+--------------+
1 row in set (0.00 sec)
 
mysql> select * from config_options;
+-----------+-------+
| name      | value |
+-----------+-------+
| separator | |     |
+-----------+-------+
1 row in set (0.00 sec)
 
mysql> select * from containers;
+------+-----------+-----------+-------------+---------------+-------+------------+--------------------+------------------------+
| name | db_schema | db_table  | key_columns | value_columns | flags | cas_column | expire_time_column | unique_idx_name_on_key |
+------+-----------+-----------+-------------+---------------+-------+------------+--------------------+------------------------+
| aaa  | test      | demo_test | c1          | c2            | c3    | c4         | c5                 | PRIMARY                |
+------+-----------+-----------+-------------+---------------+-------+------------+--------------------+------------------------+
1 row in set (0.00 sec)
t
est 데이터베이스에 demo_test 테이블이 등록된 것을 확인할 수 있습니다.
 
mysql> use test
 
mysql> show tables;
+----------------+
| Tables_in_test |
+----------------+
| demo_test      |
+----------------+
1 row in set (0.00 sec)
 
mysql> select * from demo_test;
+----+--------------+------+------+------+
| c1 | c2           | c3   | c4   | C5   |
+----+--------------+------+------+------+
| AA | HELLO, HELLO |    8 |    0 |    0 |
+----+--------------+------+------+------+
1 row in set (0.00 sec)
 
테스트 데이터 베이스의 내용을 확인하니 다음과 같습니다.
 
이제 NoSQL을 테스트 하기 위해서, 텔넷으로 접속하고, set명령어와 get명령어를 실행해봅니다.
 
shell> telnet localhost 11211
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
set a11 10 0 9
123456789
STORED
get a11
VALUE a11 10 9
123456789
END
 
파란색 글자 부분만 입력하며, 실행 결과는 위와 같습니다.
 
다시 mysql 콘솔로 접속하여, 실제 테이블에 반영된 것을 확인해봅니다.
 
mysql> use test
 
mysql> show tables;
+----------------+
| Tables_in_test |
+----------------+
| demo_test      |
+----------------+
1 row in set (0.00 sec)
mysql> select * from demo_test;
+----+--------------+------+------+------+
| c1 | c2           | c3   | c4   | C5   |
+----+--------------+------+------+------+
| AA | HELLO, HELLO |    8 |    0 |    0 |
+----+--------------+------+------+------+
1 row in set (0.00 sec)
 
아직 반영이 안된 것을 볼 수 있습니다.
 
다음 명령어를 실행하여, 현재 세션에서 커밋이 안된 데이터를 읽을 수 있도록 설정합니다.
 
mysql> set session TRANSACTION ISOLATION LEVEL read uncommitted;
 
mysql>  select * from demo_test;
+-----+--------------+------+------+------+
| c1  | c2           | c3   | c4   | C5   |
+-----+--------------+------+------+------+
| a11 | 123456789    |   10 |    1 | NULL |
| AA  | HELLO, HELLO |    8 |    0 |    0 |
+-----+--------------+------+------+------+
2 rows in set (0.00 sec)
 
set으로 입력한 데이터가 보이는 것을 알 수 있습니다.
 
위와 같이 5.6버전에서 새롭게 제공하는 memcache에 대해서 설치 테스트를 진행 하였습니다.

 

튜닝참고 (일정한 튜닝 이상은 크게 작용하지 않는다.)

 

#MySQL 메모리 사용량

#  +    innodb_buffer_pool_size

#  +    key_buffer

#  +    max_connections * (join_buffer + record_buffer + sort_buffer + thread_stack + tmp_table_size)

#  +    max_connections * 2MB

 

#================================================================

#              튜닝참조

#================================================================

#  1. Opened_tables가 크면 table_open_cache variable의 값이 너무 작은 것일지도 모른다

#  2. key_reads가 크면 key_cach의 값이 너무 작은 것일지도 모른다

#  3. cache hit rate은 key_reads/key_read_requests이다

#  4. Handler_read_rnd가 크면 MySQL의 모든 테이블을 스캔하는 많은 쿼리가 있다거나 key를 적절히 사용하지 않는 조인들이 있을지 모른다

#  5. Threads_created가 크면 thread_cache_size값을 증가시키기를 바랄수도 있다

#  6. Created_tmp_disk_tables이 크면 디스크대신 임시테이블메모리를 얻기위해 tmp_table_size값을 증가시키기를 원할 수있다

#  7. 기본적으로 support-files밑에 my-huge.cnf, my-large.cnf, my-medium.cnf, my-small.cnf 를 기본으로 my.cnf 로 바꾸어 사용하면서 조정한다.

#           - memory (>=256M)이고 많은 테이블이 있으며, 적당한 클라이언트수에서 최고 성능을 유지하기 위해

#             shell> safe_mysqld -O key_buffer=64M -O table_cache=256 -O sort_buffer=4M -O record_buffer=1M &

#             이러한 옵션으로 서버를 실행하는데, my-cnf에서 이를 수정하여 사용하면 될 것이다.

#           - 128M메모리에 테이블이 적지만, 정렬이 많을 때

#             shell> mysqld_safe -O key_buffer=16M -O sort_buffer=1M

#           - 메모리는 적지만 많은 연결이 있을 때

#             shell> mysqld_safe -O key_buffer=512k -O sort_buffer=100k -O record_buffer=100k &

#         또는

#             shell> mysqld_safe -O key_buffer=512k -O sort_buffer=16k -O table_cache=32 -O record_buffer=8k -O net_buffer=1K &

 

#  8. group by와 order by작업이 가지고 있는 메모리보다 훨씬 클 경우, 정렬 후 row 읽는 것을 빠르게 하기위해 record_buffer값을 증가시켜라 

 

 

[client]

port=3306

 

[mysql]

default-character-set=utf8

 

[mysqld]

#bind-address = 127.0.0.1

port=3306

wait_timeout=30          # 커넥션 최대 대기시간(초)

connect_timeout = 5

federated

 

#2016-07-26 추가

binlog_cache_size = 50M 

max_binlog_size = 256M

expire_logs_days=1

 

#skip-external-locking

#skip-host-cache

#skip-locking

 

#skip-name-resolve                # 역DNS 검색비활성

myisam_use_mmap = 1

 

basedir=C:/AutoSet9/Server/MySQL5/

datadir=C:/AutoSet9/Server/MySQL5/Data/

init_connect=SET NAMES utf8

character_set_server=utf8

collation_server=utf8_general_ci

socket=C:/AutoSet9/Server/temp/mysql.sock

 

slow_query_log=1

slow_query_log_file=C:/AutoSet9/Server/MySQL5/Data/mysql-slow.log

long_query_time=2

 

 

character-set-server=utf8

#default-storage-engine=MyISAM                                # 기본엔진설정

default-storage-engine=INNODB                                # 기본엔진설정

 

#back_log = 100                    # 동시접속시 대기시킬수있는 커넥션 갯수

#sql-mode="NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION"

max_connections=300

max_allowed_packet=4M             # 요청된 쿼리의 최대길이의 값

max_connect_errors = 1000000

 

query_cache_type = 1

query_cache_size = 1024M        # 쿼리개시 증가 이후 (Innodb buffer pool pages dirty디스크에 저장이 필요한 페이지 수)가 원할하게 작동함.쿼리 결과를 캐싱라기 위해 할당된 메모리크기 2016-11-23 = 256

#query_cache_Limit = 2M        # 이  변수 값보다 큰 값은 캐싱이 안됨

 

#table_cache (MaxFileOpen-MaxConnection-(temporary table 에 사용되는 파일핸들) ) / 2

table_open_cache = 2048 # 각 쓰레드별 오픈할 테이블수

table_definition_cache = 12048 #table_open_cache와 같게 할때는 open tables 값이 빠르게 포화상태에 이르렀지만 10배로 늘린 후 느리게 도달하지만 결국 포화상태...

 

#[mysql] Created tmp disk tables 디스크 쓰기방지 대안」 http://urin79.com/20662568.

tmp_table_size = 1024M           # 메모리 내의 임시테이블 크기  초과시 디스크에 저장

max_tmp_tables = 1024 # 2016-09-18 = 64 2016-11-24 = 256 

max_heap_table_size = 1024M     # MEMORY 테이블의 최대크기

 

#늘려보고 줄여봤지만 큰 변화 없음 최근16

thread_cache_size = 32 # 2016-09-18 = 16 다쓴 쓰레드를 스레드풀에 저장할 갯수이 값은 bytes 단위 등의 크기가 아니다.

open_files_limit=12480

thread_concurrency = 16     # 2016-09-18 = 8  쓰레스 갯수

#slave_parallel_workers = 16

 

concurrent_insert=2

 

skip-external-locking

#skip-name-resolve

 

myisam_max_sort_file_size=1G

myisam_sort_buffer_size=16M

 

# key_buffer_size+(record_buffer+sort_buffer)*max_connections < 실메모리양>

#key_buffer_size=256M

#read_buffer_size=8M

#bulk_insert_buffer_size=8M

#read_rnd_buffer_size=16M

#sort_buffer_size=16M

#join_buffer_size=8M

 

#2016-09-09

key_buffer_size=128M

read_buffer_size=4M

bulk_insert_buffer_size=4M

read_rnd_buffer_size=16M

sort_buffer_size=16M #정렬 메모리에 유지되어 4M 이상 하는 것이 좋다.

join_buffer_size=16M #정렬 메모리에 유지되어 4M 이상 하는 것이 좋다.

 

 

 

 

#http://gywn.net/2012/09/mysql-tuning/

#서비스 정책에 따라 다르게 설정하겠지만, 저는 일반적으로 2값으로 세팅합니다.

# 0: 초당 1회씩 트랜잭션 로그 파일(innodb_log_file)에 기록

# 1: 트랜잭션 커밋 시 로그 파일과 데이터 파일에 기록

# 2: 트랜잭션 커밋 시 로그 파일에만 기록, 매초 데이터 파일에 기록

# 1=트랜젝션 실행할때마다 로그 파일에 기록되고 디스크 플러시가 실행

innodb_data_home_dir="C:/AutoSet9/Server/MySQL5/Data/"

innodb_flush_log_at_trx_commit=2

innodb_log_buffer_size=2M

innodb_log_buffer_size=128M

 

#InnoDB에게 할당하는 버퍼 사이즈로 50~60%가 적당하며, 지나치게 많이 할당하면 Swap이 발생할 수 있습니다.

innodb_file_per_table=1            # 테이블 단위로 테이블스페이스 할당, 활성시 확장자 .ibd 파일이생성됨

innodb_buffer_pool_size=4G

#innodb_additional_mem_pool_size = 4M     # 데이터 디렉토리 정보와 내부 데이타 구조를 저장하는 메모리 풀의 크기

 

#innodb_buffer_ll

#https://blog.marceloaltmann.com/en-warm-up-innodb-buffer-pool-pt-esquentando-o-innodb-buffer-pool/

 

innodb_buffer_pool_dump_at_shutdown = 1

innodb_buffer_pool_load_at_startup = 1

innodb_buffer_pool_load_abort=ON

 

#트랜잭션 로그를 기록하는 파일 사이즈이며,32M 128MB ~ 256MB가 적당합니다.

innodb_log_file_size=256M

 

#이중으로 쓰기 버퍼를 사용하는지 여부를 설정하는 변수로 활성화 시 innodb_doublewrite 공간에 기록 후 데이터 저장합니다. 저는 활성화합니다.

# on off에 따라.... http://urin79.com/blog/20660042 오류발생됩니다.

innodb_use_sys_malloc =  0

innodb_flush_method = normal

 

#강제로 InnoDB 복구하기(http://www.mysqlkorea.com/sub.html?mcode=manual&scode=01&m_no=21875&cat1=14&cat2=422&cat3=442&lang=k)

#innodb_force_recovery = 4

 

#innodb_thread_concurrency 값은 0으로 하는것이 효율적/시스템이 가용할수 있는 만큼 최대로 사용한다는 뜻입니다. 

innodb_thread_concurrency=16

 

[myisamchk]

key_buffer_size = 256M

sort_buffer_size = 8M

read_buffer = 8M

write_buffer = 8M

 

 

Created tmp disk tables 디스크 사용량이 많아질 경우 대처방법

 

 

 

 

 

XE튜닝

익스프레스엔진(XE) 사용시 굳이 minify 캐싱을 할 필요가 없다.
(중복되므로 버벅 거리는 현상이 일어남)

 

하지만 RSS 문제로 Gzip을 풀었다면 minify를 반드시 설치해라.

스킨선택이 정말 중요.
스킨에 따라 용량이 줄어듬.

스크립트는 꼭 필요한 경우가 아니면 제일 하단에 넣는다.

특히나 구글 애널리틱스 같은 스크립트들...머 구글광고 같은건 느려도 감안해야죠.

 

하나씩 수정해 나가면서 나의 웹문서가 얼마나 작아졌는지 하나씩 점검해 나가야 합니다.

웹속도측정사이트 : https://gtmetrix.com/reports/urin79.com/KCSlTUO3

 

요약 (내 사이트가 느리다 싶으면)

xetown의 프렌다님 글 

1. 레이아웃 등에서 불러오는 JS파일을 최하단으로 내려라.

(보여져야 할 부분이 미리 보여지고 기능적인 부분은 그 후에 불러오게 됩니다.)

2. 레이아웃 헤더 스크립트에 있는 내용은 직접 레이아웃 최하단에 넣던가, 관리자페이지 시스템 설정의 하단(footer) 스크립트로 이동

3. 웹폰트 등을 사용하고 있다면 가능한 경량화 시키고 혹은 속도가 빠른 CDN으로 물려라

4. 오브젝트 캐시 사용 , 스크립트 자동 압축 등의 기능을 적절히 세팅 (XE의 경우 기진곰 님의 ZipperUpper! 으로 대체)

5. 레이아웃 등에서 실제 사용하지도 않는데 불러오는 *.JS 혹은 스크립트 등은 버려라

 

테스트 홈피에 XE 1.8.19 버전을 설치 후 우연히 RSS FEED CHECK를 했더니 예전에 나오던 오류가 없어졌습니다.

 

 

This is a valid RSS feed.

 

체크해보니 위와 같은 메시지가 나오네요.

 

그래서 나머지 홈피에도 적용했습니다.

 

근데 Gzip 풀려서 deflate, minify 별도로 적용했는데 중복 압축은 시스템을 더 느리게 하는 요인이 되지 않을지,,,

 

 

XE <title>제목 - 사이트명</title> 으로 변경방법

 

 

 

이게 제일 확실하다?

/html/xe/modules/board/board.view.php

173번째 줄의  Context::addBrowserTitle($oDocument->getTitleText());

이렇게 수정해 보세요 Context::setBrowserTitle($oDocument->getTitleText());

 

 

XE 반응형 모바일 메타태그 삽입하기

 

xe설치주소commontplcommon_layout.html

 

<!DOCTYPE html>

<html lang="{str_replace('jp','ja',$lang_type)}">

<head>

<!-- META -->

<meta charset="utf-8">

<meta name="Generator" content="XpressEngine">

<meta http-equiv="X-UA-Compatible" content="IE=edge">

<meta name="viewport" content="width=device-width,minimum-scale=1.0" />

<block loop="Context::getMetaTag() => $no, $val">

<meta http-equiv="{$val['name']}"|cond="$val['is_http_equiv']" name="{$val['name']}"|cond="!$val['is_http_equiv']" content="{$val['content']}">

</block>

<!-- TITLE -->

 

해당주소의 파일을 찾아 붉은색라인을 붙여넣으면 끝!

참 쉽죠잉.

 

 

memcached + XE슈퍼캐시모듈로 엄청난 속도 개선하기

http://code.jellycan.com/files/memcached-1.2.5-win32-bin.zip
http://code.jellycan.com/files/memcached-1.2.6-win32-bin.zip
http://downloads.northscale.com/memcached-win32-1.4.4-14.zip
http://downloads.northscale.com/memcached-win64-1.4.4-14.zip
http://downloads.northscale.com/memcached-1.4.5-x86.zip
http://downloads.northscale.com/memcached-1.4.5-amd64.zip

 

In versions earlier than 1.4.5, memcached can install itself as a service. However, the ability to run memcached as a service is removed since version 1.4.5. Therefore, the installation steps are divided into two categories, part A for memcached prior to version 1.4.5. and part B for memcached version 1.4.5 and later.

A) Installation of memcached < 1.4.5:

  1. Extract the memcached windows binary to any directory.
  2. In versions earlier than 1.4.5, memcached can install itself as a service. Run a command prompt with elevated privileges, and type:
    c:memcachedmemcached.exe -d install

    * Replace c:memcachedmemcached.exe with the actual path of your installation.

  3. Then, start or stop the memcached service with the following command:
    c:memcachedmemcached.exe -d start
    c:memcachedmemcached.exe -d stop
  4. To change the configuration of memcached, run regedit.exe and navigate to the key "HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesmemcached". Suppose you wish to increase the memory limit of memcached, edit the value of ImagePath to the following:
    "c:memcachedmemcached.exe" -d runservice -m 512

    * Besides '-m 512', you may also append other memcached parameters to the path. Run "c:memcachedmemcached.exe -h" to view the list of available parameters.

  5. Meanwhile, to uninstall the memcached serivce, run the following command:
    c:memcachedmemcached.exe -d uninstall

B) Installation of memcached >= 1.4.5:

  1. Extract the memcached windows binary to any directory.
  2. In version 1.4.5 or later, memcached cannot run as a service. It must be started as a normal process using the task scheduler. To configure the memcached process to run automatically every time windows start, run a command prompt with elevated privileges, and type the following:
    schtasks /create /sc onstart /tn memcached /tr "'c:memcachedmemcached.exe' -m 512"

    * Replace c:memcachedmemcached.exe with the actual path of your installation.
    ** Besides '-m 512', you may also append other memcached parameters to the path. Run "c:memcachedmemcached.exe -h" to view the list of available parameters.

  3. Meanwhile, to remove the scheduled memcached task, run the following command:
    schtasks /delete /tn memcached

 

Integrating with PHP

To interface with memcached in PHP, you need to install the memcache extension for PHP:

  1. Check that your PHP extension folder has the file php_memcache.dll. If not, download the file from https://pecl.php.net/package/memcache (select the windows dll file), and place it in the PHP extension folder.
  2. Add the following line in php.ini to enable the memcache extension.
    extension=php_memcache.dll
  3. Create this simple php script file to test that it works.
    <?php
    
    $memcache = new Memcache;
    $memcache->connect('localhost', 11211) or die ("Could not connect");
    
    $version = $memcache->getVersion();
    echo "Server's version: ".$version."<br/>n";
    
    $tmp_object = new stdClass;
    $tmp_object->str_attr = 'test';
    $tmp_object->int_attr = 123;
    
    $memcache->set('key', $tmp_object, false, 10) or die ("Failed to save data at the server");
    echo "Store data in the cache (data will expire in 10 seconds)<br/>n";
    
    $get_result = $memcache->get('key');
    echo "Data from the cache:<br/>n";
    
    var_dump($get_result);
    
    ?> 

Integrating with Python

To interface with memcached in Python, you need to install the memcached client for Python.

  1. Execute one of the following command to install the memcached client. The first is for Python 2.x while the second is for Python 3.x.
    pip install python-memcached
    pip install python3-memcached
  2. Create this simple python script to test that it works.
    import memcache
    mc = memcache.Client(['127.0.0.1:11211'], debug=0)
    mc.set("some_key", "Some value")
    value = mc.get("some_key")
    mc.set("another_key", 3)
    mc.delete("another_key")
    mc.set("key", "1")   # note that the key used for incr/decr must be a string.
    mc.incr("key")
    mc.decr("key")

Memcached statistics

To view the statistics for memcached, bring up a telnet connection to memcached by the command:

telnet 127.0.0.1 11211

Then, type stats and enter.

Here is an explanation of the different memcached stats.

 

 

 

XE 조언
https://www.xpressengine.com/tip/23132669

 

 

Mysql 튜닝조언

 

http://2cpu.co.kr/bbs/board.php?bo_table=PDS&wr_ 9750

 

아파치 최적화
http://m.blog.naver.com/kmk1030/150141633528

 

 

 

 

[Reference] : Progress, 「서버 최적화 시키기(APACHE, PHP, MYSQL, XE 압축&캐싱&버퍼)」 http://urin79.com/?m blog&document_srl=20654635.


컴퓨터/노트북/인터넷

IT 컴퓨터 기기를 좋아하는 사람들의 모임방

List of Articles
번호 분류 제목 조회 수 날짜
공지 뉴스 구글 최신 뉴스 file 1384 2024.12.12
공지 사랑LOVE 포인트 만렙! 도전 4623 2025.03.19
공지 🚨(뉴비필독) 전체공지 & 포인트안내 2 25844 2024.11.04
공지 URL만 붙여넣으면 끝! 임베드 기능 20427 2025.01.21
10639 일반 "갤럭시S6엣지 플러스, 3000mAh 대용량 배터리 탑재"… 왜? 1082 2015.07.20
10638 정보 # TAKIS 서버용 my.cnf... 830 2023.11.06
10637 ' 크래시 밴디쿳 4: 이츠 어바웃 타임', PS5, Xbox Series X, Switch판의 발매가 3월 12일로 결정. PC판은 금년 후반을 예정. 51 2021.02.11
10636 일반 ' 크래시 밴디쿳 4: 이츠 어바웃 타임', PS5, Xbox Series X, Switch판의 발매가 3월 12일로 결정. PC판은 금년 후반을 예정. 497 2023.03.27
10635 일반 '10배 빠른' 5G 지하철 와이파이…다음달부터 중단 1245 2023.11.24
10634 정보 '11시간 쓸 수 있다' 광고한 300만 원대 맥북 배터리 5시간이면 '아웃'...6개월째 수리도 못받아 - 소비자가 만드는 신문 786 2021.02.21
10633 정보 '5G 아이폰12'는 4종으로…애플, 제품군 다변화 나섰다 - 한겨레 749 2021.02.21
10632 일반 'LG G8 씽큐' 배터리 수명 늘어날까…3400~3500mAh 배터리 탑재 전망 191 2019.02.08
10631 일반 'LG G8 씽큐' 배터리 수명 늘어날까…3400~3500mAh 배터리 탑재 전망 1784 2023.03.27
10630 정보 'LG 롤러블폰 개발 중단 우려' 中BOE, 아이폰13 물량 공략 - 이데일리 694 2021.02.24
10629 정보 'M1 맥북 에어 vs. M1 맥북 프로' 어떤 제품을 어떤 구성으로 구매해야 할까 - ITWorld Korea 735 2021.03.06
10628 정보 'M자 탈모' 사라지는 아이폰… "갤럭시 닮아간다" - 머니S - Money S 747 2021.03.06
10627 정보 '美-中 대립' 최고조에도...中서 애플 아이폰만 유일한 성장 - 뉴데일리경제 771 2021.02.21
10626 정보 '갤럭시 vs 아이폰' 12만 LG 임직원 선택은 - IT조선 777 2021.02.21
10625 정보 '갤럭시S21 울트라' 국내모델 엑시노스2100·12GB램 탑재 69 2020.12.26
10624 정보 '국대폰' 갤럭시S21 및 아이폰12 미니 포함한 기존 기종 프로모션 진행 - 잡포스트 763 2021.02.21
10623 정보 '국대폰' 아이폰12 미니· 갤럭시S21 특가 판매 및 무료 나눔 이벤트 진행 - 에너지경제신문 751 2021.02.24
10622 정보 '국대폰' 최신 스마트폰 갤럭시S21 및 아이폰12 미니 특가 판매 프로모션 진행 - ITBizNews 775 2021.02.22
10621 정보 '국대폰', 갤럭시S21·아이폰12 특가 판매 진행 - 이투뉴스 768 2021.03.06
10620 정보 '극딜나라' 갤럭시S20, 아이폰12 PRO 35만원 이상 할인 - 아이티비즈 767 2021.03.01
10619 일반 '눈에 띄게 얇아진' Apple Watch Series 10, 결국 수면 무호흡증 감지 기능 탑재 file 137 2024.09.06
10618 일반 '모토로라폰’ LG헬로비전 통해 재상륙 544 2022.12.31
10617 일반 '모토로라폰’ LG헬로비전 통해 재상륙 1795 2023.03.27
10616 '미르4' 희귀 강화석 어디서 얻어요? 86 2021.02.03
10615 일반 '미르4' 희귀 강화석 어디서 얻어요? 404 2023.03.27
10614 정보 '배신자 삼성 무너뜨리는게 목표'…혐한에 빠진 세계 최대 제조대행 [뉴스人사이드] - 아시아경제 782 2021.03.01
10613 정보 '비트코인 인기 상당하네'...업비트, 구글·애플 앱마켓 1위 석권 734 2021.02.22
10612 정보 '빨간색이 주황색으로'…아이폰12서 '색빠짐 현상' 나타나 - 이데일리 783 2021.03.17
10611 정보 '빵집폰' 갤럭시노트10 및 갤럭시S10 5G, LG V50s ThinQ 재고정리 - 아이티비즈 718 2021.03.06
10610 일반 '신학기 시즌 시작'…유통업계 할인 大戰 - 아시아경제 53 2023.03.27
Board Pagination Prev 1 2 3 4 5 6 7 8 9 10 ... 355 Next
/ 355