활성화되지 않은 모듈이 성능에 영향을 줍니까?


91

Drupal 모듈이 있지만 활성화되어 있지 않은 경우 Drupal 사이트의 성능에 영향이 있습니까?

다시 말하면 Drupal 사이트에서 비활성화 된 모듈을 제거하면 성능에 긍정적 인 영향을 미칩니 까?

답변:


97

일반적으로 모듈 선택 페이지 (admin / build / modules 또는 admin / modules)를 볼 때를 제외하고는 성능에 영향을 미치지 않습니다. 비활성화 된 모듈은 메모리에로드되지 않으며 실행되지 않습니다.


24
즉, 비활성화 된 모듈은 여전히 ​​변수와 데이터베이스 테이블을 남겨두고 데이터 손실없이 모듈을 다시 활성화 할 수 있습니다. 비활성화 된 모듈을 다시 사용하지 않으려면 D6의 admin / build / modules / uninstall 또는 D7의 admin / modules / uninstall을 통해 모듈을 제거해야합니다.
Dave Reid

1
나는 이것이 노드 테이블 drupal.org/project/quickstats에 열을 추가하는 모듈의 한 예 일 수 있다고 생각하므로 모듈을 제거하지 않으면 불필요한 자원 소비를 나타낼 것이라고 생각합니다 (최소 할 수 있습니까? )를 노드 정보를 가져올 때 다른 모듈에 추가하십시오.
cigotete

62

예. 할 수 있습니다.

다른 사람들의 말에도 불구하고 성능이 저하되는 몇 가지 상황이 있습니다.

  1. 비활성화되고 올바르게 제거되지 않은 모듈은 성능에 심각한 영향을 줄 수 있습니다. 모듈에 대한 변수는 제거되지 않으며 모든 페이지 요청에서로드됩니다. 번역 된 사이트를 사용하는 경우 모듈의 로캘이 제거되지 않고 이미 번거로운 데이터베이스 테이블에서 오버 헤드가 발생합니다.
  2. Drupal은 시스템 테이블을 캐싱으로 사용하여 파일 시스템에서 모듈을 조회하지 않도록합니다. 해당 테이블에 항목이 많을수록 속도가 느려집니다. 시스템 테이블은 인덱스가 잘 작성되어 있기 때문에이 효과는 다소 작습니다. 그러나 캐시를 지우고 관리 페이지를 방문하면이 테이블이 다시 작성됩니다. 사용하지 않는 200 개 이상의 모듈로 테이블을 재구성하는 것은 사용하지 않는 모듈이없는 것보다 약 25 배 느립니다. 이 테이블의 재 구축 량은 일부 이상한 상황, 개발 중 등에서 상당히 높을 수 있습니다.

사용하지 않는 모듈은 시스템 테이블을 재 빌드하는 동안 이외의 메모리를 사용하지 않습니다. 사용하지 않는 모듈은 시스템 테이블을 재 빌드하는 동안과 달리 파일 시스템에서 더 많거나 느린 조회를 일으키지 않습니다. X- 수천 개의 모듈을 넘어 서면 파일 시스템 자체가 문제를 일으킬 수 있습니다.


5
비활성화 된 모듈이 반드시 모듈을 완전히 제거 할 필요는 없습니다. 모듈을 제거하려는 것이 아니라 설정 페이지가 나타나지 않도록 모듈을 비활성화 할 수 있습니다. 예를 들어 Drupal.org에서 뷰 UI는 누군가가 뷰를 편집해야 할 때만 활성화되며 뷰 편집이 완료된 후에는 비활성화됩니다.
kiamlaluno

3
또한 devel / admin_menu를 설치 한 경우 '개발자 모듈 비활성화'에 대한 바로 가기가 있습니다.이 기능을 사용하면 정상적으로 실행되는 프로덕션 사이트에 필요하지 않은보기 UI, 규칙 UI, 필드 UI 등을 사용할 수 없습니다. 일반 LAMP 머신에서 각 PHP / Apache 스레드에 몇 MB를 절약 할 수 있습니다!
geerlingguy 2016 년

5
활성화되지 않은 모듈은 한 번만 비활성화 된 모듈 단위가 아니라는 것을 알고 있습니다. 전망 (STABLE) - 모두 모듈 귀하의 예는 않습니다 내 지점을 증명 : 당신이보기-UI를 로케일 테이블을 해제하고 한다거나 할 테이블을로드하고 각 페이지에 평가 보풀 / 산재 / 때. 최근에 5MB (!)와 거의 60MB (!)의 남은 변수와 사용되지 않은 로케일 문자열이있는 사이트를 정리했습니다. 로케일 조회로 인해 쿼리 속도가 느려지고 각 페이지로드에 5MB의 추가 메모리가 발생합니다.
berkes

Views UI를 사용 중지하면 여전히 사용하고 싶어하기 때문입니다. 필요하지 않을 때 활성화하지 않으려는 것입니다. 이 경우 해당 모듈에 대한 모든 Drupal 변수를 제거하면 내가 변경 한 모든 설정을 재설정하면 부정적인 영향을 미칩니다. 내가 원하는 것이 확실하지 않습니다. 활성화되지 않은 모듈은 비활성화 된 모듈입니다. 제거 된 모듈을 비활성화 된 모듈과 혼동하는 것 같습니다. 후자는보기를 편집 할 때 실제로 필요한 Views UI와 같은 특정 상황에서 사용하기 때문에 비활성화 한 모듈입니다. 다른 경우에는 필요하지 않습니다.
kiamlaluno

2
설명하는대로보기 UI를 사용하는 경우 : 마음대로 사용할 수있는 옵션으로 비활성화됩니다. 그것은 성능에 영향을 . 그것이 OP가 요구하는 것입니다. 그리고 분명히 사람들이 그것을 사용하는 방법입니다 (적어도 당신은). 결론적으로, 비활성화 된 모듈은 성능에 영향을 줄 수 있습니다. 특히 완전히 제거하지 않으려는 경우; 그리고 그들이 스스로 제대로 제거되지 않으면
berkes

8

으로 설치 당신이 바로, ( "사이트 / 모든 / 모듈"또는 "사이트 / yoursite.com / 모듈") 당신의 드루팔 모듈 내부에 폴더를 의미한다고 가정?

그렇다면 비활성화 된 모듈은 "admin / build / modules"페이지를 방문 할 때 성능에 전혀 영향을 미치지 않습니다. Drupal은 일부 모듈 요소의 캐시를 재 구축합니다 ( hook_menu ).


7

내 경험상, 비활성화 된 모듈의 성능 저하는 무시할 만합니다 (상대적으로 4000 개의 비활성화 된 모듈로 인해 30 개의 비활성화 된 모듈 등이 약간 느려질 수 있습니다).

개인적으로, 리포지토리 및 웹 디렉토리에 사용되지 않은 (아마도 오래된) 코드가 더 걱정되지만, 그와 같이 보존 적입니다.


4

기술적으로 아니요. 일반적으로 비활성화 된 모달은 메모리에로드되지 않으므로 사이트 성능에 영향을 미치지 않습니다. 그러나 비활성화 된 모듈에 변수에 많은 데이터가있는 경우 메모리가 비워 지도록 제거하는 것이 좋습니다.


3

비활성화 된 모듈의 코드를 제거해도 사이트에 영향을 미치지 않을 수 있습니다.

그런 다음 어느 시점에 모듈을 설치 한 경우 몇 개의 테이블로 데이터베이스가 채워집니다. 따라서 더 많은 모듈을 설치하면 데이터베이스 성능에 영향을 줄 가능성이 커집니다.

모듈을 제거하면 불필요한 테이블이 제거됩니다.

다시 말하지만 성능은 설치 한 모듈 수에 따라 다릅니다.


3

제거되지 않지만 폴더 시스템에서 실제로 삭제 된 비활성화 된 모듈은 사이트 성능에 부정적인 영향을 미칩니다. 나는 5 개의 그러한 모듈을 가지고 있었고, 그 때문에 is_dir () 함수에 대한 10,000 번의 추가 호출이있었습니다. missing_modules 모듈 (missing_module)을 사용하여 누락 된 모듈을 식별하고 데이터베이스에서 문제를 해결했습니다.


1

제거 및 비활성화는 성능에 영향을 미치지 않습니다.

그러나 모듈이 비활성화 된 경우에만 일부 테이블이 연관 될 수 있으므로 drupal 데이터베이스에 추가 부담이됩니다.

앞서 언급했듯이 drupal의 모듈 페이지에는 몇 가지 중요한 성능 문제가 있습니다. 이 페이지가로드되지 않고 설치 / 제거 된 모든 모듈이 여기에 표시되므로 많은 시간이 소요됩니다.

따라서이 상황을 극복하려면 / sites / all / modules / 드라이브에서 사용하지 않는 모듈을 물리적으로 제거해야합니다.


1
"제거 및 비활성화는 성능에 영향을 미치지 않습니다." -특정한 경우에는 가능합니다. 특히 관리자 작업의 성능. "모듈"페이지뿐만 아니라 번역 또는 코드 검토를위한 일부 모듈도 활성화되지 않은 모듈에서 작동합니다. 그리고 파일 시스템 성능과 같은 사소한 것들이 있습니다.
Mołot

1

비활성화 된 모듈은 드루팔 사이트의 성능에 영향을 미치지 않습니다.

그러나 귀하의 사이트에 쓸모없는 모듈을 다운로드하지 않는 것이 좋습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.